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
- Launching the 2018 State of Rust Survey.
- Discord's new game store makes extensive use of Rust.
- How to alleviate the pain of Rust compile times.
- Never patterns, exhaustive matching, and uninhabited types.
- Benchmarking gfx-portability versus MoltenVK and OpenGL with Dota2 on Mac.
- Tower Web — A new web framework for Rust.
- The state of GPGPU in Rust.
- The Xi text engine CRDT.
- The WG-Net vision for Rust 2018.
- The Embedded WG newsletter 9.
- DX11 backend for gfx-rs - GSoC 2018 report.
Crate of the Week
This week's crate is macro_railroad, a library to create neat syntax diagrams for macro_rules!
declarative macros. Thanks to kornel 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.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
102 pull requests were merged in the last week
- whitelist wasm32 simd128 target feature
- fix a few regressions from enabling macro modularization
- resolve: support custom attributes when macro modularization is enabled
- Place unions, pointer casts and pointer derefs behind extra feature gates
- suggest float for integer literals where a float was expected
- suggest missing comma in macro call
- add help message for missing
IndexMut
impl - add errors for unknown, stable and duplicate feature attributes
- suggest comma when writing
println!("{}" a);
- emit error for pattern arguments in trait methods
- fix improper_ctypes lint for individual foreign items
- NLL: use span of the closure args in free region errors
- apply some fixes to cross-language LTO (especially when targeting MSVC)
- Un-name globals with private linkage
- avoid many allocations for
CString
s during codegen - change
assert!
todebug_assert!
invisit_with
- don't
collect()
whensize_hint
is useless - make IpvXAddr::new const fns and the well known addresses associated constants
- change rustdoc style so fully qualified name does not overlap src link
- crates.io: add crate size on the crate detail page
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved 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
- [disposition: merge] Fix the Error trait.
- [disposition: merge] Add
is_sorted
to the standard library. - [disposition: merge] Add
pub fn identity<T>(x: T) -> T { x }
to core::convert. - [disposition: merge] if- and while-let-chains, take 2.
- [disposition: merge] Deprecate uninitialized in favor of a new MaybeUninit type.
- [disposition: postpone] Introduce panic_thin, a fmtless alternative to panic_fmt.
- [disposition: close] Add std::mem::zero.
Tracking Issues & PRs
- [disposition: merge] (Modules) Tracking issue for the
mod.rs
changes. - [disposition: merge] Allow to check if sync::Once is already initialized.
- [disposition: merge] Allow all literals in attributes (Tracking Issue for RFC #1559).
- [disposition: merge] Tracking Issue for Iterator::find_map.
- [disposition: close] Define non-panicking UTF encoding methods on
char
.
New RFCs
- Unify std::os::raw::c_void and libc::c_void via libcore.
- Generalized Type Ascription.
- #[cfg(accessible(..) / version = ".." / nightly)].
Upcoming Events
Online
- Aug 22. Rust Community Team Meeting in Discord.
- Aug 28. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org.
- Aug 29. Rust Events Team Meeting in Telegram.
Asia
Europe
North America
- Aug 16. Portland, US - Meetup w/ Zcash, ParityTech, Solana | Why Use Rust For Blockchain Development.
- Aug 17. Portland, US - RustConf 2018.
- Aug 19. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Aug 22. Vancouver, CA - Rust Study/Hack/Hang-out night.
- Aug 26. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Aug 27. Durham, US - Triangle Rustaceans - Project Night & Lightning Talks.
- Aug 28. Chicago, US - Rust Meetup.
- Aug 28. Dallas, US - Rust Meetup.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email the Rust Community Team for access.
Rust Jobs
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Fearless concurrency includes fearless refactoring.
Thanks to Jules Kerssemakers for the suggestion!
Please submit your quotes for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.