pub ThisWeekInRust {} – Telegram
pub ThisWeekInRust {}
991 subscribers
2 photos
2.41K links
Handpicked Rust updates,
delivered to your telegram.

Contacts: @sergeysova
Reposted from: https://this-week-in-rust.org
Source code: https://github.com/sergeysova/this_week_in_rust.rs
Another: @this_week_in_react
Download Telegram
News

nom parser combinators 5.0 release: replace macros with functions, better errors.
unhandledexpression.com

The typestate pattern in Rust.
cliffle.com

Implementing ptrace for Redox OS - part 0.
www.redox-os.org

Let's build a JavaScript engine (in Rust).
2019.jsconf.eu

Real Time for the Masses (RTFM) goes multi-core.
blog.japaric.io

Rust streams.
blog.yoshuawuyts.com

Rust on the ESP32/ESP8266 and how to get started.
dentrassi.de

Rust for closed-source projects.
ntcore.com

swym: Are we lock-free yet?
mtak-blog.github.io
Crate of the week: winit

This week's crate is winit, a pure-rust cross-platform window initialization library. Thanks to Osspial for the suggestion!
Updates from core

Clean up query cache code
rust-lang/rust/pull/59722

Don't ICE on mutable zst slices
rust-lang/rust/pull/62094

syntax: Remove ast::Guard
rust-lang/rust/pull/62075

Always parse async unsafe fn + properly ban in 2015
rust-lang/rust/pull/62241

Call out explicitly that general read needs to be called with an initialized buffer
rust-lang/rust/pull/62102

Fix error counting
rust-lang/rust/pull/62055

Use ecx for const-prop local storage
rust-lang/rust/pull/62012

Fix HIR visit order
rust-lang/rust/pull/61572

Extend the #[must_use] lint to boxed types
rust-lang/rust/pull/62228

Extend the #[must_use] lint to arrays
rust-lang/rust/pull/62235

Clean up MIR drop generation
rust-lang/rust/pull/61872

Use a more efficient iteration order for backward dataflow
rust-lang/rust/pull/62063

Use a more efficient iteration order for forward dataflow
rust-lang/rust/pull/62062

save-analysis: Use buffered writes
rust-lang/rust/pull/62164

Remove FnBox
rust-lang/rust/pull/62043

rustdoc: Remove unused derives and variants
rust-lang/rust/pull/62224

rustdoc: Prevent panic when sysroot cannot be computed
rust-lang/rust/pull/61459

backtrace: More improvements to gimli support
rust-lang/backtrace-rs/pull/217

rustup: Switch to std::fs::read_to_string
rust-lang/rustup.rs/pull/1906
News

Writing an OS in Rust: Heap allocation.
os.phil-opp.com

Non-lexical lifetimes arrives for everyone.
blog.pnkfx.org

Status of rust-analyzer: Achievements and Open Collective.
ferrous-systems.com

TLS performance: rustls versus OpenSSL.
jbp.io

Optimizing jieba-rs to be 33% faster than cppjieba.
blog.paulme.ng

Brave improves its ad-blocker performance by 69x with new engine implementation in Rust.
brave.com

Writing a small ray tracer in Rust and Zig.
nelari.us

Compiling Rust apps for Termux with nix-shell.
blog.geemili.xyz

Building crates so they look like C(ABI) libraries.
dev.to
Crate of the week: aljabar

This week's crate is aljabar, an extremely generic linear algebra libary. Thanks to Vikrant for the suggestion!
Updates from core

Stabilize support for Profile-guided Optimization (Hooray!)
rust-lang/rust/pull/61268

Break out of the correct number of scopes in loops
rust-lang/rust/pull/62388

Improve error span for async type inference error
rust-lang/rust/pull/62383

Remove hir::ExprKind::While
rust-lang/rust/pull/61988

Generalize impl trait to permit multiple lifetime bounds
rust-lang/rust/pull/61775

Support stability and deprecation checking for all macros
rust-lang/rust/pull/62042

Implement Option::contains and Result::contains
rust-lang/rust/pull/62356

implement Iterator::last via DoubleEndedIterator::next_back for some libcore types
rust-lang/rust/pull/62316

Add Vec::leak
rust-lang/rust/pull/62196

