This Week in Rust
Hello and welcome to the 12th issue of This Week in Rust. Sorry for the brevity, though most weeks are probably going to be like this, as I’ve started uni and have much less free time than in the summer.
What’s cooking in master?
A whopping 71 pull requests were merged this week, and issue churn remains negative at -32.
yieldis now reserved as a keyword, with the hope of maybe using it for generators.
- The type of
extern fn foois now
extern "C" fn, rather than
- Some free functions in
extra::jsonwere turned into associated functions on the Json enum.
XorShiftRng::new()now uses a random seed. This is only breaking if you were depending on that constant seed, which you shouldn’t have.
extra::getoptsaligns based on codepoint count and not byte count, as a step towards more correct unicode handling.
fprintfhas been added, as well as some
ifmtcleanup. The new runtime has seen a lot of optimization.
- File IO has been added to the new runtime.
- Some parsing errors related to ports have been fixed in
- CharIterator has seen some optimization too, with reverse iterators being much closer in performance to forward iterators now.
- sysconf names have been added for android.
- The new runtime now has threadsafe IO.
- A callback optimization has sped up message passing benchmarks to the tune of 40%.
- jemalloc is back.
- gnueabihf actually uses hard floats now.
- Frame pointer elimination is no longer disabled.
- Some debuginfo fixes landed.
Supposedly, libstd can now be compiled with
-Z debug-info. Yay!
- Stack unwinding on 32-bit windows now works. This is a major step forward for Windows support, I’m very excited to see it land.
- A handful of default method bugs have been fixed.
- Inheriting from kinds now sorta
works, you can do
trait Foo: Freeze, for example.
- Supertrait methods can now be used from a trait object.
- The rest of pnkfelix’s visitor trait rewrite series landed. 2, 3, 4, and 5.
- Foreign function wrappers have been removed.
- LLVM has been updated.
The Tuesday meeting discussed cycle time and how to fix it.
Projects and discussion
- gl-rs is now ready for use, since the foreign function wrappers have been removed!
msgpack-rust has been created. It ties into
- Parallel cross-language level generation benchmarks.
- A Week with Rust.