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
Updates from core

Implement event filtering for self-profiler
rust-lang/rust/pull/59915

Continue evaluating after missing main
rust-lang/rust/pull/59903

Point at try ? on errors affecting the err match arm of the desugared code
rust-lang/rust/pull/60064

Make const parameters enforce no variance constraints
rust-lang/rust/pull/60058

save-analysis: Use serde instead of libserialize to dump JSON data
rust-lang/rust/pull/60053

Fix ICE on const evaluation of const method
rust-lang/rust/pull/60048

Specialize nth_back() for Bytes, Fuse and Enumerate
rust-lang/rust/pull/60023

Fix the max value of usize on 16-bit platforms
rust-lang/rust/pull/60013

Fix LinkedList invalidating mutable references
rust-lang/rust/pull/60072

Allow multiple args to dbg!(..)
rust-lang/rust/pull/59826

Add must_use annotations to Result::is_ok and is_err
rust-lang/rust/pull/59648

chalk: Remove coinductive_traits from ProgramEnvironment
rust-lang/chalk/pull/213

chalk: Simplify crate structure
rust-lang/chalk/pull/215

cargo: Treat HTTP/2 stream errors as spurious network errors
rust-lang/cargo/pull/6861

cargo: Validate registry token before operations that require it
rust-lang/cargo/pull/6854

cargo: Pass OsStr/OsString args through to the process spawned by cargo run
rust-lang/cargo/pull/6849

rustdoc: Remove default keyword from re-exported trait methods
rust-lang/rust/pull/59978
News

Rust's 2019 roadmap.
blog.rust-lang.org

Amethyst receives Mozilla grant for WASM development.
www.amethyst.rs

6 useful Rust macros that you might not have seen before.
medium.com/@benmcdonald_11671

Learning parser combinators with Rust.
bodil.lol

What not to do in Rust.
blog.sentry.io

Generic returns in Rust.
blog.jcoglan.com

Futures 0.1 compatibility layer.
rust-lang-nursery.github.io

What I learned from my failed attempt of writing baremetal android in Rust.
onatm.dev

Building a plugin system using Rust and Wasmer (part 2, part 3).
wiredforge.com

Using DMA to transfer data with embedded Rust.
flowdsp.io

AiC: Adventures in consensus.
smallcultfollowing.com

rustup 1.18.0 released.
rust-lang/rustup.rs/blob/master/CHANGELOG.md#1180---2019-04-22

RustFest 2019 - next stop: Barcelona.
blog.rustfest.eu

Videos from Rust Latam 2019.
www.youtube.com
Crate of the week: color-backtrace

This week's crate is color-backtrace, a crate to give panic backtraces more information (and some color, too). Thanks to Willi Kappler for the suggestion!
Updates from core

Stabilize futures_api.
rust-lang/rust/pull/59739

Replace HashMap implementation with SwissTable (as an external crate)
rust-lang/rust/pull/58623

Introduce hir::ExprKind::Use and employ in for loop desugaring
rust-lang/rust/pull/60225

Future-proof MIR for dedicated debuginfo
rust-lang/rust/pull/56278

Add f16c target_feature
rust-lang/rust/pull/60191

Fix sync_all on macos/ios
rust-lang/rust/pull/60121

Implement saturating_abs() and saturating_neg() functions for signed integer types
rust-lang/rust/pull/60192

Stabilize Iterator::copied
rust-lang/rust/pull/60333

Stabilize pointer::align_offset
rust-lang/rust/pull/60303

Const-stabilize std::mem::needs_drop
rust-lang/rust/pull/60364

cargo: Support relative paths for registries
rust-lang/cargo/pull/6873

Set cfg(test) when rustdoc is running with --test option
rust-lang/rust/pull/59940
News

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

Await syntax discussion summary.
internals.rust-lang.org

A (type-based) Rust cheatsheet.
upsuper.github.io

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

How Rust solved dependency hell.
stephencoakley.com

Creating crossplatform Rust terminal apps.
www.jonathanturner.org

10 key learnings in Rust after 30,000 lines of code.
medium.com/@jondot

UWP port is in progress.
www.reddit.com

Mozilla IRC sunset and the Rust channel.
blog.rust-lang.org

Giving up on wlroots-rs.
way-cooler.org

Making Sandspiel (a falling sand game in Rust and Wasm).
maxbittker.com

Implementing tile encoding in rav1e.
blog.rom1v.com
Crate of the week: cast-rs

This week's crate is cast-rs, a crate with ergonomic, checked cast functions for primitive types. Thanks to mark-i-m for the suggestion!
Updates from core

Stop -O/-C opt-level and -g/-C debuginfo conflicting
rust-lang/rust/pull/60426

The Genesis of Generic Germination
rust-lang/rust/pull/53645

Avoid repeated interning of static strings
rust-lang/rust/pull/60467

Suggest try_into when possible
rust-lang/rust/pull/60159

Suggest using an inclusive range instead of an exclusive range when the endpoint overflows by 1
rust-lang/rust/pull/60330

Search for incompatible universes in borrow errors
rust-lang/rust/pull/60327

Constrain all regions in the concrete type for an opaque type
rust-lang/rust/pull/60449

Const propagation refactoring
rust-lang/rust/pull/60457

Implement BorrowMut<str> for String
rust-lang/rust/pull/60404

Stabilize vectored IO
rust-lang/rust/pull/60334

Stabilize str::as_mut_ptr
rust-lang/rust/pull/60356

Add Option::flatten and Into<Option<_>> for Option<Option<_>>
rust-lang/rust/pull/60256