Implement mem::{zeroed, uninitialized} in terms of MaybeUninit
rust-lang/rust/pull/62150

nth_back for chunks_exact
rust-lang/rust/pull/62064

Only call the closure parameter of Iterator::is_sorted_by_key once per item
rust-lang/rust/pull/62473
News

🎈🎉 Announcing Rust 1.36.0. 🎉🎈
blog.rust-lang.org

Async-await status report #2.
smallcultfollowing.com

Writing an OS in Rust: Updates in June 2019.
os.phil-opp.com

Method for emulating higher-kinded types in Rust.
https://gist.github.com/edmundsmith/855fcf0cb35dd467c29a9350481f0ecf

Speedy desktop apps with GTK and Rust.
nora.codes

Build a decentralized chat using JavaScript & Rust (WebAssembly).
medium.com/perlin-network

Safer, simpler embedded Rust with Apache Mynewt.
medium.com/@ly.lee
Crate of the week: Rustexp

This week's CotW is not a crate but Rustexp site, a Rust regular expression editor & tester.
Thanks to carols10cents for the suggestion!
Updates from core

Use const generics for array impls [part 1]
rust-lang/rust/pull/62435

Update to LLVM 9 (ongoing work)
rust-lang/llvm-project/pull/19

Update LLVM: apply patch necessary for ThinLTO on RISC-V
rust-lang/rust/pull/62463

Use visitor for #[structural_match] check
rust-lang/rust/pull/62339

Normalize projections appearing in impl Trait
rust-lang/rust/pull/62221

typeck: Merge opaque type inference logic
rust-lang/rust/pull/62090

Fact generation for liveness calculations in Polonius
rust-lang/rust/pull/60266

Add key and value methods to DebugMap
rust-lang/rust/pull/60458

Add an AtomicCell abstraction
rust-lang/rust/pull/62577

Add messages to Option's and Result's must_use annotation for is_*
rust-lang/rust/pull/62431

Prevent Vec::drain_filter from double dropping on panic
rust-lang/rust/pull/61224

Add impl<T> FromIterator<T> for Arc/Rc<[T]>
rust-lang/rust/pull/61953

Add Iterator::partition_in_place() and is_partitioned()
rust-lang/rust/pull/62278

Use fold in Iterator::last default implementation
rust-lang/rust/pull/62481

rustc guide: Add humor appendix
rust-lang/rustc-guide/pull/350
News

Microsoft Security Response Center endorses the use of Rust for safe systems programming.
msrc-blog.microsoft.com

How to speed up the Rust compiler in 2019.
blog.mozilla.org

"What the hardware does" is not what your program does: Uninitialized memory.
www.reddit.com

What is Rust's unsafe?
nora.codes

AiC: Unbounded queues and lang design.
smallcultfollowing.com

Creating a simple LISP in Rust.
willspeak.me

Announcing Rustacean Station and Rust 1.36.
rustacean-station.org

Rust as the new C. Part 1: building and combining native libs into C API.
hotforknowledge.com

New tools for 2D game development.
amethyst.rs

Fullstack Rust with Yew.
www.steadylearner.com

gfx-rs Javelin project kick-off.
gfx-rs.github.io

Visual programming in embedded Rust with Apache Mynewt and Google Blockly.
medium.com/@ly.lee

Stream combinators implemented using for await syntax.
www.reddit.com

Ferrous Systems: Rust Summer Classes in Berlin.
ferrous-systems.com

Tickets are now available RustFest Barcelona - 9-12 November 2019.
blog.rustfest.eu
Crate of the week: overloadable

This week's crate is overloadable, a crate to provides you with the capabilities to overload your functions in a similar style to C# or C++, including support for meta attributes, type parameters and constraints, and visibility modifiers
Thanks to Stevensonmt for the suggestion!
Updates from core

The essence of lexer
rust-lang/rust/pull/59706

Implement RFC #2203
rust-lang/rust/pull/61749

Add meta-variable checks in macro definitions
rust-lang/rust/pull/62008

Stabilize <*mut _>::cast and <*const _>::cast
rust-lang/rust/pull/62713

Specific error for positional args after named args in format!()
rust-lang/rust/pull/62710

