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
- ๐๐ Announcing Rust 1.29.1. ๐๐
- Citybound: Introducing live builds.
- The biggest wasm-pack release yet.
- Office hours with Niko Matsakis: Debugging with GDB.
- Office hours with Niko Matsakis: Cyclic services.
- Rust on iOS: How to.
- A Rust FFI adventure in unsafety.
- How to integrate Rust with C#.
- Rewriting a bash script in Rust.
- Creating a robot for Eurobot in Rust: The context.
- Incinerator: The ABA problem and concurrent reclamation.
Crate of the Week
This week's crate is packed_simd, a crate with portable SIMD vector types. Thanks to Gabriel Majeri for the suggestion!
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.
- Rust 2018 RC1 is available - please help test.
- Rust office hours with Niko Matsakis.
- rust: Panic in
Receiver::recv()
.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
154 pull requests were merged in the last week
- switch linker for
aarch64-pc-windows-msvc
from LLD to MSVC - remove (more) CAS API from Atomic* types where not natively supported
- parser: tweak function parameter parsing to avoid rollback on succesfull path
- improve handling of type bounds in
bit_set.rs
- use
HybridBitSet
inSparseBitMatrix
- merge
bitvec.rs
andindexed_set.rs
- split
Liveness::users
into three - compress
Liveness
data some more - NLL: deduplicate errors for incorrect move in loop
- NLL: rework checking for borrows conflicting with drops
- report when borrow could cause
&mut
aliasing during Drop - move
std::os::raw::c_void
into libcore and re-export in libstd and Re-exportcore::ffi::c_void
if it exists (RFC #2521) - make
rustc::middle::region::Scope
's fields public - miri: correctly compute expected alignment for field
- extend MIR inlining to all operand variants
- std: check for overflow in
str::repeat
- switch wasm math symbols to their original names
- update to a new pinning API
- implement
[T]::copy_within
- implement
MaybeUninit
Duration
div mul extras- cargo: fix missing messages when --message-format=json is deeply nested
- cargo: fix incomplete conflict set backjump
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- RFC 2438: Deny the
overflowing_literals
lint for the 2018 edition. - RFC 2383: Lint Reasons.
- RFC 2437: Rustfmt stability.
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
- [disposition: merge] The optimize attribute.
- [disposition: merge] Or patterns, i.e
Foo(Bar(x) | Baz(x))
. - [disposition: merge]
#[cfg_attr]
expanding to multiple attributes.
Tracking Issues & PRs
- [disposition: merge] Impl
From<NonZero<T>>
forT
. - [disposition: merge] Tracking issue for eRFC 2497, "if- and while-let-chains, take 2", edition changes.
- [disposition: merge] Tracking issue for RFC 2296,
Option::replace
. - [disposition: close] Tracking issue for channel selection.
New RFCs
Upcoming Events
Online
- Oct 3. Rust Community Team Meeting in Discord.
- Oct 9. Rust Community Content Subteam Meeting in Discord.
- Oct 10. Rust Events Team Meeting in Telegram.
Africa
Asia
- Sep 30. Bangalore, IN - Diesel - A safe, extensible ORM and Query Builder.
- Oct 3. Kuala Lumpur, MY - Rust Lang Meetup - Project X.
Europe
- Oct 1. Barcelona, ES - BcnRust Meetup.
- Oct 3. Vilnius, LT - Vilnius Rust Meetup #3 - Network Simulation and WebAssembly.
- Oct 3. Berlin, DE - Berlin Rust Hack and Learn.
North America
- Sep 30. Mountain View, US - Rust Dev in Mountain View!.
- Oct 3. Indianapolis, US - Indy.rs.
- Oct 3. Atlanta, US - Grab a beer with fellow Rustaceans.
- Oct 3. Vancouver, CA - Vancouver Rust meetup.
- Oct 7. Mountain View, US - Rust Dev in Mountain View!.
- Oct 8. Seattle, US - Seattle Rust Meetup.
- Oc 11. Columbus, US - Columbus Rust Society - Monthly Meeting.
- Oct 19 & 20. Ann Arbor, US - Rust Belt Rust 2018.
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
- Rust Software Engineer at VMRay, Bochum, DE.
- Rust Developer at Parity, Berlin, DE.
- RustBelt is looking for postdocs and PhD students.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Rust beginners worrying about lifetimes is like kids worrying about quicksand. Both turn out to be a non-issue in life.
โ frequentlywrong on r/rust.
Thanks to pyfisch for the suggestion!
Please submit your quotes for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.