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 is on the brink. Perhaps this week, the next at the latest. Some hefty changes come this week.
What’s cooking on master?
63 pull requests were merged this week.
@muthas been removed. The replacements are
Rc<RefCell<T>>. See also
- Dereferencing of unary tuple structs and enums (tuple structs with one field and enums with one variant) has been removed. An example:
1 2 3 4 5 6 7
Eitherhas been removed.
extern mod foo (name="bar")syntax has been removed. The newer
extern mod foo = "bar"syntax replaces it.
- The hashmap iterators have
- rustc now outputs 1-based column numbers. This shouldn’t affect any tooling that assume columns are 0-based. But, this brings us in line with gcc.
cfgattribute will now strip struct fields and enum variants.
- The contents of the
crate_typeattribute are now checked for validity.
Writerhave regrown some functionality. It can now read and write strings, though only real UTF-8 strings. Encoding support will come later.
- Unwinding on ARM has been fixed. Still no C++!
- Native UDP IO has been implemented.
rust_failfunction has been added. Break on this function to catch failure. Should be easier to remember! Certainly better than
- Some more C has been converted to Rust.
- volatile load and store intrinsics have been added.
Additionally, it hasn’t landed yet, but external syntax extensions, aka loadable syntax extensions, aka procedural macros, seem to be really close to landing. This is quite exciting!
- Alan Andrade
- Carl-Anton Ingmarsson
- John Louis Walker
- Peter Zotov
- Matthew Auld
Once again, no meeting due to the holidays. There will be one on January 7, however.
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.
Mozilla Corp. came back from vacation this Thursday, January 2nd. We landed 14 PRs this week.
- Aydin Kim fixed Android support – hooray! – in #1445.
- Mike Blumenkrantz cleaned up our configure script to avoid the “configure smashed my submodule edits” problem in #1449.
- deokjinkim fixed several font-related issues in #1454 and #1452.
- Simon Sapin refactored font styles in #1455.
- Shamir Khodzha implemented
child_elementsfor filtered iteration in #1443.
- ms2ger landed several changes to attributes in #1439, #1456, and #1460.
- Shamir Khodzha
- Mike Blumenkrantz
- DST, take 5. I think this might be the last DST proposal, and I quite like it.
- rust-redis and rust-msgpack.
- A capnproto-rust and zmq example.
- Post-mortem from the OS class taught in Rust.
- Using CMake with Rust
- boehm-rs, a
Gc<T>type with a real GC!
- rust-OpenBLAS, a (in-progress) library for using OpenBLAS and LAPACK.
- libhttpd, a library for writing web servers. Intended to be similar to jetty.