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.
Breaking changes
yield
is now reserved as a keyword, with the hope of maybe using it for generators.- The type of
extern fn foo
is nowextern "C" fn
, rather than*u8
. - Some free functions in
extra::json
were 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.
Library changes
extra::getopts
aligns based on codepoint count and not byte count, as a step towards more correct unicode handling.fprintf
has been added, as well as someifmt
cleanup. 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
extra::url
. - 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.
Compiler changes
- 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.
Docs etc
Meeting
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
extra::serialize
. - Parallel cross-language level generation benchmarks.
- A Week with Rust.