Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.
Updates from Rust Community
News & Blog Posts
- Sealed Rust update: The plan for safety critical Rust.
- Why is Rust the most loved programming language?
- Rust ghost, signing off.
- I audited 3 different implementation of async RwLock.
deny(warnings)
is actively harmful.- Rust for Java devs.
- Some nuances of undefined behavior in Rust.
- A pragmatic approach to global state
- Graphs in Rust: Introducing GraphCore.
- faux - an inside look
- rust-analyzer changelog 12.
- IntelliJ Rust changelog 116.
- This month in Rust GameDev 6 - January 2020.
Crate of the Week
This week's crates are pointer-utils, a small library for working with pointers, and jlrs, a crate to call Julia from Rust.
Thanks to Vikrant for the suggestions!
Submit your suggestions and votes for next week!
Call for Participation
Always wanted to contribute to open-source projects but didn't know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
- [puzzle] The battle for Rust knowledge supremacy.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
276 pull requests were merged in the last week
- enable Control Flow Guard in rustbuild
- transition macro_legacy_warnings into a hard error
- parse: unify function front matter parsing
- fix extra subslice lowering
- fix lifetime shadowing check in GATs
- record proc macro harness order for use during metadata deserialization
- tweak borrow error on
FnMut
whenFn
is expected - when expecting
BoxFuture
and usingasync {}
, suggestBox::pin
- micro-optimize the heck out of LEB128 reading and writing
- traits: preallocate 2 Vecs of known initial size
- don't run coherence twice for future-compat lints
- correct inference of primitive operand type behind binary operation
- support new LLVM pass manager
- rustc_session: allow overriding lint level of individual lints from a group
- migrate borrowck dataflow impls to new framework
- infer regions for opaque types in borrowck
- use a
ParamEnvAnd<Predicate>
for caching inObligationForest
- add missing
_zeroed
varants toAllocRef
- make ASCII ctype functions unstably const
- speed up
SipHasher128
- miri: fix exact_div
- miri: add shim for rename
- BTree: lighten the load on Miri
- improve
ty.needs_drop
- preparation for allocator aware
Box
- hide niches under
UnsafeCell
- relax bounds on
HashMap
/HashSet
- improve
char::is_ascii_*
codegen - implement
LowerExp
andUpperExp
for integers - add
From<Vec<NonZeroU8>>
forCString
- fix
std::fs::copy
on WASI target - futures: implement fast-path for already-completed shared futures
- rustdoc: struct variant field search
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Final Comment Period
Every week the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
RFCs
No RFCs are currently in final comment period.
Tracking Issues & PRs
- [disposition: merge] Make
u8::is_ascii
a stableconst fn
. - [disposition: merge] Stabilize assoc_int_consts associated int/float constants.
- [disposition: merge] Add primitive module to libcore.
- [disposition: merge] Tracking issue for
#![feature(maybe_uninit_ref)]
.
New RFCs
Upcoming Events
Asia Pacific
- Feb 24. Sydney, AU - Rust Sydney - Meetup 19.
- Mar 5. Melbourne, AU - Rust Melbourne - Hack Night, Talks, and Networking.
Europe
- Feb 21. Stuttgart, DE - Rust Community Stuttgart - Rust Hack and Learn.
- Feb 25. London, GB - Rust LDN Talks @ TrueLayer.
- Feb 25. Göteborg, SE - Rust Gbg — "Beginner Friendly" February 2020.
- Feb 27. Wroclaw, PL - Rust Wrocław Meetup #17.
- Mar 4. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
North America
- Feb 24. Durham, NC, US - Triangle Rustaceans - Project Night & Lightning Talks.
- Feb 25. Dallas, TX, US - Dallas Rust - Last Tuesday.
- Feb 26. Portland, OR, US - PDXRust - Hack Night.
- Feb 26. Houston, TX, US - Houston Linux Users Group - Rust Study Group.
- Feb 26. Ann Arbor, MI, US - Ann Arbor Rust Meetup - Monthly Gathering.
- Feb 26. Mesa, AZ, US - Desert Rust - Rust: lightning talks.
- Mar 11. Atlanta, GA, US - Rust Atlanta - Grab a beer with fellow Rustaceans.
- Mar 4. Indianapolis, IN, US - Indy.rs.
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Rust Jobs
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Option
is null in different clothes, but the clothes that nulls wear are important.
Thanks to Cerberuser for the suggestions!
Please submit quotes and vote for next week!