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.
What’s cooking on master?
86 pull requests were merged this week. This ties for week with most merged pull requests. A week in September 2013 is the other record holder. To cope with the massively inflated queue, there were two roll-ups (not counted).
extern modis now written
- The big codegen compiler flags pull request I warned about last week indeed
-Zoptions are now under
-C, and a lot of previously-bare flags (such as
--linker) are now also under
std::utilhas been removed.
replacenow live in
dois once again a reserved word.
extra::complexhave been moved into
libnumas part of the libextra dissolution.
- The borrow checker’s treatment of closures has been revamped. It fixes all known soundness issues with closures. Unfortunately, it also breaks some programs that used to compile.
- Channels have been rewritten
to use the internally-upgradable design that was hashed out on the
Rather than having a separate
Chanis now cloneable.
SeekAPI has changed a bit.
- The breaking changes in the first
rollup are the removal of
ptr::is_not_nullas free functions and the movement of
std::num::Orderablehas been removed.
std::ptrsaw some more cleanup, most notably every function ending in
_ptrhas had that suffix removed.
to_mut_unsafe_ptrhave also been removed.
- Process arguments and environment variables now use the
from_utf8_lossyfunction that was introduced last week, rather than failing on invalid utf8. Additionally, there are now
env_as_bytesfunctions to get arguments and the environment raw.
- The makefiles have been
refactored, and there is now a
make tipsfor hints on how to use the build system.
- In yet another multi-thousand-line patch by eddyb,
ast_map::Pathno longer requires cloning, due to clever devilry.
- green task spawning was sped up by almost 5x.
- We now bundle and use compiler-rt for intrinsics rather than using the system libgcc. We still depend on libgcc for unwinding,
- The pidigits benchmark was made 20x faster by optimizing bigint.
- Bruno de Oliveira Abinader
- Eduard Bopp
- Edward Wang
- Jake Kerr
- Liigo Zhuang
- Matthijs van der Vleuten
- Peiyong Lin
- Tobias Bucher
discussed struct construction sugar, what to allow in statics, the crate
finally macro, and implicit trait bounds.
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.
This week, we landed 18 PRs.
- Bruno Abinader landed several DOM fixes, including #1648 and #1646
- Hyun June Kim landed initial
:hoversupport in #1633
- Keegan McAllister restored task failure handling in #1691
- Rui renamed the .rc files to .rs in the main Servo repository in #1617
- Simon Sapin made some updates to attribute selector namespaces in #1653 and #1661
- Lars Bergstrom began the removal of non-script-crate
@muts in preparation for a Rust upgrade in #1663
- Austin King added some
window.consolesupport in #1666
- Marek Šuppa landed a fix to our contributing document in #1649
- Patrick Walton made extensive optimizations to style sharing in #1644
- Austin King (ozten)
- Marek Šuppa (mrshu)
In this week’s meeting, we discussed our embedding plans, ACID2 status, improving the availability of E-Easy issues, and doing a Rust upgrade (we are more than one month behind Rust master).
There is simply too much happening in the community to keep track of! I recommend browsing the Rust subreddit for goings-on. Some notable ones: