Rust 1.21
blog.rust-lang.org
blog.rust-lang.org
I did a double take there, since more parallelism often has the opposite effect (like computation, memory usage that would be spread out over time now happens at once, causing more memory overhead). The linked github issue[0] explains though:
> It also allows the main thread to switch between either translation or running LLVM, which allows to reduce peak memory usage since not all LLVM module have to be kept in memory until linking.
So I guess the idea is: the code that has already been translated can be processed by LLVM before all translation is finished, so it can also be released earlier. Very nice!
See our most recent newsletter for the impl period here: https://internals.rust-lang.org/t/the-impl-period-newsletter...
https://www.rustaceans.org/findwork
Note that this page appears to be displaying open issues, but doesn't specify if someone is actively working on an issue, so it might take a few tries to find one that's up for grabs.
Also, be aware that beyond just asking questions in the issue tracker and on the official #rust IRC channel, each Working Group has a room on gitter[3] where there are people more than eager to help any newcomers.
My advice would be to look out for anything that you might find interesting, ask for help whenever you get stuck and just read the code. There's plenty of opportunities to make an impact[4] :)
[1]: https://github.com/rust-lang/rust/labels/E-mentor
[2]: https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is...
[3]: https://gitter.im/rust-impl-period/
[4]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.m...
https://www.rustaceans.org/findwork might help you find something easy to work on.
I would like to port it (or parts of it) to Rust, for fun and speed. Since the grammars are EBNF, it means the same grammars can work in both Rust and Python (I already support some interoperability with Javascript).
However, I'm very new to Rust, and its type system and memory management mechanics seem a bit intimidating. Do you think anyone would be interested in mentoring me or even in actively helping me to port it? And if so, where/who should I ask? Thanks
I learned about how llvm does loop optimization and wrote a small null loop optimization pass. It turned out to be related to another problem and not need, but the experience was terrific.
Given that Emscripten isn't a tier 1 platform it wasn't a big deal but wanted to call it out in case anyone ran into it with 1.20.
Basically, the blog post is a subset of the release notes, the release notes are a subset of PRs, and PRs are a subset of commits.
https://internals.rust-lang.org/t/rust-release-milestone-pre...
https://github.com/rust-lang/rust/issues/44721 is the issue you want to track. There's been a lot of chatter in recent days.
(For reference: The original impl Trait: https://github.com/rust-lang/rfcs/pull/1522 The refinement, readying it for stabilisation: https://github.com/rust-lang/rfcs/pull/1951 The latest one, which gives it more expressive power: https://github.com/rust-lang/rfcs/pull/2071 )
There are some deprecation warnings that I've had to cleanup, but otherwise, it's been an amazingly stable upgrade process since the 1.0 release.
Mind sharing a link?
I often hear "since 1.x you should be doing y with z feature now but that is only in current and the rust book doesn't have a section on it yet"
Rust to me is still very much feels to me a moving target.
Plus, even with that advice, you can still do y the old way; we don't break things, we add new ones. Idioms are always evolving in every language, though it's true that in new ones, they evolve faster.
The way every reasonable person would. This release being the obvious example.
I can understand if you feel frustrated because you don't think this feeling is warranted, but this is not a constructive way to express that, nor fix the problem.
Rust to me is still very much feels to me a moving target.
This is FUD mostly, Rust uses the same release model as Go, or Linux.1.X is backwards compatible to 1.(X-N), and the releases are on a regular cycle... like Go and Linux (well minus semvar stuff, linux just doesn't break userland). Each release _does_ add new things, but they don't do _break_ old things.
[1] Except, probably, for corner cases that I'm not aware of because I don't do C++ anymore.
The old book is not so much "obsolete" as it is "has significant weaknesses as a text so we re-wrote it"; everything in there still applies, and still works.
How is your experience with No Starch, if I may ask? I have a few eBooks by them that I got in various humble bundles; they're usually decent enough introductions to the subject matter at hand.