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

Turn turbo 🐟 🍨 into an error
rust-lang/rust/pull/61189

Remove ObsoleteInPlace
rust-lang/rust/pull/60803

Make place projections concrete
rust-lang/rust/pull/60441

Simplify use of keyword symbols
rust-lang/rust/pull/60740

Fix overflowing literal lint in loops
rust-lang/rust/pull/61098

Use Symbol even more
rust-lang/rust/pull/60815

Use Symbol more in lint APIs
rust-lang/rust/pull/60827

Move gensym operations from Symbol to Ident
rust-lang/rust/pull/60903

Avoid symbol interning in file_metadata
rust-lang/rust/pull/60973

Avoid more symbol interning
rust-lang/rust/pull/61035

Don't arena-allocate static symbols
rust-lang/rust/pull/61077

rustc: Improve type size assertions
rust-lang/rust/pull/60959

Allow null-pointer-optimized enums in FFI if their underlying representation is FFI safe
rust-lang/rust/pull/60300

Preserve local scopes in generator MIR
rust-lang/rust/pull/60840

Annotate each reverse_bits with #[must_use]
rust-lang/rust/pull/61134

Vec: Avoid creating slices to the elements
rust-lang/rust/pull/61114

Fix dangling reference in Vec::append
rust-lang/rust/pull/61082

crates.io: Further address performance regression in search
rust-lang/crates.io/pull/1749

rustbuild: Add clippy and fix commands to x.py
rust-lang/rust/pull/56595
News

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

Update on await syntax.
boats.gitlab.io

Writing a compiler in Rust.
thume.ca

Announcing Mockiato - A strict, yet friendly mocking library for Rust 2018.
blog.myelin.ch

Programming Servo: Zen and the art of removing blocks from your system.
medium.com/@polyglot_factotum

Cross compiling and statically linking against Rust libraries.
medium.com/csis-techblog

Rebuffing the attack of the clones - a newbie's guide to clone.
thenewwazoo.github.io

New Rustacean Meta 3 - A story and a dream (and the promise of Rust): the final episode of New Rustacean!
newrustacean.com

Erebor, a Rust consultancy startup by Alexander Regueiro.
erebor.io
Crate of the week: mockiato

This week's crate is mockiato, a strict yet friendly mocking library for Rust 2018. Thanks to Ruben Schmidmeister for the suggestion!
Updates from core

Introduce Rust symbol mangling scheme
rust-lang/rust/pull/57967

Remove GlobalArenas and use Arena instead
rust-lang/rust/pull/61389

Short circuit Send and Sync impls for TokenTree
rust-lang/rust/pull/60967

Explicitly suggest type_anoscription feature
rust-lang/rust/pull/61374

Recover gracefully from argument with missing type or param name
rust-lang/rust/pull/61331

When encountering move error on an Option, suggest using as_ref
rust-lang/rust/pull/61147

Reword malformed attribute input diagnostics
rust-lang/rust/pull/61140

Apply #[must_use] lint to components of tuples
rust-lang/rust/pull/61100

miri: Tag static/const allocations
rust-lang/miri/pull/748

Update LLVM to include fmin/fmax optimisations
rust-lang/rust/pull/61384

Stabilize reverse_bits feature
rust-lang/rust/pull/61364

Stabilize iter_nth_back feature
rust-lang/rust/pull/61363

Stabilize RefCell::try_borrow_unguarded
rust-lang/rust/pull/60850

Weak::into_raw
rust-lang/rust/pull/60766

Implement iter::Sum and iter::Product for Option
rust-lang/rust/pull/58975

Add Step::sub_usize
rust-lang/rust/pull/60542

BufReader: In Seek impl, remove extra discard_buffer call
rust-lang/rust/pull/61157

Do not print panic message on doctest failures
rust-lang/rust/pull/60549

cargo: Test the Resolver against the varisat Library
rust-lang/cargo/pull/6980
News

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

Unsafe Code Guidelines Reference now available online.
rust-lang.github.io

Actix-web 1.0 released.
actix/actix-web/blob/master/CHANGES.md

j4rs - calling Java code from Rust.
astonbitecode.github.io

The Governance WG is going public.
blog.rust-lang.org

Bzip2 in Rust - basic infrastructure and CRC32 computation.
people.gnome.org

Evoli - an official Amethyst showcase game.
amethyst.rs

Poking the macOS IO Kit with Rust.
svartalf.info
Crate of the week: emu

This week's crate is emu, a Rust-based language for programming GPUs. Thanks to Caleb Winston for the suggestion!
Updates from core

Stabilize Cell::from_mut and as_slice_of_cells.
rust-lang/rust/pull/61620

Stabilize #![feature(repr_align_enum)] in Rust 1.37.0.
rust-lang/rust/pull/61229

Implementation of RFC 2289 (associated_type_bounds).
rust-lang/rust/pull/57428

Import the cargo-vendor subcommand into Cargo.
rust-lang/cargo/pull/6869

Support ? Kleene macro operator in 2015.
rust-lang/rust/pull/60932

Add std::mem::take as suggested in #61129.
rust-lang/rust/pull/61130

Make tuple constructors real const fns.
rust-lang/rust/pull/61209

syntax: Remove Deref impl from Token.
rust-lang/rust/pull/61669

Make i*::signum a const fn.
rust-lang/rust/pull/61635

Remove useless allocations in macro_rules follow logic.
rust-lang/rust/pull/61646

Minimize use of #![feature(custom_attribute)].
rust-lang/rust/pull/61660

