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
Any
has been cleaned up, and in particular theas_void_ptr
andas_mut_void_ptr
methods 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::rand
has 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
linkage
attribute.
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.