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.
Updates from Rust Community
News & Blog Posts
- 🎈🎉 Announcing Rust 1.26.1. 🎉🎈
- Exploring Rust fat pointers.
- Typed key pattern. A pattern for extracting values from a weakly typed map.
- aturon.log: listening and trust, part 1. Thoughts on controversies from past week.
- Clippy is removing the
#![plugin(clippy)]API in favour of
- Fuzz testing in Rust with Cargo-fuzz.
- Wicked fast web servers in Rust - An introduction to writing a simple web server using Thruster.
- Bobbin SDK: Richer hardware abstractions for embedded systems programming.
- [video] RustFest Paris 2018 recordings.
- [podcast] Rusty Spike Podcast - episode 30. Compile times, Aaron’s new quest, books, logic programming, JetBrains, and RustConf.
- Nebulet - Booting up. Nebulet is a microkernel that executes WebAssembly. See also: Why Nebulet?
- Cargo-ebuild - GSoC week 1 report.
Crate of the 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.
- Have you ever complained that rustc is slow? We want to know more!
- rand: Add wasm_bindgen support.
- Get started with these beginner-friendly issues.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
141 pull requests were merged in the last week
- stable point release (1.26.1)
- infer outlives requirements (RFC #2093)
- don't ICE if crate has no valid crate types left
NaN > NaNis now false again (Breaking change, duh!)
- add suggestion applicabilities to librustc and libsyntax
- add -Z no-parallel-llvm flag
- WebAssembly: fix fast-isel lowering illegal argument and return types
- remove unused lowering field and method
- quick refactoring around Substs & friends
- operate on
hir::Pat::each_binding, and consequences of that
Idents for fields in HIR
- remove extra calls to kill_loans_out_of_scope_at_location
- fix behaviour of divergence in while loop conditions
- fail typecheck if we encounter a bogus break
- generate "invalidates" facts when -Znll-facts is passed
- NLL facts invalidate followup
- enforce stability of const fn in promoteds
- stabilize suggestion applicability field in json output
- right-size the
- optimize seen Predicate filtering
&Slicea thin pointer
- find the largest niche when computing layouts
- "crate-ify" paths that begin with a renamed crate
- rustc: fix another double-lint issue with
- rustc: correctly pretty-print macro delimiters
- underline multiple suggested replacements in the same line
maintype arguments and where clause spans
- fix span for type-only arguments
CheckLoopVisitor: also visit closure arguments
- add lint for multiple associated types
impl Traitdiagnostic/test cleanups
- prohibit turbofish in
- fix naming conventions for new lints
- MIRI API refactor
- use different datastructure for MIRI relocations
- misc changes related to Miri allocations
- allow let bindings and destructuring in constants and const fn
Sizeto be any valid
- implement the chalk-engine traits
- fun testcase: What does an expression look like, that consists only of special characters?
- escape combining characters in
- add SIMD math intrinsics and gather/scatter
- std: ensure OOM is classified as
- remove the unstable Float trait
- add the 2018 edition of the book to doc.rust-lang.org
- Benjamin Lamowski
- Cory Sherman
- Jaro Fietz
- Joe ST
- Martin Carton
- Mateusz Mikuła
- Nick Babcock
- Takanori Ishibashi
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- RFC 2386:
- RFC 2294: Allow
if letguards in
- RFC 2421: Keyword unreservations (pure, sizeof, alignof, offsetof).
Final Comment Period
- [disposition: merge] Reserve
failas keywords in edition 2018.
- [disposition: merge] Unstable features accidentally usable on the Stable release chanel are still unstable.
- [disposition: postpone] Implied
- [disposition: postpone] DynSized without ?DynSized — Lint against use of
size_of_val, and more.
The community team is trying to improve outreach to meetup organisers. Please fill out their call for contact info if you are running or used to run a meetup.
- Jun 2. Nairobi, KE - Rust on the BBC micro:bit.
- Jun 2. Florianópolis, BR - 1º Encontro Rust Floripa.
- Jun 3. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Jun 4. Karlsruhe, DE - Rust Hack & Learn Karlsruhe - Meetup & Talks.
- Jun 5. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org.
- Jun 5. Johannesburg, ZA - Monthly Meetup of the Johannesburg Rustaceans.
- Jun 6. Rust Events Team Meeting.
- Jun 6. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Jun 6. Indianapolis, US - Indy.rs.
- Jun 6. Atlanta, US - Grab a beer with fellow Rustaceans.
- Jun 10. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Jun 11. Seattle, US - Monthly meetup.
- Jun 13. Berlin, DE - OpenTechSchool - Rust Hack and Learn.
- Jun 13. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Jun 13. Vancouver, CA - Rust Study/Hack/Hang-out night.
- Jun 14. Columbus, US - Columbus Rust Society - Monthly Meeting.
- Jun 14. San Diego, US - San Diego Rust June Meetup.
- Jun 14. Utah Valley, US - Utah Rust meetup.
- Aug 17. Portland, US - RustConf 2018. Registration is now open.
No jobs listed for this week.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
No quote was selected for QotW.