rustc_typeck: Improve diagnostics for -> _ fn return type
rust-lang/rust/pull/62694

Add info about undefined behavior to as_ref suggestions
rust-lang/rust/pull/62685

resolve: Improve candidate search for unresolved macro suggestions
rust-lang/rust/pull/62684

miri validation: Better error messages for dangling references
rust-lang/rust/pull/62673

Cancel unemitted diagnostics during error recovery
rust-lang/rust/pull/62666

Make VaListImpl<'f> invariant over 'f
rust-lang/rust/pull/62639

Add Option::expect_none(msg) and unwrap_none()
rust-lang/rust/pull/62596

stdarch: Add ARM Neon vmvn_/vmvnq_ bitwise not intrinsics
rust-lang/stdarch/pull/770

cargo: Add support for multiple --features options
rust-lang/cargo/pull/7084

cargo: Optimize runtime of #[cargo_test_macro]
rust-lang/cargo/pull/7146
News

U.S. House Committee on Financial Services hearing: Why was the Rust language chosen?
www.c-span.org

Microsoft Security Response Center: Why Rust for safe systems programming.
msrc-blog.microsoft.com

Compiler speed has improved 30-40% across the board year-to-date, with some projects seeing 45%+ improvements.
www.reddit.com

Perils of constructors.
matklad.github.io

Notes on a smaller Rust.
boats.gitlab.io

Announcing heim project.
svartalf.info

Gotham — from start to Heroku.
blog.codeship.com

How to write Full Stack Rust code.
www.steadylearner.com

HOWTO: Replace mem::uninitialized with mem::MaybeUninit.
www.reddit.com

Stream combinators implemented using for await syntax.
www.reddit.com

CLion Rust plugin adds a new experimental macro expansion engine.
www.jetbrains.com
Crate of the week: abscissa

This week's crate is abscissa, a security-oriented Rust application framework.
Thanks to Tony Arcieri for the suggestion!
Updates from core

Add support for UWP targets
rust-lang/rust/pull/60260

Add riscv32i-unknown-none-elf target
rust-lang/rust/pull/62784

Update wasm32 support for LLVM 9
rust-lang/rust/pull/62809

Move unescape module to rustc_lexer
rust-lang/rust/pull/62851

Make the parser TokenStream more resilient after mismatched delimiter recovery
rust-lang/rust/pull/62887

Improve diagnostics for _ const/static declarations
rust-lang/rust/pull/62804

Avoid ICE when referencing desugared local binding in borrow error
rust-lang/rust/pull/63051

Suggest trait bound on type parameter when it is unconstrained
rust-lang/rust/pull/62772

Allow lifetime elision in Pin<&(mut) Self>
rust-lang/rust/pull/61207

Stop bare trait lint applying to macro call sites
rust-lang/rust/pull/63014

Add note suggesting to borrow a String argument to find
rust-lang/rust/pull/62981

Add method disambiguation help for trait implementation
rust-lang/rust/pull/62921

miri: Enable Intrptrcast by default
rust-lang/miri/pull/851

Don't access a static just for its size and alignment
rust-lang/rust/pull/62982

Use const array repeat expressions for uninit_array
rust-lang/rust/pull/62799

Stabilize the type_name intrinsic in core::any
rust-lang/rust/pull/60066

Constantly improve the Vec(Deque) array PartialEq impls
rust-lang/rust/pull/63061

hashbrown: Do not grow the container if an insertion is on a tombstone
rust-lang/hashbrown/pull/106

rust-bindgen: Cleanup wchar_t layout computation to happen later
rust-lang/rust-bindgen/pull/1596

rustdoc: Make #[doc(include)] relative to the containing file
rust-lang/rust/pull/60938

docs.rs: Fix weird layout workflow issues on firefox
rust-lang/docs.rs/pull/358

Force clippy to run every time (finally!)
rust-lang/cargo/pull/7157
News

The Rust compiler is still getting faster.
blog.mozilla.org

Unsafe as a human-assisted type system.
matklad.github.io

Why does the Rust compiler not optimize code assuming that two mutable references cannot alias?
stackoverflow.com

Python vs Rust for neural networks.
ngoldbaum.github.io

Dependency management and trust scaling.
lucumr.pocoo.org