eddyb: I'm definitely super-excited about all the people now coming up with safe interfaces for low-level stuff. as I keep saying, the most powerful part of rust for me is the expressivity of its type-system -- the amount of things you can give safe interfaces to. I was impressed by iterators and interior pointers, turns out that was just the start. now we have pinned memory and (likely) interior collections. what's next?
(that was replying to a think you hightled me in, which may have been some days ago... sorry^^)
I also love how "this library is safe to use" is something that both is easy to understand and has a precise formal meaning.
nox
reem_: Hey there!
reem_: I pinged you on some of your repositories-- oh I see mbrubeck pinged you about it yesterday evening already. It would be really appreciated if you added maintainers.
Or we will need to fork all your stuff, which would be unfortunate.
centril
RalfJ: I think GATs will be the massive new enabler here
I think it will even be possible to define an Arbitrary trait which you can impl for &'a T where T: Arbitrary; which will be pretty cool
rkruppe
centril: GATs enable lots of things but will safe abstractions over dangerous operations be among them? Arbitrary is safe all the way down
centril
rkruppe: Arbitrary for &'a T is impossible right now ;)
rkruppe
sure
centril
rkruppe: GATs will enable you to have a better refl encoding that works for all functors, so that is making the safe abstraction over something unsafe better
rkruppe
but it seems this is partly due to a lack of expressivity _in general_ (not specifically related to making unsafe stuff safe) and insofar it's not possible to "do it safely" it's just the price we pay for having &T in the first place
whereas for example self-references normally require unsafety if it's possible at all, period, and now rust can do it safely
centril
rkruppe: So I think GATs will mostly give you unification and flexibility for already existing safe interfaces over unsafe code
but it is a massive boost in expressivity of the type system in general
which will help low level code
as well =)
(low level == bare metal here)
rkruppe: in any case, yay for GATs :P
rkruppe
yeah :)
centril
rkruppe: HKTs would be also nice so you can have those sweet sweet adjunctions F -| G
centril watched a talk about adjunctions yesterday and was impressed
kennytm joined the channel
shiro joined the channel
aismallard has quit
est31: yeah no, people intentionally sticking with try! is probably not a concern of mine ;)
est31
centril: thanks to attitudes like yours, rust is becoming less and less a stable language
and more one of those moving target crap things
like those javascript frameworks where if you start using one, it gets outdated the week after
The current semantics of catch { … } are IMO super bad.
est31
who guarantees me that it will mean anything
centril
est31: do you want dyn, GATs, const generics, etc.?
est31
in 1 year you might say "scrap rust, use typescript instead"
centril: const generics hahahaha
nox
The part where catch { foo? } == foo instead of catch { foo } == foo.
est31
as if they will get added to the language ever
and even if
they certainly wont make it till the 2018 epoch
rkruppe
est31: i don't know what issues you have but it seems at best tangentially related to the try {} rfc
nox
centril: I *really* dislike that we will need to opt in new epoch for things that shouldn't require a new epoch.
est31
at least given all of the statements by people on this
anyway I dont want to get distracted
breakage = shit
no breakage = leet
2020 epoch might have entirely different patterns altogether
didnt sign up for any of this shit
nox
est31: I somehow read "leet" as "leek" and was super confused.
est31
but its free so I better shut up I guess... not my money you are wasting
centril
est31: again; this is a lot of hyperbole. given rustfix, it will hopefully be trivial to switch up to a new edition
est31
not if you cant use rustfix because it introduces ? everywhere
& you cant turn it off
nox
centril: Where is rustfix?
centril
nox: what do you mean by 'where' ?
est31
again, why should I switch to the 2018 epoch? Why not wait until there is a 2020 epoch with its own set of breakages?
or a 2022 one
nox
centril: I was under water for a few weeks, so did rustfix happen when I wasn't looking?
rkruppe
est31: "why should I switch to rust 1.25? why not wait until there is rust 1.28"?
nox
rkruppe: That's different.
rkruppe
est31: the only substantial thing I could tease out so far is that you don't want rustfix to rewrite try!() to ?, in which case it seems like a small feature to request from rustfix developers or even hack in yourself
centril
nox: the status for 2 april is "not started" but it should be done by the launch of the new edition hopefully ;)
nox
centril: I have trouble believing it will be ready in time, hope I'll be wrong on that.
centril
nox: *crosses fingers*
est31
lol nox
steveklabnik
est31: don't attack other contributors nor javascript frameworks. come on.
nox
est31: You should opt in Rust 2018 to have a non-broken implementation of derive(PartialOrd) /s
steveklabnik
nox: what things are you thinking of re- shouldn't require an epoch?
nox
steveklabnik: Everything that isn't introducing breakage.
steveklabnik
then i'm confused as to what you're talking about
centril
est31: honestly, if all I did was focus on what can be reasonably described as trivial lexical syntax differences, I could absolutely 100% not use Rust; it is has radically different syntax, but I am able to use both Rust and Haskell despite these differences
steveklabnik
because you shouldn't have to?
nox
steveklabnik: centril was implying I should.
steveklabnik: I was replying to "14:08 <centril> est31: do you want dyn, GATs, const generics, etc.?"
steveklabnik
ah, well dyn has *some* breakage. but is still usable on 2015. the other two are also not epoch-specific as far as i know
centril
nox: well, it is possible that some of these might be in edition 2015 ofc