parser: Remove Deref impl from Parser.
rust-lang/rust/pull/61616

Change visit api.
rust-lang/rust/pull/61554

Don't allow using const fn arguments as "args_required_const".
rust-lang/rust/pull/61536

Support Rvalue::{Ref,Len} and Deref.
rust-lang/rust/pull/61532

Fix integer overflow in rotate_left.
rust-lang/rust/pull/61454

On TerminatorKind::DropAndReplace still handle unused_mut correctly.
rust-lang/rust/pull/61446

Use LLVM intrinsics for floating-point min/max.
rust-lang/rust/pull/61408

Add new diagnostic writer using annotate-snippet library.
rust-lang/rust/pull/61407

Add Bound::cloned().
rust-lang/rust/pull/61376

Refactor TypeVariableOrigin.
rust-lang/rust/pull/59331

Replace linear token counting macros with optimized implementation.
rust-lang/rust/pull/59600

Suggest using as_ref on *const T.
rust-lang/rust/pull/61444

Re-implement async fn drop order lowering.
rust-lang/rust/pull/61413

syntax: Keep token span as a part of Token.
rust-lang/rust/pull/61541
News

Sealed Rust - A plan to bring Rust to safety critical software domains.
ferrous-systems.com

Embedded WG: Embedded Rust in 2019.
rust-embedded.github.io

Nannou update - Vulkan, LASERs and more.
nannou.cc

Bzip2 to see revival under new maintainership, experimental porting to Rust.
www.phoronix.com

Auth web microservice with Rust using actix-web 1.0 - complete tutorial.
gill.net.in

How to use gtk-rs on Windows using the MSVC toolchain.
www.reddit.com

Hosting embedded Rust apps on Apache Mynewt with STM32 Blue Pill.
medium.com/@ly.lee

Speeding up builds and managing versions.
estada.ch
Crate of the week: uom

This week's crate is uom, Units of measurement is a crate that does automatic type-safe zero-cost dimensional analysis. Thanks to ehsanmok for the suggestion!
Updates from core

Stabilize copy_within.
rust-lang/rust/pull/61398

Stabilize underscore_const_names in 1.37.0.
rust-lang/rust/pull/61347

Stabilize Option::xor.
rust-lang/rust/pull/60376

rustc: replace TyCtxt<'a, 'gcx, 'tcx> with TyCtxt<'gcx, 'tcx>.
rust-lang/rust/pull/61722

Unify all uses of 'gcx and 'tcx.
rust-lang/rust/pull/61817

Deprecate ONCE_INIT in future 1.38 release.
rust-lang/rust/pull/61757

Implement RFC 2645 (transparent enums and unions).
rust-lang/rust/pull/60463

Allow attributes in formal function parameters.
rust-lang/rust/pull/60669

Implement Clone::clone_from for Option and Result.
rust-lang/rust/pull/61348

Implement nth_back for Range(Inclusive).
rust-lang/rust/pull/61671

Use Symbol, Span in libfmt_macros.
rust-lang/rust/pull/61568

typeck: Fix const generic in repeat param ICE.
rust-lang/rust/pull/61698

Hygienize macros in the standard library.
rust-lang/rust/pull/61629

Optimize matches.
rust-lang/rust/pull/60730

When suggesting borrow, remove useless clones.
rust-lang/rust/pull/61143

lexer: Disallow bare CR in raw byte strings.
rust-lang/rust/pull/60793

Generator optimization: Overlap locals that never have storage live at the same time.
rust-lang/rust/pull/60187

Implement unchecked_{add,sub,mul} intrinsics.
rust-lang/miri/pull/776

Limit dylib symbols.
rust-lang/rust/pull/59752
News

gfx-rs: 5 year anniversary.
gfx-rs.github.io

Green threads explained in 200 lines of Rust.
cfsamson.gitbook.io

Facebook's new cryptocurrency Libra uses Rust.
developers.libra.org

Vimeo introduces support for AV1 using rav1e, a Rust library.
press.vimeo.com

Amethyst v0.11.0 released, now supporting gfx-hal with Rendy.
amethyst.rs

Bzip2 in Rust: porting the randomization table.
people.gnome.org

Building secure systems using RISC-V and Rust.
content.riscv.org
Crate of the week: safe

This week's crate is safe, a #[safe] attribute for explaining why unsafe { ... } is OK. Thanks to Michael-F-Bryan for the suggestion!
Updates from core

Introduce Let(..) in AST, remove IfLet + WhileLet and parse let chains
rust-lang/rust/pull/60861

Support cfg and cfg_attr on generic parameters
rust-lang/rust/pull/61547

librustc_data_structures: Speedup union of sparse and dense hybrid set
rust-lang/rust/pull/61020

Refactor miri pointer checks
rust-lang/rust/pull/62081

Help LLVM better optimize slice::Iter(Mut)::len
rust-lang/rust/pull/61885

Remove the default type of Rem::Output
rust-lang/rust/pull/61874

Make use of ptr::null(_mut) instead of casting zero
rust-lang/rust/pull/61864

Make MaybeUninit #[repr(transparent)]
rust-lang/rust/pull/61802

Implement nth_back for slice::{Iter, IterMut}
rust-lang/rust/pull/60772

Add custom nth_back to Skip
rust-lang/rust/pull/60454

Add functions for building raw slices to libcore
rust-lang/rust/pull/60667

rustdoc: Only show methods that appear in impl blocks in the Implementors sections of trait doc pages
rust-lang/rust/pull/61505

rustdoc: Generate implementors for all auto traits
rust-lang/rust/pull/60293
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