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.
What's cooking on master?
74 pull requests were merged in the last week.
Breaking Changes
So just dumping the breaking change log raw didn't really work out last time.
The complete log is available
here, and you can view it
with git log --grep 'breaking-change' --since 6/7/2014 --until 6/14/2014
.
I've chosen some particular breaking changes I think are more-breaking than
the others.
~[T]
has been 100% removed from the language. To create aBox<[T, ..N]>
, however, you temporarily need to dobox () ([1, 2, 3])
, rather thanbox [1, 2, 3]
, which will work in the future.- Patterns that shadow themselves are no longer
allowed, for example
let (a, a) = (1, 2);
- Some features have been
removed from
format!
, namely pluralization and select, and escaping them has changed somewhat to no longer use\
. - The "stronger guarantees for mutable borrows" RFC has been implemented.
- The
@
-syntax has been removed entirely. Together with~[T]
, this marks the end of the tyrannical rule of sigils! transmute
no longer casts between types which have type parameters.
Other Changes
- The
PartialEq
docs have been revised for clarity and correctness. - The identifier name lint now gives suggestions on what you could rename your identifier to.
- The loadable syntax extensions work has been generalized to more arbitrary compiler plugins.
- Function call overloading is now implemented, as part of the unboxed closure work.
- Unused struct fields are now
detected by the
dead_code
lint. - The docs are now built with relative links, letting local, off-line copies work as expected.
libsync
is now underneathlibstd
.- Debuginfo type identifiers are now unique, cross-crate fixing debuginfo with LTO.
- The results of compiler analysis can now be dumped to CSV, which the DXR tool will use.
- Rotates and byte swaps are now
exposed as nice methods on the
Bitwise
trait.
New Contributors
- Michael Reinhard
- Renato Riccieri Santos Zannon
- Renato Zannon
- Valentin Tsatskin
- Zach Pomerantz
- bachm
- theptrk
New RFCs
- Unboxed closures, the unboxed closures RFC to rule them all.
- Removing integer inference fallback
- Feature gate import shadowing
- Rename
unsafe
totrusted
- Overloaded arithmetic and logical operators should take
self
and their arguments by value - Add support to serialize::json for incrementally reading multiple JSON objects
- Reintroduce
do
keyword as sugar for nested match statements
Community Updates
- Comparing k-NN in Rust
- Error handling in Rust: a k-NN case study
- Los Angeles Rust meetup
- AnyMap, "a safe and convenient store for one value of each type".
- Rust By Example now lets you execute code examples on-page.
- Piston game engine progress update
- floor, "a simple and lightweight foundation for web applications written in Rust".
- jit.rs, a libjit wrapper
- stompers, a STOMP client
- Brooklyn.rs
- Rust nightlies archive
- Rusty Tetris, a tetris clone using Piston
- Introduction to Rust, a talk Ben Striegel is giving in Pittsburgh.