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
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
Crate of the week: async-trait

This week's crate is async-trait, a procedural macro to allow async fns in trait methods.
Thanks to Ehsan M. Kermani for the suggestion!
Updates from core

Avoid ICE when suggestion span is at Eof
rust-lang/rust/pull/62995

On format!() arg count mismatch provide extra info
rust-lang/rust/pull/63121

Syntax: Recover on for ( $pat in $expr ) $block
rust-lang/rust/pull/62928

dead_code: Properly inspect fields in struct patterns with type relative paths
rust-lang/rust/pull/63227

Collect file → edition mapping after AST expansion
rust-lang/rls/pull/1513

Unsupport the await!(future) macro
rust-lang/rust/pull/62293

Round generator sizes to a multiple of their alignment
rust-lang/rust/pull/63208

miri: Fix determining size of an "extra function" allocation
rust-lang/rust/pull/63076

miri: Add misssing 'roundf32' and 'roundf64' intrinsics
rust-lang/miri/pull/885

Impl Debug for Chars
rust-lang/rust/pull/63000

const fn-ify std::any::type_name
rust-lang/rust/pull/63123

hashbrown: Replace FxHash with AHash as the default hasher
rust-lang/hashbrown/pull/97

hashbrown: Experimentally expose RawTable under the "raw" feature
rust-lang/hashbrown/pull/108

rustc: Stabilize options for pipelined compilation
rust-lang/rust/pull/62766

cargo: Enable pipelined compilation by default
rust-lang/cargo/pull/7143

cargo: Improve error message for unmatched prerelease dependencies
rust-lang/cargo/pull/7191

rustdoc: Use doc comments from 'pub use' statements
rust-lang/rust/pull/63048
News

We rewrote our IoT platform in Rust and got away with it.
medium.com/dwelo-r-d

About the future of nphysics: a pure rust 2D and 3D real-time physics engine.
www.patreon.com

Building GTK+ app in Rust for a first time.
turbomack.github.io

Understanding Rust through AVL trees.
francismurillo.github.io

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

Rust reverses research ruin.
medium.com/@me_26124

Veloren: A multiplayer voxel RPG written in Rust.
veloren.net

Minimum safe abstractions.
llogiq.github.io

How to serve static files with Rust.
www.steadylearner.com

Rust Rocks NB-IoT! STM32 Blue Pill with Quectel BC95-G on Apache Mynewt.
medium.com/@ly.lee
Crate of the week: broot

This week's crate is broot, a program to show the gist of a directory tree.
Updates from core

Sort the fat LTO modules to produce deterministic output
rust-lang/rust/pull/63352

More explicit diagnostic when using a vec![] in a pattern
rust-lang/rust/pull/63399

Give built-in macros stable addresses in the standard library
rust-lang/rust/pull/63056

Remove gensym in format_args
rust-lang/rust/pull/63114

Cleanup & Simplify stuff in lowering
rust-lang/rust/pull/63432

Revert "Simplify MIR generation for logical ops"
rust-lang/rust/pull/63431

CTFE: Simplify ConstValue by not checking for alignment
rust-lang/rust/pull/63079

Miri: Use ldexp from cmath instead
rust-lang/miri/pull/898

Fix generator size regressions due to optimization
rust-lang/rust/pull/63034

Improve invalid_value lint message
rust-lang/rust/pull/63483

Fix for "ambiguous associated type" issue with ATBs
rust-lang/rust/pull/61919

Add implementations for converting boxed slices into boxed arrays
rust-lang/rust/pull/61515

Add {IoSlice, IoSliceMut}::advance
rust-lang/rust/pull/62987

Stabilize duration_float
rust-lang/rust/pull/62756

Deprecate try! macro
rust-lang/rust/pull/62672

Use internal iteration in the Sum and Product impls of Result and Option
rust-lang/rust/pull/62459

Implement DoubleEndedIterator for iter::{StepBy, Peekable, Take}
rust-lang/rust/pull/61457

