I was disappointed when I read Carbon wasn't going to try to match Rust on mem safety, but this presentation on lessons learned from and putting their own spin on the Swift/Rust protocol/trait systems has some cool ideas, esp. part 2. Decidable checking!
piped.video/FKC8WACSMP0?si=PDhb…
They introduce what looks like a very sane heuristic for making sure that the protocol/trait checking is making progress and not getting sucked into an infinite loop.
piped.video/watch?v=VxQ3Pwxi…
I would like to know how Carbon plans to make sure trait/protocol checking doesn't infinite loop in the presence of variadics though, do my parameter packs always need to stay the same length or shrink too? @chandlerc1024 ?
We definition check variadics with symbolic arity. This also lets us definition check the variadic's arity being valid in all uses of the pack, etc.
The CppNow talk about this should be posted soon, and the proposal for it is under active work: github.com/carbon-language/c…
Jun 16, 2024 · 10:05 PM UTC

