This Week in Rust
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.
0.9 was released this week, bringing with it a restructuring of our documentation and the usual influx of attention.
What’s cooking on master?
57 pull requests were merged this week.
- Float literals are now more strict. Octal and hex float literals are no longer allowed.
- A nasty soundness bug reported on reddit has been fixed.
printlnhave been removed from the prelude. Use the
Rcnow supports weak pointers, and it no longer requires the wrapped type to be Freeze or Send. That is, it no longer statically avoids cycles using the type system. It was found to be too restrictive. The only constructor is now
Readerhas been removed, as only files really know when they are at eof. It is now a method on the types it makes sense for such as
std::numis seeing some simplification. Many traits have been merged into
ApproxEqhas been removed.
std::io::Decoratortrait has been removed.
- A nasty resolve bug has been fixed. Importing a trait made it available to all child modules; now it is only available in the module that imported it, as it should be.
- Some method renaming has been
- A lint for unnecessary casts has been added. It is set to allow by default.
- Mutable iterators have been
- A bug in rustpkg preventing it from finding any static libraries, and libnative, has been fixed.
u64_from_be_byteshas seen some optimization, it is 3-6x faster.
boxhas been kinda-implemented.
- Typed arenas have been added. They’re really fast!
stdoutis now per-task, which will allow capturing or redirecting a task’s output.
- Andrew Chin
- Clinton Ryan
- Derek Chiang
- Mick Koch
- Nick Cameron
- Niels langager Ellegaard
- Nif Ward
- Raphael Catolino
- Rich Lane
- Dzmitry Malyshau
The weekly meeting discussed Windows XP support, bounded channels, the Rc changes, using guard pages, loadable syntax extensions, and functions that fail.
Quotes of the Week
“[I] find it easy to get lost in this file.” –
– “A language is more than just semantics, syntax, and an implementation –
it’s about an ecosystem and a community. Without that it dies.” –
This Week in Servo
Servo is a web browser engine written in Rust and is one of the primary test cases for the Rust language.
The Servo tree has been mostly frozen for a large part of this week, as the nearly month-long Rust upgrade is finally getting close and we wanted to avoid additional rebases. We did land 7 PRs, many with associated fixes, however.
- Patrick Kim fixed anonymous boxes and images disappearing during line breaking in #1461 and #1463.
- Patrick Walton fixed a race issue with window sizes and script code in #1409.
- Jaeman Park landed CSS parsing and selector matching for pseudo element :before and :after in #1464.
- Bruno Abinder made some DOM additions in #1466 and #1472.
In this week’s meeting, we discussed the upcoming workweek, the Rust upgrade, ARM buildbots for Rust and Servo, and some research we’re doing into the breakdown of page load.
- Bay Area Rust Meetup: 1/28/2014
- The Rust language: memory, ownership and lifetimes, Niko’s presentation at Linux.conf.au
- An appeal for correct, capable, future-proof math in nascent programming languages
- An in-progress redesign of the website
- Combining rust-http with route-recognizer.rs to create routable HTTP
- A TOML configuration file parser
- Mapping High-Level Constructs to LLVM IR, a peek at what drives the underbelly of the compiler
- Add garbage collector to
- rust-workspace, a simple shell to make maintaining Rust projects easier
- Semantic code browser for Rust
- Rvalue Lifetimes in Rust
- Nobody Knows Rust – Steve Klabnik’s slides
- 0.9 Release Announcement
- A 3d-printable Rust logo