cargo: Add some help with updating the registry in offline mode
rust-lang/cargo/pull/6871
News

A final proposal for await syntax.
boats.gitlab.io

Cargo in 2019.
www.ncameron.org

Const generics: a summary of progress so far.
rust-lang/rust/issues/44580#issuecomment-488819344

Rust parallelism for non-C/C++ developers.
medium.com/nearprotocol

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

A guide to Rust graphics libraries as of 2019.
wiki.alopex.li

World's first private Cargo registry.
blog.cloudsmith.io

Compile-time coprocessor codegen, with Rust macros.
guiand.xyz

Using Wasmer for plugins part 4
wiredforge.com
Crate of the week: select-rustc

This week's crate is select-rustc, a crate for conditional compilation according to rustc version. Thanks to ehsanmok for the suggestion!
Updates from core

Implement built-in .await syntax (Hooray!)
rust-lang/rust/pull/60586

Remove the old await! macro
rust-lang/rust/pull/60675

Cleanup the .await HIR lowering with .stmt(..)
rust-lang/rust/pull/60733

Revert "Disable big-endian simd in swap_nonoverlapping_bytes"
rust-lang/rust/pull/60588

syntax: introduce unescape module
rust-lang/rust/pull/60261

syntax_pos: Optimize symbol interner pre-filling slightly
rust-lang/rust/pull/60700

Keep original literal tokens in AST
rust-lang/rust/pull/60679

Tweak Symbol and InternedString
rust-lang/rust/pull/60659

Use Symbol more
rust-lang/rust/pull/60630

Better IO buffer when validating dist hashes
rust-lang/rustup.rs/pull/1845

Remove hir::ExprKind::If
rust-lang/rust/pull/59288

Optimize HIR map
rust-lang/rust/pull/60246

Fix HIR printing of existential type
rust-lang/rust/pull/60694

Const-stabilize NonNull::dangling and NonNull::cast
rust-lang/rust/pull/60244

std: Derive Default for io::Cursor
rust-lang/rust/pull/60234

cargo: Stabilize offline mode
rust-lang/cargo/pull/6934

cargo: Always include Cargo.toml when packaging
rust-lang/cargo/pull/6925

Implement the Cargo half of pipelined compilation
rust-lang/cargo/pull/6883

rustup: More progress bars
rust-lang/rustup.rs/pull/1842
News

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

Security advisory for the standard library.
blog.rust-lang.org

Update on the CI investigation.
internals.rust-lang.org

2D graphics on modern GPU.
raphlinus.github.io

Rust patterns: enums instead of booleans.
blakesmith.me

Asymmetric multi-processing on microcontrollers with μAMP.
blog.japaric.io

State of machine learning in Rust.
ehsanmkermani.com
Crate of the week: panic-never

This week's crate is panic-never, a crate to make every panic a link-time error. Thanks to ehsanmok for the suggestion!
Updates from core

Move token tree related lexer state to a separate struct
rust-lang/rust/pull/60763

Stop using gensyms in HIR lowering
rust-lang/rust/pull/60960

Fix more escaping ReScopes
rust-lang/rust/pull/60765

Perform constant propagation into terminators
rust-lang/rust/pull/60745

Do some simple constant propagation in the ConstProp pass
rust-lang/rust/pull/60597

Test interaction of unions with non-zero/niche-filling optimization
rust-lang/rust/pull/60590

Forego caching for all participants in cycles, apart from root node
rust-lang/rust/pull/60444

Mark core::alloc::Layout::from_size_align_unchecked const
rust-lang/rust/pull/60370

Remove the unstable and deprecated mpsc_select
rust-lang/rust/pull/60921

Stabilize core parts of MaybeUninit
rust-lang/rust/pull/60445

Stabilize vecdeque_rotate
rust-lang/rust/pull/60678

Add entry-like methods to HashSet
rust-lang/rust/pull/60894

Add implementations of last in terms of next_back on a bunch of DoubleEndedIterators
rust-lang/rust/pull/60130

Fix display of const generics in rustdoc
rust-lang/rust/pull/60760

rustup: Avoid blocking on CloseHandle
rust-lang/rustup.rs/pull/1850

rustc-guide: Add documentation about profile-guided optimization
rust-lang/rustc-guide/pull/318

lint: convert incoherent_fundamental_impls into hard error
rust-lang/rust/pull/49799

clippy: Prevent symbocalypse
rust-lang/rust-clippy/pull/4110

crates.io: Fix performance regression on crate search
rust-lang/crates.io/pull/1746
News

4 years of Rust.
blog.rust-lang.org

The 2019 Rust event lineup.
blog.rust-lang.org

Understanding zero cost abstractions.
boats.gitlab.io

Using Rust to scale Elixir for 11 million concurrent users.
blog.discordapp.com

Rust in Avast.
vorner.github.io

Evaluating pipelined rustc compilation.
internals.rust-lang.org

Analysis of various tricky Rust code.
dtolnay/case-studies

Get back some compile time from monomorphization.
llogiq.github.io

mem::uninitialized is deprecated.
gankro.github.io

Shell completions in pure Rust.
www.joshmcguigan.com

Creating C/C++ APIs in Rust.
karroffel.gitlab.io

How to start Rust chat app.
medium.com/@steadylearner

WebRender MVP ships in Firefox.
mozillagfx.wordpress.com

Rust in Motion - a video series by Carol Nichols and Jake Goulding (requires purchase).
www.manning.com

Rust in Action - a book by Tim McNamara (early access, requires purchase).
www.manning.com