Skip roundtrip on few structs on OpenBSD
rust-lang/libc/pull/1456

cargo: Improve error message when using API command with non-remote registry
rust-lang/cargo/pull/7239
News

Tokio alpha release with async & await.
tokio.rs

Await a minute, why bother?
docs.rs

Functional programming jargon in Rust.
functional.works-hub.com

Migrating the TiKV Rust client from futures 0.1 to 0.3.
tikv.org

Updating to async/await.
leshow.github.io

Follow-up to Method on Emulating Higher-Kinded Types (HKTs) in Rust.
https://gist.github.com/edmundsmith/e09d5f473172066c0023ef84ee830cad

Runtime configuration reloading.
vorner.github.io

Parsing Rust strings into slices.
wduquette.github.io

Why is there a large performance impact when looping over an array over 240 elements?
stackoverflow.com
Crate of the week: topgrade

This week's crate is topgrade, a command-line program to upgrade all the things.
Updates from core

Hash the remapped sysroot instead of the original
rust-lang/rust/pull/63505

Make sure that all file loading happens via SourceMap
rust-lang/rust/pull/63525

syntax: Account for CVarArgs being in the argument list
rust-lang/rust/pull/63459

Remove redundant ty fields from mir::Constant and hair::pattern::PatternRange
rust-lang/rust/pull/63495

resolve: Remove remaining special cases from built-in macros
rust-lang/rust/pull/63449

resolve: Properly integrate derives and macro_rules scopes
rust-lang/rust/pull/63667

Point at the right enclosing scope when using await in non-async fn
rust-lang/rust/pull/63509

typeck: Prohibit RPIT types that inherit lifetimes
rust-lang/rust/pull/62849

Handle elision in async fn correctly
rust-lang/rust/pull/63499

When needing type annotations in local bindings, account for impl Trait and closures
rust-lang/rust/pull/63507

Improved error message for break in async block
rust-lang/rust/pull/63659

Suggest Rust 2018 on <expr>.await with no such field
rust-lang/rust/pull/63539

Crank up invalid value lint
rust-lang/rust/pull/63657

Refactor Miri ops (unary, binary) to have more types
rust-lang/rust/pull/63658

Do not generate allocations for zero sized allocations
rust-lang/rust/pull/63635

Feature gate 'yield $expr?' pre-expansion
rust-lang/rust/pull/63545

Provide map_ok and map_err method for Poll>>
rust-lang/rust/pull/63512

Implement Clone, Display for ascii::EscapeDefault
rust-lang/rust/pull/63421

Add APIs for uninitialized Box, Rc, and Arc (Plus get_mut_unchecked)
rust-lang/rust/pull/62451

Reduce the genericity of closures in the iterator traits
rust-lang/rust/pull/62429

Add custom nth_back for Chain
rust-lang/rust/pull/60492

cargo install: Remove orphaned executables
rust-lang/cargo/pull/7246
News

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

Announcing async-std beta: an async port of the Rust standard library.
async.rs

How Rust optimizes async/await: Part 1.
tmandry.gitlab.io

System 76 releases new GTK firmware manager written in Rust.
blog.system76.com

Writing a Linux kernel module in Rust.
lizhuohua/linux-kernel-module-rust

Introducing the Rust Game Development Working Group.
rust-gamedev.github.io

Steam wishlist announced for Way of Rhea, a sidescrolling puzzle game written in Rust.
store.steampowered.com

Visual embedded Rust programming with Visual Studio Code.
medium.com/@ly.lee

How to diagnose async apps with tracing.
tokio.rs

Using C libraries in Rust: A practical guide to FFI using bindgen.
medium.com/dwelo-r-d

Pre-/Post-conf events: Sustainable 🚄 train travels from and to RustFest Barcelona.
blog.rustfest.eu

<_>::v::<_> - A fun little piece of Rust artwork.
chrismorgan.info
Crate of the week: async-std

This week's crate is async-std, a library with async variants of the standard library's IO etc.