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.
This week was the Winter Workweek.
What's cooking on master?
66 pull requests were merged this week.
Breaking Changes
Anyhas been cleaned up, and in particular theas_void_ptrandas_mut_void_ptrmethods are gone.- Patterns are no longer allowed in extern function declarations. Previously, they either silently passed or ICEd.
- Comparison traits have been reworked.
- DeepClone has been removed.
- Compound assignment (eg,
+=) is no longer allowed on potentially uninitialized variables. std::randhas been moved into alibrand.- debuginfo flags have changed slightly, and more limited debuginfo is supported again (only line number information).
Other Changes
- Dereferencing is now
overloadable. This is another
part of the smart pointer changes. Code like
let x = *Rc::new(5);is now valid. There is a follow-up pull request that will automatically dereference smart pointers where appropriate, to avoid expressions likefoo.borrow().get().borrow_mut().get(). - Hexadecimal floating point literals are now available through a syntax extension.
- Support for creating binary installer tarballs has landed.
- Linker arguments are no longer deduplicated.
- Weak linkage etc is now
possible via a
linkageattribute.
New Contributors
- Dmitry Promsky
- Mike Boutin
- Robert Gawdzik
Weekly Meeting
There was no weekly meeting due to the workweek. There are notes and minutes, however, and there will be many RFCs from it.