Welcome to another issue of This Week in Rust! This week saw the release of
0.8, the removal of @fn, and a bunch of other changes. The tutorial has been
updated significantly, surrounding pointers and boxes, so you should re-read
those sections if you're still feeling shaky on when you should use which.
What's cooking on master?
There were 79 PRs merged this week.
Breaking changes
printf!andprintfln!have been removed.continueis now a keyword, a synonym forloop, preceedingloop's removal (https://github.com/mozilla/rust/issues/9467)- Item visibility is properly encoded in metadata, so code which used private items that may have worked before is now rejected.
- Char literals which should have been escaped are now rejected when they aren't escaped.
impl Foo for T;is now disallowed. Useimpl Foo for T {}.@fnhas been removed from the language. Replace it with@Traitobjects, if you really need@fn(you probably don't).startno longer takes a crate map.- Some more keywords have been
reserved:
alignof,offsetof, andsizeof.
Everything else
- A ton of documentation work was put in this week. The box section of the tutorial has been rewritten, and there's a new rustpkg tutorial too. The module tutorial saw the file section extended. There was a bunch of module documentation updated/added too.
- rustdoc(_ng) also saw a lot of work. It completely replaced the old rustdoc, as well as seeing a lot of fixes. Huge thanks to Alex Crichton for all the work with it!
std::vechas seen some nice changes toconnect_vecandconcat_vec(they were really awful before).rustpkg testis implemented.type_usehas been removed. This did some nasty things and LLVM'smergefuncpass will do a better job of the same optimization (once it's enabled).with_c_stris now optimized to be allocation-free for short vectors.- The logging system, when using the new formatting code (so
debug2etc) is allocation-free. std::randhas seen some cleanup, in preparation for its overhaul.
Weekly Meeting
The weekly meeting discussed a bunch of things, the main things of importance to me being:
loop->continue- Allowing nested comments
Announcements
- wxRust - A binding to the wxWidgets toolkit.
- widmann - A Sinatra clone
- gl-rs has been updated to generate only bindings for a select version / set of extensions.
- Debugging Rust in Eclipse - Michael Woerister's final GSoC post. He did really great work this summer!
- Rust for Rubyists has been open sourced!
- The Claymore project has just come to my attention. Apparently it has been going on for quite some time. There are some screenshots at http://claymore-dev.blogspot.com/.
- rustenstein3d - a Wolfenstein3D engine
- clio, a roguelike. This one also slipped under my radar for a while.
- rust-gmp has been updated for 0.8/master.
- rustdoc_ng, being merged into mainline, has concluded as a project.
- And, of course, the 0.8 release discussion on reddit.