Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safe, concurrent, and fast. This is a weekly summary of its progress and community. Want something mentioned? Send me an email! Want to get involved? We love contributions.

This Week in Rust is openly developed on Github. If you find any errors or omissions in this week's issue, please submit a PR.

What's cooking on master?

96 pull requests were merged in the last week.

Now you can follow breaking changes as they happen!

Breaking Changes

  • Send and Sync are now unsafe traits, partially implementing the OIBIT RFC. They are implemented by default for types that only contain Send and Sync types and can be opted into (unsafely) for other types, particularly those containing unsafe pointers.
  • The way fn items are coerced has changed in subtle ways.
  • There has been another stabilization pass over std::str which includes a number of minor breaking changes.
  • The semantics of the reserve methods of Bitv and BitSet have changed to match conventions such that it reserves n additional units capacity instead of total. The free functions of collections::bit have been deprecated.
  • FPCategory, for classifying floating point numbers, has been renamed FpCategory to match conventions.
  • std::ascii has undergone some changes with to_ascii_lower being renamed to to_ascii_lowercase and to_ascii_upper to to_ascii_uppercase. The Ascii type has been removed in favor of the AsciiExt trait, implemented for u8 and char. RFC.
  • BinaryHeap::top is renamed to peek.
  • A number of iterator types have been renamed. Only breaking if you name them somewhere.
  • include_bin! is now include_bytes!.

Other Changes

  • A new range syntax allows for ranges to be specified with m..n, ..n, m.. syntaxes, which will soon let slicing be implemented as indexing over ranges. For now the ..n notation is not implemented because of an ambiguity in the syntax that must be resolved first. RFC.
  • The new fixed length array syntax that disambiguates the new range syntax has been implemented. The old syntax has not been removed yet.
  • The new {:?} fmt specifier has been implemented. It corresponds to the Show trait and is intended to be implementable by all types, whereas the String format specifier ({}) is purely for types that can be losslessly converted to strings. RFC.
  • Return values have been optimized to reduce stack usage dramatically, and rustc now only allocates 8MB of stack instead of 32MB.

New Contributors

  • Brian J Brennan
  • Florian Wilkens
  • Johannes Hoff
  • Maya Nitu
  • Rolf Timmermans
  • Simonas Kazlauskas

Approved RFC's

None.

New RFC's

Community

From the Team

It's Christmas time and holidays, so no meetings at all this week.

Blog Posts

The end of 24 Days of Rust

24 is too small!

Discussions

New Projects

Project Updates

Upcoming Events

Nothing on the calendar until the Seattle meetup on 2015-01-12.