Hacker News new | ask | show | jobs
by mindv0rtex 2229 days ago
I hope Rust adds the major anticipated features (GATs, const generics, specialization) soon, or alternatively decides to not implement them altogether. I'm a rather new Rust developer, but still I very quickly ran into the issue of needing a nightly version of rustc because one of my dependencies (PyO3) relied on one of these features. It would be awesome to have some periodic updates from the compiler team on the progress thereof.
3 comments

There are many places to follow:

https://github.com/rust-lang/wg-traits/tree/master/minutes

https://github.com/rust-lang/lang-team/tree/master/minutes

https://rust-lang.github.io/compiler-team/

There's a youtube channel too. (Also start here: https://blog.rust-lang.org/inside-rust/2020/03/28/traits-spr... )

The important thing is the `chalk` work. And basically the rust-analyzer approach drives that.

Hah, this branch PR got merged 6 days ago into rust master: https://github.com/rust-lang/rust/pull/69406

Technically speaking, those are implemented, just not stabilized, if you’re using them in the nightly, they’re just disabled in stable.

So I would anticipate they will eventually stabilize like many other features have and become part of stable.

Just want to clarify that an implementation being present in nightly doesn't ensure a timeline for stabilization or even that it will happen, as unexpected bugs in the implementation or design of the original RFC might crop up once it's actually used that makes us take the decision to push the stabilization back. This has happened multiple times (from a single version delay to things that are perma-unstable). That being said, the majority of the unstable features you're waiting for "only" need baking time.
GAT and specialization still needs a lot of magic, mostly chalk/polonius integration, doesn't it?
We need more volunteers to help implement those features!
Is there a meaningful help that a Rust beginner can provide here?
Many tickets are scored with a difficulty, and sometimes comes with a mentor: https://github.com/rust-lang/rust/labels?q=E-

I think there are meaningful things a beginner can do. I'd be surprised if improving error messages would be terribly hard. And working on the small issues will help you become familiar enough to help with the bigger things.

Edit: Also perhaps a way to get some exposure to the rust compiler is to help implement lints (in clippy) - it's basically a compiler plugin and relies on the same things available in the compiler.

The D-papercut diagnostics tickets are in my mind a great source of these kind of newcomers tasks, as some are quite small and don't require full context of the codebase.