Welcome to a mega-This Week in Rust. I was swamped this past week with schoolwork, so TWiR was put off. This week's combines the past two weeks of progress. These past two weeks were fairly exciting in terms of language and library progress. The next few weeks should be even more exciting.

What's cooking on master?

There were 108 PRs merged these past two weeks.

Breaking Changes

  • The very long-awaited enum discriminant size patch has landed. This will affect FFI. Size of enum discriminant is now configurable via the repr attribute, and will by default shrink to the smallest needed.
  • The extension traits for Reader and Writer have been transformed into default methods on their respective trait.
  • Non-string literals are now disallowed in attributes.
  • Type parameters are now forbidden on inner statics (statics inside functions).
  • The interface to flush stdout has changed. It was previously unsound by allowing aliased &mut.
  • Result's API has changed quite a bit, to be more consistent with Option, and hopefully simpler.
  • Linker arguments no longer propagate across crates. This means that if you link to a crate, its linker arguments won't be automatically added when your crate is linked.
  • The memory intrinsics have been simplified. A single intrinsic for memcpy/memmove/memset is now exposed, rather than one per platform.
  • #[link(name = "...")] is now taken into account by rustc when creating build artifacts.
  • std::rt::io::file has been fleshed out and tweaked. In particular, it has been renamed to std::rt::io::fs, many previously-free functions are now associated functions on std::rt::io::File, and FileInfo has been renamed to FileStat.

Other Changes

New Contributors

Welcome to our new contributors!

  • Brian
  • Carol Willing
  • Dirkjan Bussink
  • Guillaume Pinot
  • Gyorgy Andrasek
  • Joshua Yanovski
  • Mat Carberry
  • Noufal Ibrahim
  • Robert Irelan
  • Tomas Sedovic
  • Jennifer Ward
  • Patrick Kim

At .85 new contributors a day, we'll soon dwarf every other language in the "awesome volunteer" category.

Weekly Meetings

Last week's meeting discussed segmented stacks (spoiler: they're not coming back ) and placement new (we want it, how do we want it?).

This week's meeting discussed the future of libextra, more stack things, octal literals, vector representation, and temporary ("rvalue") lifetimes.

Announcements etc