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
- Writing an OS in Rust: Hardware interrupts.
- Towards fearless SIMD.
- Shifgrethor I: Garbage collection as a Rust library.
- Update on the October 15, 2018 incident on crates.io.
- docs.rs is now part of the rust-lang-nursery organization.
- Is Rust functional?
- Multithreading Rust and WebAssembly.
- Rust has higher kinded types already... sort of.
- Auth web microservice with Rust using actix-web.
Crate of the Week
This week's crate is static-assertions, a crate that does what it says on the tin – allow you to write static assertions. Thanks to llogiq 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
115 pull requests were merged in the last week
- mir-inlining: don't inline virtual calls
- reject partial init and reinit of uninitialized data
- improve verify_llvm_ir config option
- add missing lifetime fragment specifier to error message
- rustc: fix (again) simd vectors by-val in ABI
- resolve: scale back hard-coded extern prelude additions on 2015 edition
- resolve: do not skip extern prelude during speculative resolution
- allow explicit matches on ! without warning
- deduplicate some code and compile-time values around vtables
- NLL: propagate bounds from generators
- NLL lacks various special case handling of closures
- NLL: fix migrate mode issue by not buffering lints
- NLL: change compare-mode=nll to use borrowck=migrate
- NLL: use new region infer errors when explaining borrows
- NLL type annotations in multisegment path
- add filtering option to
- custom E0277 diagnostic for
- check the type of statics and constants for
- miri: layout should not affect CTFE checks
- added graphviz visualization for obligation forests
- replace CanonicalVar with DebruijnIndex
- stabilize slice::chunks_exact(), chunks_exact_mut(), rchunks(), rchunks_mut(), rchunks_exact(), rchunks_exact_mut()
- add a
copysignfunction to f32 and f64
- don't warn about parentheses on
- handle underscore bounds in unexpected places
- fix ICE and report a human readable error
- add slice::rchunks(), rchunks_mut(), rchunks_exact() and rchunks_exact_mut()
- unify multiple errors on single typo in match pattern
- fix LLVMRustInlineAsmVerify return type mismatch
- miri engine: hooks for basic stacked borrows
- add support for 'cargo check --all-features'
- cargo: add PackageError wrappers for activation errors
- rustdoc: use dyn keyword when rendering dynamic traits
- rustdoc: don't prefer dynamic linking in doc tests
- rustdoc: add lint for doc without codeblocks
- detect if access to localStorage is forbidden by the user's browser
- librustdoc: disable spellcheck for search field
- crates.io: add a missing index on crates
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.
- [disposition: merge] Re-Rebalancing Coherence.
- [disposition: merge] Allow non-ASCII identifiers.
- [disposition: merge] Meta-RFC: Future possibilities.
Tracking Issues & PRs
- [disposition: merge] Report const eval error inside the query.
- [disposition: merge] Unchecked thread spawning.
- [disposition: merge] Implement FromStr for PathBuf.
- [disposition: close] Regression from stable: pointer to usize conversion no longer compiles.
- Oct 31. Rust Community Team Meeting in Discord.
- Nov 5. Rust Community Content Subteam Meeting in Discord.
- Nov 7. Rust Events Team Meeting in Telegram.
- Oct 27. Nairobi, KE - HACK & LEARN: Hacktoberfest Edition.
- Nov 6. Johannesburg, SA - Monthly Meetup of the Johannesburg Rustaceans.
- Oct 27. St. Petersburg, RU - Неформальная встреча Rust-разработчиков.
- Oct 30. Paris, FR - Rust Paris meetup #43.
- Oct 31. Prague, CZ - Prague Containers Meetup - The way of Rust.
- Oct 31. Berlin, DE - Berlin Rust Hack and Learn.
- Oct 31. Milan, IT - Rust Language Milano - Rust Exercises.
- Nov 7. Stuttgart, DE - Rust in der Industrie & Automatisierung.
- Nov 7. Cologne, DE - Rust Cologne.
- Oct 28. Mountain View, US - Rust Dev in Mountain View!.
- Oct 30. Dallas, US - Dallas Rust - Last Tuesday.
- Oct 31. Vancouver, CA - Vancouver Rust meetup.
- Nov 4. Mountain View, US - Rust Dev in Mountain View!.
- Nov 7. Atlanta, US - Grab a beer with fellow Rustaceans.
- Nov 7. Indianapolis, US - Indy.rs.
- Nov 8. Utah, US - Utah Rust monthly meetup.
- Nov 8. Arlington, US - Rust DC - Mid-month Rustful.
- Nov 8. Columbus, US - Columbus Rust Society - Monthly Meeting.
- Nov 8. Boston, US - Rust/Scala meetup at SPLASH conf.
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.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Panic is “pulling over to the side of the road” whereas crash is “running into a telephone pole”.
– /u/zzzzYUPYUPphlumph on /r/rust
Thanks to KillTheMule for the suggestion!
Please submit your quotes for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.