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.continue
is 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 {}
.@fn
has been removed from the language. Replace it with@Trait
objects, if you really need@fn
(you probably don't).start
no 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::vec
has seen some nice changes toconnect_vec
andconcat_vec
(they were really awful before).rustpkg test
is implemented.type_use
has been removed. This did some nasty things and LLVM'smergefunc
pass will do a better job of the same optimization (once it's enabled).with_c_str
is now optimized to be allocation-free for short vectors.- The logging system, when using the new formatting code (so
debug2
etc) is allocation-free. std::rand
has 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.