This week in Rust #248 — 21 aug 2018
https://this-week-in-rust.org/blog/2018/08/21/this-week-in-rust-248/
https://this-week-in-rust.org/blog/2018/08/21/this-week-in-rust-248/
Updates from core
the Great Generics Generalisation: HIR Followup
https://github.com/rust-lang/rust/pull/51880
implement Unsized Rvalues
https://github.com/rust-lang/rust/pull/51131
add bare-metal aarch64 target
https://github.com/rust-lang/rust/pull/53233
debug_assert to ensure that from_raw_parts is only used properly aligned
https://github.com/rust-lang/rust/pull/52972
do not suggest conversion method that is already there
https://github.com/rust-lang/rust/pull/53406
export WASM table by default
https://github.com/rust-lang/rust/pull/53237
fix usage of wasm_target_feature
https://github.com/rust-lang/rust/pull/53321
syntax: enforce attribute grammar in the parser
https://github.com/rust-lang/rust/pull/53293
move SmallVector and ThinVec out of libsyntax
https://github.com/rust-lang/rust/pull/53085
resolve: crates only exist in the type namespace
https://github.com/rust-lang/rust/pull/53335
#[feature(uniform_paths)]: allow use x::y; to resolve through self::x, not just ::x
https://github.com/rust-lang/rust/pull/52923
Self in type definitions (RFC #2300)
https://github.com/rust-lang/rust/pull/53324
rustc_codegen_llvm: restore the closure env alloca hack for LLVM 5
https://github.com/rust-lang/rust/pull/53239
make LLVM emit assembly comments with -Z asm-comments
https://github.com/rust-lang/rust/pull/53290
unions are not always trivially dropable
https://github.com/rust-lang/rust/pull/53288
cause cycle err on inf trait normalization
https://github.com/rust-lang/rust/pull/53316
NLL: optimize reassignment immutable state
https://github.com/rust-lang/rust/pull/53258
speed up NLL with HybridIdxSetBuf
https://github.com/rust-lang/rust/pull/53383
TokenStream::extend (awesome speedups!)
https://github.com/rust-lang/rust/pull/53304
don't accept non-string literals for the format string in writeln
https://github.com/rust-lang/rust/pull/53256
add the identity function as core::convert::identity (RFC #2306)
https://github.com/rust-lang/rust/pull/47562
don't panic on std::env::vars() when env is null
https://github.com/rust-lang/rust/pull/53208
use target_pointer_width for BACKTRACE_ELF_SIZE
https://github.com/rust-lang/rust/pull/53377
non-naive implementation of VecDeque.append
https://github.com/rust-lang/rust/pull/52553
stabilize use_extern_macros
https://github.com/rust-lang/rust/pull/50911
the Great Generics Generalisation: HIR Followup
https://github.com/rust-lang/rust/pull/51880
implement Unsized Rvalues
https://github.com/rust-lang/rust/pull/51131
add bare-metal aarch64 target
https://github.com/rust-lang/rust/pull/53233
debug_assert to ensure that from_raw_parts is only used properly aligned
https://github.com/rust-lang/rust/pull/52972
do not suggest conversion method that is already there
https://github.com/rust-lang/rust/pull/53406
export WASM table by default
https://github.com/rust-lang/rust/pull/53237
fix usage of wasm_target_feature
https://github.com/rust-lang/rust/pull/53321
syntax: enforce attribute grammar in the parser
https://github.com/rust-lang/rust/pull/53293
move SmallVector and ThinVec out of libsyntax
https://github.com/rust-lang/rust/pull/53085
resolve: crates only exist in the type namespace
https://github.com/rust-lang/rust/pull/53335
#[feature(uniform_paths)]: allow use x::y; to resolve through self::x, not just ::x
https://github.com/rust-lang/rust/pull/52923
Self in type definitions (RFC #2300)
https://github.com/rust-lang/rust/pull/53324
rustc_codegen_llvm: restore the closure env alloca hack for LLVM 5
https://github.com/rust-lang/rust/pull/53239
make LLVM emit assembly comments with -Z asm-comments
https://github.com/rust-lang/rust/pull/53290
unions are not always trivially dropable
https://github.com/rust-lang/rust/pull/53288
cause cycle err on inf trait normalization
https://github.com/rust-lang/rust/pull/53316
NLL: optimize reassignment immutable state
https://github.com/rust-lang/rust/pull/53258
speed up NLL with HybridIdxSetBuf
https://github.com/rust-lang/rust/pull/53383
TokenStream::extend (awesome speedups!)
https://github.com/rust-lang/rust/pull/53304
don't accept non-string literals for the format string in writeln
https://github.com/rust-lang/rust/pull/53256
add the identity function as core::convert::identity (RFC #2306)
https://github.com/rust-lang/rust/pull/47562
don't panic on std::env::vars() when env is null
https://github.com/rust-lang/rust/pull/53208
use target_pointer_width for BACKTRACE_ELF_SIZE
https://github.com/rust-lang/rust/pull/53377
non-naive implementation of VecDeque.append
https://github.com/rust-lang/rust/pull/52553
stabilize use_extern_macros
https://github.com/rust-lang/rust/pull/50911
News
Announcing Rust 2018 Preview 2
https://internals.rust-lang.org/t/annoucning-rust-2018-preview-2/8218
Announcing the RLS 1.0 release candidate
https://www.ncameron.org/blog/rls-1-0-release-candidate/
How Rust’s standard library was vulnerable for years and nobody noticed
https://medium.com/@shnatsel/how-rusts-standard-library-was-vulnerable-for-years-and-nobody-noticed-aebf0503c3d6
Safe partial initialization in Rust
https://scottjmaddox.github.io/Safe-partial-initialization-in-Rust/
With undefined behavior, anything is possible
https://raphlinus.github.io/programming/rust/2018/08/17/undefined-behavior.html
Rust GraphQL webserver with Warp, Juniper, and MongoDB
http://alex.amiran.it/post/2018-08-16-rust-graphql-webserver-with-warp-juniper-and-mongodb.html
Programming Servo: Anatomy of a fetch
https://medium.com/programming-servo/anatomy-of-a-fetch-8872a5c843cd
Thanks for asking. An analysis of questions that are asked on r/rust subreddit
https://llogiq.github.io/2018/08/16/ask.html
This week in Rust and WebAssembly 6
https://rustwasm.github.io/2018/08/14/this-week-in-rust-wasm-006.html
[podcast] New Rustacean news: Rust 1.28
https://newrustacean.com/show_notes/news/rust_1_28/
Announcing Rust 2018 Preview 2
https://internals.rust-lang.org/t/annoucning-rust-2018-preview-2/8218
Announcing the RLS 1.0 release candidate
https://www.ncameron.org/blog/rls-1-0-release-candidate/
How Rust’s standard library was vulnerable for years and nobody noticed
https://medium.com/@shnatsel/how-rusts-standard-library-was-vulnerable-for-years-and-nobody-noticed-aebf0503c3d6
Safe partial initialization in Rust
https://scottjmaddox.github.io/Safe-partial-initialization-in-Rust/
With undefined behavior, anything is possible
https://raphlinus.github.io/programming/rust/2018/08/17/undefined-behavior.html
Rust GraphQL webserver with Warp, Juniper, and MongoDB
http://alex.amiran.it/post/2018-08-16-rust-graphql-webserver-with-warp-juniper-and-mongodb.html
Programming Servo: Anatomy of a fetch
https://medium.com/programming-servo/anatomy-of-a-fetch-8872a5c843cd
Thanks for asking. An analysis of questions that are asked on r/rust subreddit
https://llogiq.github.io/2018/08/16/ask.html
This week in Rust and WebAssembly 6
https://rustwasm.github.io/2018/08/14/this-week-in-rust-wasm-006.html
[podcast] New Rustacean news: Rust 1.28
https://newrustacean.com/show_notes/news/rust_1_28/
Crate of the week: wasm-bindgen-futures
This week's crate is wasm-bindgen-futures, a crate to make ECMAScript promises and Rust futures interoperate. Thanks to Vikrant for the suggestion!
This week's crate is wasm-bindgen-futures, a crate to make ECMAScript promises and Rust futures interoperate. Thanks to Vikrant for the suggestion!
This week in Rust #249 — 28 aug 2018
https://this-week-in-rust.org/blog/2018/08/28/this-week-in-rust-249/
https://this-week-in-rust.org/blog/2018/08/28/this-week-in-rust-249/
Updates from core
Stablize Iterator::find_map
https://github.com/rust-lang/rust/pull/53385
Stabilise raw_identifiers feature
https://github.com/rust-lang/rust/pull/53236
Stabilize 'attr_literals' feature
https://github.com/rust-lang/rust/pull/53044
Exhaustive integer matching
https://github.com/rust-lang/rust/pull/50912
Unify E0243, E0244, E0087, E0088, E0089, and E0090 into E0107
https://github.com/rust-lang/rust/pull/53584
Change Rc::inc_{weak,strong} to better hint optimization to LLVM
https://github.com/rust-lang/rust/pull/53080
add #[panic_handler]; deprecate #[panic_implementation]
https://github.com/rust-lang/rust/pull/53619
wasm: remove --strip-debug argument to LLD
https://github.com/rust-lang/rust/pull/53434
resolve: overhaul #![feature(uniform_paths)] error reporting
https://github.com/rust-lang/rust/pull/53427
visit all attributes for feature collection
https://github.com/rust-lang/rust/pull/53397
{to,from}_{ne,le,be}_bytes for unsigned integer types
https://github.com/rust-lang/rust/pull/53358
fix error for unsized packed struct field
https://github.com/rust-lang/rust/pull/53342
various changes to rustc_on_unimplemented
https://github.com/rust-lang/rust/pull/53295
implement Iterator::size_hint for Elaborator
https://github.com/rust-lang/rust/pull/52858
Fix unsoundness for VecDeque
https://github.com/rust-lang/rust/pull/53571
Use optimized SmallVec implementation
https://github.com/rust-lang/rust/pull/53384
Feature gate where clauses on associated type impls
https://github.com/rust-lang/rust/pull/53235
resolve suggestions should use crate:: when enabled
https://github.com/rust-lang/rust/pull/51456
Allow panicking with string literal messages inside constants
https://github.com/rust-lang/rust/pull/52011
Implement try block expressions
https://github.com/rust-lang/rust/pull/52602
Stabilize a few secondary macro features
https://github.com/rust-lang/rust/pull/53459
Merge IdxSet and IdxSetBuf
https://github.com/rust-lang/rust/pull/53520
syntax: Optimize some literal parsing
https://github.com/rust-lang/rust/pull/53521
Buffer LLVM's object output stream
https://github.com/rust-lang/rust/pull/53524
Fix NLL ICEs
https://github.com/rust-lang/rust/pull/53580
Rename TyVariants and variants
https://github.com/rust-lang/rust/pull/53581
Use SmallVec for SmallCStr
https://github.com/rust-lang/rust/pull/53644
Stablize Iterator::find_map
https://github.com/rust-lang/rust/pull/53385
Stabilise raw_identifiers feature
https://github.com/rust-lang/rust/pull/53236
Stabilize 'attr_literals' feature
https://github.com/rust-lang/rust/pull/53044
Exhaustive integer matching
https://github.com/rust-lang/rust/pull/50912
Unify E0243, E0244, E0087, E0088, E0089, and E0090 into E0107
https://github.com/rust-lang/rust/pull/53584
Change Rc::inc_{weak,strong} to better hint optimization to LLVM
https://github.com/rust-lang/rust/pull/53080
add #[panic_handler]; deprecate #[panic_implementation]
https://github.com/rust-lang/rust/pull/53619
wasm: remove --strip-debug argument to LLD
https://github.com/rust-lang/rust/pull/53434
resolve: overhaul #![feature(uniform_paths)] error reporting
https://github.com/rust-lang/rust/pull/53427
visit all attributes for feature collection
https://github.com/rust-lang/rust/pull/53397
{to,from}_{ne,le,be}_bytes for unsigned integer types
https://github.com/rust-lang/rust/pull/53358
fix error for unsized packed struct field
https://github.com/rust-lang/rust/pull/53342
various changes to rustc_on_unimplemented
https://github.com/rust-lang/rust/pull/53295
implement Iterator::size_hint for Elaborator
https://github.com/rust-lang/rust/pull/52858
Fix unsoundness for VecDeque
https://github.com/rust-lang/rust/pull/53571
Use optimized SmallVec implementation
https://github.com/rust-lang/rust/pull/53384
Feature gate where clauses on associated type impls
https://github.com/rust-lang/rust/pull/53235
resolve suggestions should use crate:: when enabled
https://github.com/rust-lang/rust/pull/51456
Allow panicking with string literal messages inside constants
https://github.com/rust-lang/rust/pull/52011
Implement try block expressions
https://github.com/rust-lang/rust/pull/52602
Stabilize a few secondary macro features
https://github.com/rust-lang/rust/pull/53459
Merge IdxSet and IdxSetBuf
https://github.com/rust-lang/rust/pull/53520
syntax: Optimize some literal parsing
https://github.com/rust-lang/rust/pull/53521
Buffer LLVM's object output stream
https://github.com/rust-lang/rust/pull/53524
Fix NLL ICEs
https://github.com/rust-lang/rust/pull/53580
Rename TyVariants and variants
https://github.com/rust-lang/rust/pull/53581
Use SmallVec for SmallCStr
https://github.com/rust-lang/rust/pull/53644
News
Experimental async / await support for Tokio
https://tokio.rs/blog/2018-08-async-await/
Nightly Rust is switching to use LLD (LLVM's new built-in linker) as the default linker for ARM microcontrollers
https://rust-embedded.github.io/blog/2018-08-2x-psa-cortex-m-breakage/
CVE-2018-1000657: buffer overflow in VecDeque::reserve() in Rust 1.3 through 1.21 allows arbitrary code execution
https://www.reddit.com/r/rust/comments/9926jq/cve20181000657_buffer_overflow_in_vecdequereserve/
More on the RLS and a 1.0 release
https://www.ncameron.org/blog/more-on-the-rls-and-a-1-0-release/
Another look at the pinning API
https://boats.gitlab.io/blog/post/rethinking-pin/
Oxidizing sourmash: Python and FFI
https://blog.luizirber.org/2018/08/23/sourmash-rust/
Reading files quickly in Rust
https://boyter.org/posts/reading-files-quickly-in-rust/
Calling C# natively from Rust
https://medium.com/@chyyran/calling-c-natively-from-rust-1f92c506289d
Programming Servo: the makings of a task-queue
https://medium.com/programming-servo/programming-servo-the-makings-of-a-task-queue-b4138cd246ca
Programming Servo: The debug way
https://medium.com/coding-neutrino-blog/programming-servo-the-debug-way-5db01f09b7f4
Easy proc_macro_derives with synstructure
https://llogiq.github.io/2018/08/25/synstruct.html
Two kinds of invariants, proposing rules for unsafe code concerning uninitialized data
https://www.ralfj.de/blog/2018/08/22/two-kinds-of-invariants.html
Next Rust Fest to take place in Rome on 24 and 25 November
https://blog.rustfest.eu/next-stop-rome
Experimental async / await support for Tokio
https://tokio.rs/blog/2018-08-async-await/
Nightly Rust is switching to use LLD (LLVM's new built-in linker) as the default linker for ARM microcontrollers
https://rust-embedded.github.io/blog/2018-08-2x-psa-cortex-m-breakage/
CVE-2018-1000657: buffer overflow in VecDeque::reserve() in Rust 1.3 through 1.21 allows arbitrary code execution
https://www.reddit.com/r/rust/comments/9926jq/cve20181000657_buffer_overflow_in_vecdequereserve/
More on the RLS and a 1.0 release
https://www.ncameron.org/blog/more-on-the-rls-and-a-1-0-release/
Another look at the pinning API
https://boats.gitlab.io/blog/post/rethinking-pin/
Oxidizing sourmash: Python and FFI
https://blog.luizirber.org/2018/08/23/sourmash-rust/
Reading files quickly in Rust
https://boyter.org/posts/reading-files-quickly-in-rust/
Calling C# natively from Rust
https://medium.com/@chyyran/calling-c-natively-from-rust-1f92c506289d
Programming Servo: the makings of a task-queue
https://medium.com/programming-servo/programming-servo-the-makings-of-a-task-queue-b4138cd246ca
Programming Servo: The debug way
https://medium.com/coding-neutrino-blog/programming-servo-the-debug-way-5db01f09b7f4
Easy proc_macro_derives with synstructure
https://llogiq.github.io/2018/08/25/synstruct.html
Two kinds of invariants, proposing rules for unsafe code concerning uninitialized data
https://www.ralfj.de/blog/2018/08/22/two-kinds-of-invariants.html
Next Rust Fest to take place in Rome on 24 and 25 November
https://blog.rustfest.eu/next-stop-rome
Crate of the week: generational-arena
This week's crate is generational-arena, a safe arena allocator that allows deletion without suffering from the ABA problem by using generational indices. Thanks to Willi Kappler for the suggestion!
This week's crate is generational-arena, a safe arena allocator that allows deletion without suffering from the ABA problem by using generational indices. Thanks to Willi Kappler for the suggestion!
This week in Rust #250 — 04 sep 2018
https://this-week-in-rust.org/blog/2018/09/04/this-week-in-rust-250/
https://this-week-in-rust.org/blog/2018/09/04/this-week-in-rust-250/
Updates from core
enable ThinLTO with incremental compilation
https://github.com/rust-lang/rust/pull/53673
build LLVM with ThinLTO enabled (2nd attempt)
https://github.com/rust-lang/rust/pull/53245
update LLVM submodule (mainly WASM improvements)
https://github.com/rust-lang/rust/pull/53611
ADD more Cortex-R targets
https://github.com/rust-lang/rust/pull/53679
change the default linker of the ARM Cortex-M targets to rust-lld
https://github.com/rust-lang/rust/pull/53648
begin preparation for Rust 2018
https://github.com/rust-lang/crates.io/pull/1467
fix promotion stability hole in old borrowck
https://github.com/rust-lang/rust/pull/53699
Miri engine cleanup
https://github.com/rust-lang/rust/pull/53671
Miri refactor: Final round
https://github.com/rust-lang/rust/pull/53779
use partial but correct vtable layout
https://github.com/rust-lang/rust/pull/53757
replace AccumulateVec by SmallVec
https://github.com/rust-lang/rust/pull/53659
HybridIdxSet tweaks
https://github.com/rust-lang/rust/pull/53656
NLL: experiment with inverting liveness
https://github.com/rust-lang/rust/pull/53314
fix NLL ICEs
https://github.com/rust-lang/rust/pull/53580
set rustfix auto-applicability for a few lints
https://github.com/rust-lang/rust/pull/53655
use FxHash{Map, Set} instead of the default Hash{Map, Set}
https://github.com/rust-lang/rust/pull/53472
various small diagnostic and code clean up
https://github.com/rust-lang/rust/pull/53842
save-analysis: record info for the types in where clauses
https://github.com/rust-lang/rust/pull/53838
fix u32 steps_between for 16-bit systems
https://github.com/rust-lang/rust/pull/53755
reduce number of syscalls in rand
https://github.com/rust-lang/rust/pull/53725
reoptimize VecDeque::append
https://github.com/rust-lang/rust/pull/53564
add more const int ops
https://github.com/rust-lang/rust/pull/53697
make std::intrinsics::transmute() const fn
https://github.com/rust-lang/rust/pull/53535
impl PartialEq for TryFromIntError
https://github.com/rust-lang/rust/pull/53476
add --allow-staged to cargo fix
https://github.com/rust-lang/cargo/pull/5943
add rust-gdbgui noscript
https://github.com/rust-lang/rust/pull/53774
set cfg(rustdoc) when rustdoc is running on a crate
https://github.com/rust-lang/rust/pull/53076
rustbuild: distribute libLLVM.so with rustc
https://github.com/rust-lang/rust/pull/53828
enable ThinLTO with incremental compilation
https://github.com/rust-lang/rust/pull/53673
build LLVM with ThinLTO enabled (2nd attempt)
https://github.com/rust-lang/rust/pull/53245
update LLVM submodule (mainly WASM improvements)
https://github.com/rust-lang/rust/pull/53611
ADD more Cortex-R targets
https://github.com/rust-lang/rust/pull/53679
change the default linker of the ARM Cortex-M targets to rust-lld
https://github.com/rust-lang/rust/pull/53648
begin preparation for Rust 2018
https://github.com/rust-lang/crates.io/pull/1467
fix promotion stability hole in old borrowck
https://github.com/rust-lang/rust/pull/53699
Miri engine cleanup
https://github.com/rust-lang/rust/pull/53671
Miri refactor: Final round
https://github.com/rust-lang/rust/pull/53779
use partial but correct vtable layout
https://github.com/rust-lang/rust/pull/53757
replace AccumulateVec by SmallVec
https://github.com/rust-lang/rust/pull/53659
HybridIdxSet tweaks
https://github.com/rust-lang/rust/pull/53656
NLL: experiment with inverting liveness
https://github.com/rust-lang/rust/pull/53314
fix NLL ICEs
https://github.com/rust-lang/rust/pull/53580
set rustfix auto-applicability for a few lints
https://github.com/rust-lang/rust/pull/53655
use FxHash{Map, Set} instead of the default Hash{Map, Set}
https://github.com/rust-lang/rust/pull/53472
various small diagnostic and code clean up
https://github.com/rust-lang/rust/pull/53842
save-analysis: record info for the types in where clauses
https://github.com/rust-lang/rust/pull/53838
fix u32 steps_between for 16-bit systems
https://github.com/rust-lang/rust/pull/53755
reduce number of syscalls in rand
https://github.com/rust-lang/rust/pull/53725
reoptimize VecDeque::append
https://github.com/rust-lang/rust/pull/53564
add more const int ops
https://github.com/rust-lang/rust/pull/53697
make std::intrinsics::transmute() const fn
https://github.com/rust-lang/rust/pull/53535
impl PartialEq for TryFromIntError
https://github.com/rust-lang/rust/pull/53476
add --allow-staged to cargo fix
https://github.com/rust-lang/cargo/pull/5943
add rust-gdbgui noscript
https://github.com/rust-lang/rust/pull/53774
set cfg(rustdoc) when rustdoc is running on a crate
https://github.com/rust-lang/rust/pull/53076
rustbuild: distribute libLLVM.so with rustc
https://github.com/rust-lang/rust/pull/53828
News
Why Rust closures are (somewhat) hard.
http://stevedonovan.github.io/rustifications/2018/08/18/rust-closures-are-hard.html
Rust pattern: Iterating an over a Rc<Vec<T>>.
http://smallcultfollowing.com/babysteps/blog/2018/09/02/rust-pattern-iterating-an-over-a-rc-vec-t/
FlatBuffers adds support for Rust.
https://github.com/google/flatbuffers/pull/4898
RPCS3 and Dolphin on macOS using gfx-portability.
https://gfx-rs.github.io/2018/09/03/rpcs3-dolphin.html
Learning generics in Rust.
https://tutorialedge.net/rust/learning-generics-in-rust/
Feasible functors in Rust.
https://varkor.github.io/blog/2018/08/28/feasible-functors-in-rust.html
Programming Servo: A generic “worker event-loop”.
https://medium.com/programming-servo/programming-servo-a-generic-worker-event-loop-400a6f113a60
Serde deserialize This or That into u64.
https://noyez.gitlab.io/post/2018-08-28-serilize-this-or-that-into-u64/
This Week in Rust and WebAssembly 7.
https://rustwasm.github.io/2018/09/04/this-week-in-rust-wasm-007.html
The Embedded WG newsletter 10.
https://rust-embedded.github.io/blog/2018-08-28-newsletter-10/
Why Rust closures are (somewhat) hard.
http://stevedonovan.github.io/rustifications/2018/08/18/rust-closures-are-hard.html
Rust pattern: Iterating an over a Rc<Vec<T>>.
http://smallcultfollowing.com/babysteps/blog/2018/09/02/rust-pattern-iterating-an-over-a-rc-vec-t/
FlatBuffers adds support for Rust.
https://github.com/google/flatbuffers/pull/4898
RPCS3 and Dolphin on macOS using gfx-portability.
https://gfx-rs.github.io/2018/09/03/rpcs3-dolphin.html
Learning generics in Rust.
https://tutorialedge.net/rust/learning-generics-in-rust/
Feasible functors in Rust.
https://varkor.github.io/blog/2018/08/28/feasible-functors-in-rust.html
Programming Servo: A generic “worker event-loop”.
https://medium.com/programming-servo/programming-servo-a-generic-worker-event-loop-400a6f113a60
Serde deserialize This or That into u64.
https://noyez.gitlab.io/post/2018-08-28-serilize-this-or-that-into-u64/
This Week in Rust and WebAssembly 7.
https://rustwasm.github.io/2018/09/04/this-week-in-rust-wasm-007.html
The Embedded WG newsletter 10.
https://rust-embedded.github.io/blog/2018-08-28-newsletter-10/
Crate of the week: cgroups
This week's crate is cgroups, a native Rust library for managing control groups under Linux. Thanks to yoshuawuyts for the suggestion!
This week's crate is cgroups, a native Rust library for managing control groups under Linux. Thanks to yoshuawuyts for the suggestion!
This week in Rust #251 — 11 sep 2018
https://this-week-in-rust.org/blog/2018/09/11/this-week-in-rust-251/
https://this-week-in-rust.org/blog/2018/09/11/this-week-in-rust-251/
Updates from core
introduce Custom Test Frameworks
https://github.com/rust-lang/rust/pull/53410
ThinLTO: don't keep files open after mmaping them
https://github.com/rust-lang/rust/pull/53962
rustc: prepare the atomics feature for wasm
https://github.com/rust-lang/rust/pull/53878
if- and while-let-chains, take 2 - edition changes
https://github.com/rust-lang/rust/pull/53854
resolve: relax shadowing restrictions on macro-expanded macros
https://github.com/rust-lang/rust/pull/53778
proc_macro::Group::span_open and span_close
https://github.com/rust-lang/rust/pull/53902
fix incorrect outer function type parameter message
https://github.com/rust-lang/rust/pull/53960
fix is_non_exhaustive confusion between structs and enums
https://github.com/rust-lang/rust/pull/53721
rewrite precompute_borrows_out_of_scope for fewer hash table lookups
https://github.com/rust-lang/rust/pull/53942
make loop detector only consider reachable memory
https://github.com/rust-lang/rust/pull/52626
miri engine: make sure we do not copy unsized data
https://github.com/rust-lang/rust/pull/53883
optimize miri checking of integer array/slices
https://github.com/rust-lang/rust/pull/53903
NLL: do not propagate closure requirements if we can prove them locally
https://github.com/rust-lang/rust/pull/53745
NLL: teach SCC about 'static
https://github.com/rust-lang/rust/pull/53327
implement Unpin for Box, Rc, and Arc
https://github.com/rust-lang/rust/pull/53874
add trim_start, trim_end etc.; deprecate trim_left, trim_right, etc. in future
https://github.com/rust-lang/rust/pull/52994
allow to check if sync::Once is already initialized
https://github.com/rust-lang/rust/pull/53027
stabilize #[panic_handler]
https://github.com/rust-lang/rust/pull/51366
rustdoc: show trait impl docs
https://github.com/rust-lang/rust/pull/51885
rustbuild: tweak LLVM distribution layout
https://github.com/rust-lang/rust/pull/53955
introduce Custom Test Frameworks
https://github.com/rust-lang/rust/pull/53410
ThinLTO: don't keep files open after mmaping them
https://github.com/rust-lang/rust/pull/53962
rustc: prepare the atomics feature for wasm
https://github.com/rust-lang/rust/pull/53878
if- and while-let-chains, take 2 - edition changes
https://github.com/rust-lang/rust/pull/53854
resolve: relax shadowing restrictions on macro-expanded macros
https://github.com/rust-lang/rust/pull/53778
proc_macro::Group::span_open and span_close
https://github.com/rust-lang/rust/pull/53902
fix incorrect outer function type parameter message
https://github.com/rust-lang/rust/pull/53960
fix is_non_exhaustive confusion between structs and enums
https://github.com/rust-lang/rust/pull/53721
rewrite precompute_borrows_out_of_scope for fewer hash table lookups
https://github.com/rust-lang/rust/pull/53942
make loop detector only consider reachable memory
https://github.com/rust-lang/rust/pull/52626
miri engine: make sure we do not copy unsized data
https://github.com/rust-lang/rust/pull/53883
optimize miri checking of integer array/slices
https://github.com/rust-lang/rust/pull/53903
NLL: do not propagate closure requirements if we can prove them locally
https://github.com/rust-lang/rust/pull/53745
NLL: teach SCC about 'static
https://github.com/rust-lang/rust/pull/53327
implement Unpin for Box, Rc, and Arc
https://github.com/rust-lang/rust/pull/53874
add trim_start, trim_end etc.; deprecate trim_left, trim_right, etc. in future
https://github.com/rust-lang/rust/pull/52994
allow to check if sync::Once is already initialized
https://github.com/rust-lang/rust/pull/53027
stabilize #[panic_handler]
https://github.com/rust-lang/rust/pull/51366
rustdoc: show trait impl docs
https://github.com/rust-lang/rust/pull/51885
rustbuild: tweak LLVM distribution layout
https://github.com/rust-lang/rust/pull/53955
News
ripgrep 0.10.0 released (PCRE2 and multi-line support).
https://github.com/BurntSushi/ripgrep/releases/tag/0.10.0
rustfmt, compiled to wasm, in a webpage.
https://alexcrichton.github.io/rustfmt-wasm/
Rust faster – SIMD edition.
https://llogiq.github.io/2018/09/06/fast.html
2019 Strategy for rustc and the RLS.
https://internals.rust-lang.org/t/2019-strategy-for-rustc-and-the-rls/8361
Adventures in Rust: Futures and Tokio.
http://bryangilbert.com/post/code/rust/adventures-futures-tokio-rust/
From Rust to beyond, episode 4: The C galaxy. An end-to-end example, includes cbindgen and clang.
https://mnt.io/2018/09/11/from-rust-to-beyond-the-c-galaxy/
Parallelizing PNG, part 5: choosing Rust for mtpng.
https://brionv.com/log/2018/09/09/parallelizing-png-part-5-choosing-rust-for-mtpng/
Tower Web - Expanding the middleware stack.
https://medium.com/@carllerche/tower-web-expanding-the-middleware-stack-f9bf55bfa109
Beware the rust cache on Travis (or why you should use it with care).
https://levans.fr/rust_travis_cache.html
RustFest Rome CFP is open and supporter tickets available.
https://blog.rustfest.eu/this-week-in-rustfest-0-cfp-and-tickets
Videos from RustConf 2018.
https://www.youtube.com/playlist?list=PL85XCvVPmGQi3tivxDDF1hrT9qr5hdMBZ
Rust Embedded WG newsletter 11.
https://rust-embedded.github.io/blog/2018-09-09-newsletter-11/
ripgrep 0.10.0 released (PCRE2 and multi-line support).
https://github.com/BurntSushi/ripgrep/releases/tag/0.10.0
rustfmt, compiled to wasm, in a webpage.
https://alexcrichton.github.io/rustfmt-wasm/
Rust faster – SIMD edition.
https://llogiq.github.io/2018/09/06/fast.html
2019 Strategy for rustc and the RLS.
https://internals.rust-lang.org/t/2019-strategy-for-rustc-and-the-rls/8361
Adventures in Rust: Futures and Tokio.
http://bryangilbert.com/post/code/rust/adventures-futures-tokio-rust/
From Rust to beyond, episode 4: The C galaxy. An end-to-end example, includes cbindgen and clang.
https://mnt.io/2018/09/11/from-rust-to-beyond-the-c-galaxy/
Parallelizing PNG, part 5: choosing Rust for mtpng.
https://brionv.com/log/2018/09/09/parallelizing-png-part-5-choosing-rust-for-mtpng/
Tower Web - Expanding the middleware stack.
https://medium.com/@carllerche/tower-web-expanding-the-middleware-stack-f9bf55bfa109
Beware the rust cache on Travis (or why you should use it with care).
https://levans.fr/rust_travis_cache.html
RustFest Rome CFP is open and supporter tickets available.
https://blog.rustfest.eu/this-week-in-rustfest-0-cfp-and-tickets
Videos from RustConf 2018.
https://www.youtube.com/playlist?list=PL85XCvVPmGQi3tivxDDF1hrT9qr5hdMBZ
Rust Embedded WG newsletter 11.
https://rust-embedded.github.io/blog/2018-09-09-newsletter-11/
Crate of the week: cargo-src
This week's crate is cargo-src, a Rust source browser with syntax highlighting, jump to def, smart search and much more. Thanks to mark-i-m for the suggestion!
This week's crate is cargo-src, a Rust source browser with syntax highlighting, jump to def, smart search and much more. Thanks to mark-i-m for the suggestion!
This week in Rust #252 — 18 sep 2018
https://this-week-in-rust.org/blog/2018/09/18/this-week-in-rust-252/
https://this-week-in-rust.org/blog/2018/09/18/this-week-in-rust-252/
Updates from core
temporarily prohibit proc macro attributes placed after derives
https://github.com/rust-lang/rust/pull/54277
add target thumbv7a-pc-windows-msvc
https://github.com/rust-lang/rust/pull/53621
PowerPC: fix the calling convention for i1 arguments on PPC32
https://github.com/rust-lang/llvm/pull/127
allow for opting out of ThinLTO and clean up LTO related cli flag handling
https://github.com/rust-lang/rust/pull/53950
resolve: allow only core, std, meta and --extern in Rust 2018 paths
https://github.com/rust-lang/rust/pull/54116
resolve: do not error on access to proc macros imported with #[macro_use]
https://github.com/rust-lang/rust/pull/53461
add inspection and setter methods to proc_macro::Diagnostic
https://github.com/rust-lang/rust/pull/52896
support anoscription for patterns in NLL
https://github.com/rust-lang/rust/pull/53873
allow named lifetimes in async functions
https://github.com/rust-lang/rust/pull/54000
suggest && and || instead of 'and' and 'or'
https://github.com/rust-lang/rust/pull/54181
use structured suggestion for "missing mut" label
https://github.com/rust-lang/rust/pull/54157
de-overlap the lifetimes of flow_inits and flow_{un,ever_}inits
https://github.com/rust-lang/rust/pull/54213
don't compute padding of braces unless they are unmatched
https://github.com/rust-lang/rust/pull/54092
don't suggest extra clone when converting cloned slice to Vec
https://github.com/rust-lang/rust/pull/54080
reexport CheckLintNameResult
https://github.com/rust-lang/rust/pull/54106
miri: keep around some information for dead allocations
https://github.com/rust-lang/rust/pull/54254
miri loop detector hashing
https://github.com/rust-lang/rust/pull/54076
fix some uses of pointer intrinsics with invalid pointers
https://github.com/rust-lang/rust/pull/53804
first step towards u128 instead of Const in PatternKind::Range
https://github.com/rust-lang/rust/pull/51159
stabilize outlives requirements
https://github.com/rust-lang/rust/pull/53793
stabilize #[used]
https://github.com/rust-lang/rust/pull/51363
stabilize slice_align_to
https://github.com/rust-lang/rust/pull/53754
implement tuple_struct_self_ctor (RFC #2302)
https://github.com/rust-lang/rust/pull/53751
implement map_or_else for Result<T, E>
https://github.com/rust-lang/rust/pull/53777
add a implementation of From for converting &'a Option<T> into Option<&'a T>
https://github.com/rust-lang/rust/pull/53218
cargo: add empty ctrlc handler on Windows
https://github.com/rust-lang/cargo/pull/6004
temporarily prohibit proc macro attributes placed after derives
https://github.com/rust-lang/rust/pull/54277
add target thumbv7a-pc-windows-msvc
https://github.com/rust-lang/rust/pull/53621
PowerPC: fix the calling convention for i1 arguments on PPC32
https://github.com/rust-lang/llvm/pull/127
allow for opting out of ThinLTO and clean up LTO related cli flag handling
https://github.com/rust-lang/rust/pull/53950
resolve: allow only core, std, meta and --extern in Rust 2018 paths
https://github.com/rust-lang/rust/pull/54116
resolve: do not error on access to proc macros imported with #[macro_use]
https://github.com/rust-lang/rust/pull/53461
add inspection and setter methods to proc_macro::Diagnostic
https://github.com/rust-lang/rust/pull/52896
support anoscription for patterns in NLL
https://github.com/rust-lang/rust/pull/53873
allow named lifetimes in async functions
https://github.com/rust-lang/rust/pull/54000
suggest && and || instead of 'and' and 'or'
https://github.com/rust-lang/rust/pull/54181
use structured suggestion for "missing mut" label
https://github.com/rust-lang/rust/pull/54157
de-overlap the lifetimes of flow_inits and flow_{un,ever_}inits
https://github.com/rust-lang/rust/pull/54213
don't compute padding of braces unless they are unmatched
https://github.com/rust-lang/rust/pull/54092
don't suggest extra clone when converting cloned slice to Vec
https://github.com/rust-lang/rust/pull/54080
reexport CheckLintNameResult
https://github.com/rust-lang/rust/pull/54106
miri: keep around some information for dead allocations
https://github.com/rust-lang/rust/pull/54254
miri loop detector hashing
https://github.com/rust-lang/rust/pull/54076
fix some uses of pointer intrinsics with invalid pointers
https://github.com/rust-lang/rust/pull/53804
first step towards u128 instead of Const in PatternKind::Range
https://github.com/rust-lang/rust/pull/51159
stabilize outlives requirements
https://github.com/rust-lang/rust/pull/53793
stabilize #[used]
https://github.com/rust-lang/rust/pull/51363
stabilize slice_align_to
https://github.com/rust-lang/rust/pull/53754
implement tuple_struct_self_ctor (RFC #2302)
https://github.com/rust-lang/rust/pull/53751
implement map_or_else for Result<T, E>
https://github.com/rust-lang/rust/pull/53777
add a implementation of From for converting &'a Option<T> into Option<&'a T>
https://github.com/rust-lang/rust/pull/53218
cargo: add empty ctrlc handler on Windows
https://github.com/rust-lang/cargo/pull/6004
News
🎈🎉 Announcing Rust 1.29. 🎉🎈
https://blog.rust-lang.org/2018/09/13/Rust-1.29.html
Ripgrep is available as a package in Ubuntu 18.10.
https://github.com/BurntSushi/ripgrep/pull/1054
WebRender is now enabled by default in Firefox Nightly on Windows 10 with Nvidia GPUs.
https://groups.google.com/forum/#!topic/mozilla.dev.platform/x_sFbDgQJP0
RustConf 2018 closing keynote (blog post).
https://kyren.github.io/2018/09/14/rustconf-talk.html
Rising Tide: building a modular web framework in the open.
https://rust-lang-nursery.github.io/wg-net/2018/09/11/tide.html
You can’t “turn off the borrow checker” in Rust.
https://words.steveklabnik.com/you-can-t-turn-off-the-borrow-checker-in-rust
Measuring SmallVec footprint with Smallvectune.
https://llogiq.github.io/2018/09/13/smallvec.html
How we organize a complex Rust codebase.
https://blog.getseq.net/rust-at-datalust-how-we-organize-a-complex-rust-codebase/
Desktop apps with Rust (Electorn + WebAssembly).
https://speice.io/2018/09/isomorphic-apps.html
Postgres over TLS with the postgres crate, r2d2_postgres and openssl.
https://matthewkmayer.github.io/blag/public/post/postgres-tls/
The Networking WG newsletter 1.
https://internals.rust-lang.org/t/the-networking-working-group-newsletter-01/8391
🎈🎉 Announcing Rust 1.29. 🎉🎈
https://blog.rust-lang.org/2018/09/13/Rust-1.29.html
Ripgrep is available as a package in Ubuntu 18.10.
https://github.com/BurntSushi/ripgrep/pull/1054
WebRender is now enabled by default in Firefox Nightly on Windows 10 with Nvidia GPUs.
https://groups.google.com/forum/#!topic/mozilla.dev.platform/x_sFbDgQJP0
RustConf 2018 closing keynote (blog post).
https://kyren.github.io/2018/09/14/rustconf-talk.html
Rising Tide: building a modular web framework in the open.
https://rust-lang-nursery.github.io/wg-net/2018/09/11/tide.html
You can’t “turn off the borrow checker” in Rust.
https://words.steveklabnik.com/you-can-t-turn-off-the-borrow-checker-in-rust
Measuring SmallVec footprint with Smallvectune.
https://llogiq.github.io/2018/09/13/smallvec.html
How we organize a complex Rust codebase.
https://blog.getseq.net/rust-at-datalust-how-we-organize-a-complex-rust-codebase/
Desktop apps with Rust (Electorn + WebAssembly).
https://speice.io/2018/09/isomorphic-apps.html
Postgres over TLS with the postgres crate, r2d2_postgres and openssl.
https://matthewkmayer.github.io/blag/public/post/postgres-tls/
The Networking WG newsletter 1.
https://internals.rust-lang.org/t/the-networking-working-group-newsletter-01/8391
Crate of the week: mtpng
This week's crate is mtpng, a parallelized PNG encoder. Thanks to Willi Kappler for the suggestion!
This week's crate is mtpng, a parallelized PNG encoder. Thanks to Willi Kappler for the suggestion!