#RustConf 2022 is kicking off!
Thank you @nellshamrell for kicking off RustConf!
The Opening Keynote with @josh_triplett:
"Everything you want to know about the current and future state of the Rust project, team and community."

Josh went from presenting his first time about introducing `union`, to giving the "state of the union".
Damn, yes. I quite forget that `?` hasn't been there from the beginning 😅
Aside: shout out to @yaahc_ for her work on Error handling
@yaahc_ "Rust and The Community evolve *together*" — @josh_triplett
A conference still. On the left Josh Tripplet talking from t
You can't goo too quickly or too slowly when stabilizing. You need to find a balance to avoid breakage or stifling progress.
Upcoming changes to make it clearer (and easier as possible) to figure out how contribute
Update on Rust governance: "We found some UB in our governance. We're working on new structures, and we want to enable smooth evolution over time."
RustConf PostConf UnConf happening tomorrow
Supporting Rust contributors  You'll hear talks from many peThis applies outside RustConf too!  Watch for people seeking
@tmandry kicking his talk now
"Where did you goooo🎵" Tyler Mandry with a slide "Sustaining Rust's Soul"
Guest @RustConf appearance: @jckarter There are 2.2 million Rust developers worldwide, growing rapA tweet from @jckarter: I guess there are now three kind of
@rustconf @jckarter "Stay curious. Openness is not about winning, it's about changing minds and allowing others to change yours. When you have a shared inspiration and move in sync, building something together becomes much easier." — @tmandry
@rustconf @jckarter @tmandry Inclusion is hard, but it is Rust's strength.
@rustconf @jckarter @tmandry It's ability to bring together seasoned and novice system programmers, both imperative and hardcore functional programmers, and enabling them to build things with a level of safety that wasn't possible before. Inclusion lies at the heart of that.
@rustconf @jckarter @tmandry *Editor's note: @tmandry dropping *the* quote of the conference one after another
@rustconf @jckarter @tmandry @tmandry slipping into our DMs: "Hey Rust? How are you doing?"
@rustconf @jckarter @tmandry "30% of people who tried to contribute, didn't succeed" "We document, we mentor, we tag issues" "revi"slow-moving" "This patch has been sitting fo
@rustconf "I want to make sure I'm engaging the more appropriate members of the audience" A slice of ferrises wearing suits, with flames in the backgr
@rustconf Now @mycoliza showing off github.com/tokio-rs/conso…, courtesy of Penumbra
@rustconf @mycoliza Julia Wang in the break out chat talking about trains is fascinating. Letting us know that trains are mandated to have three lights, and not two so they can be distinguished from cars from afar. So all trains have their two eyes and their third eye wide open.
@rustconf @sgrif showing off in the break out chat, letting us know that they've seen all the talks already (because that's how RustConf operates), and that Julia's closing talk is amazing. So make sure you don't miss it!
@rustconf Seriously, there are Software Engineers and Software *Engineers* 🚂
@rustconf @nick_r_cameron talking about async/await past present and future, who apparently doesn't have a single fun fact about himself, which I guess is a fun fact
@rustconf What makes Rust, Rust? safety performance ergonomics
@rustconf "zero-cost abstractions"
take a shot 🥂
@rustconf > Wait, is this a fun fact or `fn` fact?
@rustconf > Nick really should present about past, present and future at the same time 🙂
@rustconf *Editor's note: @nick_r_cameron's next talk needs to be called "Everything everywhere all at once: async/await in Rust" 👀
@rustconf Chat side-channel: impl Future<Output = !>, and other types dreamed up by the utterly unhinged
@rustconf > I feel a GATs mention coming in hot
5 seconds later: Slice with red letters: GATs
@rustconf (^ take another shot 🥂)
@rustconf Nick, paraphrased: "to make async/await from scratch, you first must invent IntoIterator" Carl Sagan in Cosmos: "if you want to make an apple pie
@rustconf "The problem with poll", and other daytime comedies, coming soon 😅 A diagram showing that you poll, wait for some data, write t
@rustconf async/await's nemesis: borrowck and lifetimes.
Dropping a Future (or worse! mem::forget) gets us in trouble.
Cancellation has to be async too. async Drop is... tricky. But even if we had it, drop isn't guaranteed to run. We can't rely on destructor for soundness. Rust code: async fn read_iou(iou: &dyn Read) {     let mut b
@rustconf Now, talking about rustc bootstrapping @joshuayn514, showing how every rustc version uses nightly features from the previous rustc version, which means that to build any given version you need to build version - 1 first. Carl Sagan apple pie, yet again.
@rustconf @joshuayn514 > will panic!("{:?}", return 42); panic or return?
If a tree falls in the woods, but there's no one to hear it, does it make a noise?
@rustconf (It returns)
@rustconf Why do we allow rustc to use nightly features? Well, we have full control of the codebase (which means we can be careful about reliance on nightly features) *and* we can dogfood them, to make them better before stabilization.
@rustconf "Compilers can be buggy"
No! That's not true! That's impossible!
@rustconf "The code compiles, but the binary does the wrong thing. That's called a miscompilation."

NOOOOOOOooooo000OOOO!!1
@rustconf Shout out to @pietroalbini's "Shipping a compiler every 6 weeks" talk
pietroalbini.org/blog/shipping-…
@rustconf "Reflection on trusting trust"
cs.cmu.edu/~rdriley/487/p…

Take a shot 🥂
@rustconf I forgot to mention earlier, but `#[yeet]`
areweyeetyet.rs
@rustconf "Our trust chain is... a bit... long" A slide listing every rustc version since 2012
@rustconf >> What's see plus plus?
> bifocals
@rustconf @joshuayn514 wrapping up talking about his *huge* effort to excise the need for python (x[dot]py is the entry point) for building rustc
@rustconf Honestly, it's amazing how consistently *good* RustConf is. And the discord channel is always so much fun.
@rustconf @Gankra_ is directly responsible for one of std's CVE
"What if we pretended unsafe code was nice, and then it was?"
@rustconf Of course, Aria's best known of the Rustonomicon and Learning Rust with Too Many Lists, but hasn't worked on Rust for a while. But *then* got annoyed with strict provenance.

doc.rust-lang.org/nomicon/
rust-unofficial.github.io/too-many-lists/
@rustconf So now we're stuck with no escape, the doors are locked: @Gankra_'s gonna explain memory models to us.

*Editor's note: May God have mercy on all of us.
@rustconf This tree house is memory. It is (Hellraiser's) Pinhead's. This tree house is bad, but it could be worse. Oh, it is worse, it's taller so we take longer to climb it. Well, it could be worse. Oh, it's worse, it's on terrible clip art fire.
@rustconf I have *no* idea what this part of the thread looks like without context. This is wild, y'all! Analogies on analogies on analogies! Super technical concepts! Advanced knowledge on memory models! Cache locality! (Take a drink 🥂)
@rustconf > `Pin<Head>`
@rustconf > Pinhead working on a new Configuration Management solution called Lament — @theomn
@rustconf (provenance!!) take a shot 🥂
@rustconf >> Wait, so who is Pinhead? I've never heard of Pinhead before. Is this some media I'm not familiar with?
> hellraiser / the hellbound heart
> its an old horror movie character
> The *one true* original pointer

*me, turns to dust at hellraiser being old*
@rustconf There's Miri, which runs your program in a fully sandboxed environment and keeps track of everything, which catches incorrect memory accesses. And we have CHERI which takes this concept to the hardware. A tree with a tree house, a guard dog and it's on fire  GUAR
@rustconf But we gotta go fast! WHO NEEDS GUARDS? you can't commit crimes, that's illegal! g
@rustconf The full RustConf Discord experience ··· Several people are typing...
@rustconf > We sell UB at cost and make our money off pointer alignment sales — @mgattozzi
@rustconf "CHERI has perfect provenance tracking. Except for time travelers." — @Gankra_ CHERI Tracking  CONQUER WORLD I am become native no escape p
@rustconf The temporal component rears its ugly head.

*Editor's note: this feels to me as an ad for generational arenas Theseus' Puzzle Club  no one left in the club free that allo
@rustconf We're gonna talk about transcending reality. — @Gankra_
@rustconf @Gankra_ > 🏳️‍⚧️ clones
@rustconf Philosophical issues:
- use-after-free-via-trascendence
- CHERI really cares about all the bits in the pointer, so ptr -> int -> ptr can't work
@rustconf CHERI has a solution: use an existing ptr to use its provenance for an int that you're turning into a new ptr. Pretend that we have to do this. Because it cleans up the ptr -> int -> ptr hole when tracking pointers. Everything stays the same, but now we're being clear.
@rustconf So the final result is the same, but now Miri and CHERI can make sense of things, and help you check your code.
@rustconf I'd put the whole talk here, but seriously, go watch it when available.
All these APIs are unstable in std, but they are also available from crates.io/crates/sptr which polyfills all of them (the code is a few lines, nothing more), so you can use them today. from_exposed_addr and invalid More Clear  UNCLEAR: some_int Avoid Trascendence (Conveniences!) ptr.is_aligned() ptr.is_a
@rustconf > are we seriously sponsored by a company named "hrt"?
> this fits our community so well
@sgrif: "when is postfix unsafe coming, haha"
@josh_triplett: "We've talked a lot about postfix operators. We're seriously considering it for a lot of existing keywords, but likely not for unsafe."
@sgrif @josh_triplett @josh_triplett: "@Gankra_ has proposed postfix dereference operator, which would help a lot with pointers."
@sgrif: "that was a very detailed and thoughtful answer to my joke question"
@sgrif @josh_triplett @Gankra_ @sgrif: "here are some giveaways, react to this comment with any emoji for a chance to win"

* emoji counter starts moving like a plane on freefall *
Now, after a cute dog, @mgattozzi talking about github.com/rust-lang/rust…
The word `u8` has lost all meaning
Now, @AliceICecile to convince you that your open source project needs a project manager
The same mistakes: poor onboarding Unclear prioritization De
You are not the boss. Top down approaches are not effective.
Get other people to do your job for you. Make yourself not the single point of failure. Your project must ve robust to both disasters and vacations!
I'm gonna have to stop the live tweeting sadly, due to timezones. I can't wait to see the rest.
The slides for @Gankra_'s talk are available at gankra.github.io/talks/strict-p…

I hope this was useful/enjoyable to you all!
🚍 No tribal knowledge Don't be a clown, write it down
BTW, shout out to goose.rs for knowing it's audience A black dog in a garden, addressing the viewer. Leo McGarry
So after I went to bed, I got pinged on discord because I got quoted by @_lrlna 😅
I have to say, I love the aesthetic of the slides. If the stream still exists tomorrow I'll watch it delayed, otherwise I'll be eagerly waiting to the uploads.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Esteban K�ber – 🦀⚙️

Esteban K�ber – 🦀⚙️ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ekuber

Aug 5
A licensed roadway engineer stated the following in response to the recent shocking crash in La Brea. I fundamentally disagree.
usa.streetsblog.org/2018/12/13/why… Currently, roads cannot be designed to prevent vehicles from
The entire thread is incredibly pro-stroad, which is incredibly depressing from someone who is responsible of shaping our built environment.
strongtowns.org/journal/2018/3…
"You can't prevent vehicles from speeding through design" is such a lack of imagination or even *experience*.
If you can race on a street, the street is bad!
Narrow the damn roads! You know what happens? People slow down regardless of the number on a sign.
strongtowns.org/journal/2022/7…
Read 4 tweets
Aug 4
If you write unsafe const functions in Rust, be aware that the stability guarantees for them are... less flexible than what you might expect given experience with writing regular unsafe functions.
Regular unsafe functions might contain latent UB, but as long as LLVM doesn't exploit it, you might be fine for now, so crate authors operate under a "my code might have UB, but it might be fine for a while as long as I test it" attitude.
unsafe const functions have to go through MIRI, and that tool improves over time, which means that new rustc releases will detect UB that it used not to, as the interpreter improves. This means that we might break backwards compat for unsafe const functinos with UB.
Read 5 tweets
Apr 29
The ideal language gets out of the way and lets you quickly prototype while letting you turn your pile o'hacks into production quality code. The language needs to scale up and down.
The disagreement between specific languages is where to start: dynamic languages and Go start on the quickly prototype things, Rust starts on the "let's make this as rock solid as possible" end. Langs like Scala and Kotlin kind of start in the middle.
Personally I am of the opinion that even though starting on the "cater to prod services" end puts a limit on how "easy to prototype" the language can be, it is easier to move in that direction than starting in "easy to prototype" and move towards "make it easy to be rock solid".
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(