News
🎈🎉 Announcing Rust 1.31 and Rust 2018. 🎉🎈
https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html
Rust 2018 is here… but what is it?
https://hacks.mozilla.org/2018/12/rust-2018-is-here/
Reflecting on Rust and WebAssembly in 2018.
https://rustwasm.github.io/2018/12/06/reflecting-on-rust-and-wasm-in-2018.html
Rocket v0.4: Typed URIs, database support, revamped queries, & more.
https://rocket.rs/v0.4/news/2018-12-08-version-0.4/
Inside Rust's async transform.
https://blag.nemo157.com/2018/12/09/inside-rusts-async-transform.html
The Swiss army knife of hashmaps.
https://blog.waffles.space/2018/12/07/deep-dive-into-hashbrown/
Building Alexa Skills in Rust.
https://medium.com/@amalec/building-alexa-skills-in-rust-4cf54a497ea4
Wherefore art thou Romio? Romio is a port of a small part of the Tokio project to the newer futures APIs.
https://boats.gitlab.io/blog/post/romio/
Existential types in Rust.
https://adelbertc.github.io/posts/2018-12-10-rust-existentials.html
Currying in Rust.
https://hashnode.com/post/currying-in-rust-cjpfb0i2z00cm56s2aideuo4z
More on RLS version numbering.
https://www.ncameron.org/blog/more-on-rls-version-numbering/
Patterns of Refactoring C to Rust: The case of librnoscript.
https://people.gnome.org/~federico/blog/guadec-2018-presentation.html
🎈🎉 Announcing Rust 1.31 and Rust 2018. 🎉🎈
https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html
Rust 2018 is here… but what is it?
https://hacks.mozilla.org/2018/12/rust-2018-is-here/
Reflecting on Rust and WebAssembly in 2018.
https://rustwasm.github.io/2018/12/06/reflecting-on-rust-and-wasm-in-2018.html
Rocket v0.4: Typed URIs, database support, revamped queries, & more.
https://rocket.rs/v0.4/news/2018-12-08-version-0.4/
Inside Rust's async transform.
https://blag.nemo157.com/2018/12/09/inside-rusts-async-transform.html
The Swiss army knife of hashmaps.
https://blog.waffles.space/2018/12/07/deep-dive-into-hashbrown/
Building Alexa Skills in Rust.
https://medium.com/@amalec/building-alexa-skills-in-rust-4cf54a497ea4
Wherefore art thou Romio? Romio is a port of a small part of the Tokio project to the newer futures APIs.
https://boats.gitlab.io/blog/post/romio/
Existential types in Rust.
https://adelbertc.github.io/posts/2018-12-10-rust-existentials.html
Currying in Rust.
https://hashnode.com/post/currying-in-rust-cjpfb0i2z00cm56s2aideuo4z
More on RLS version numbering.
https://www.ncameron.org/blog/more-on-rls-version-numbering/
Patterns of Refactoring C to Rust: The case of librnoscript.
https://people.gnome.org/~federico/blog/guadec-2018-presentation.html
Crate of the week: lsd
This week's crate is lsd, a colorful and fast ls replacement. Thanks to Pierre Peltier for the suggestion!
This week's crate is lsd, a colorful and fast ls replacement. Thanks to Pierre Peltier for the suggestion!
This week in Rust #265 — 18 dec 2018
https://this-week-in-rust.org/blog/2018/12/18/this-week-in-rust-265/
https://this-week-in-rust.org/blog/2018/12/18/this-week-in-rust-265/
Updates from core
x86: add the adx target feature to whitelist
https://github.com/rust-lang/rust/pull/56749
bump minimum required LLVM version to 6.0
https://github.com/rust-lang/rust/pull/56642
unconditionally emit the target-cpu LLVM attribute
https://github.com/rust-lang/rust/pull/56609
account for impl Trait when suggesting lifetime
https://github.com/rust-lang/rust/pull/56755
fixed issue with using Self ctor in typedefs
https://github.com/rust-lang/rust/pull/56850
clearer error message for dead assign
https://github.com/rust-lang/rust/pull/56439
emit error with span for empty asserts
https://github.com/rust-lang/rust/pull/56491
fix span for invalid number of parameters in trait method
https://github.com/rust-lang/rust/pull/56641
contexually dependent error message for E0424 when value is assigned to "self"
https://github.com/rust-lang/rust/pull/56572
don't depend on Allocation sizes for pattern length
https://github.com/rust-lang/rust/pull/56540
some cleanups around AllocId management
https://github.com/rust-lang/rust/pull/56461
improve MIR match generation for ranges
https://github.com/rust-lang/rust/pull/56810
rustc: add an unstable simd_select_bitmask intrinsic
https://github.com/rust-lang/rust/pull/56789
allow ptr::hash to accept fat pointers
https://github.com/rust-lang/rust/pull/56751
specialize: remove Boxes used by Children::insert
https://github.com/rust-lang/rust/pull/56744
infer: remove Box from a returned Iterator
infer: remove Box from a returned Iterator
TokenStream improvements
https://github.com/rust-lang/rust/pull/56737
remove tokenstream::Delimited
https://github.com/rust-lang/rust/pull/56369
overhaul FileSearch and SearchPaths
https://github.com/rust-lang/rust/pull/56090
SortedMap upgrades
https://github.com/rust-lang/rust/pull/56039
make const unsafe fn bodies unsafe
https://github.com/rust-lang/rust/pull/56706
self-profiler: add column for percent of total time
https://github.com/rust-lang/rust/pull/56702
#[must_use] on traits in stdlib
https://github.com/rust-lang/rust/pull/56677
fix BTreeMap UB
https://github.com/rust-lang/rust/pull/56648
std: activate compiler_builtins mem feature for no_std targets
https://github.com/rust-lang/rust/pull/56825
add checked_add method to Instant time type
https://github.com/rust-lang/rust/pull/56490
VecDeque: fix for stacked borrows
https://github.com/rust-lang/rust/pull/56161
std: depend directly on crates.io crates
https://github.com/rust-lang/rust/pull/56092
libtest: use deterministic HashMap, avoid spawning thread if there is no concurrency
https://github.com/rust-lang/rust/pull/56243
greatly improve rustdoc rendering speed issues
https://github.com/rust-lang/rust/pull/56005
rustdoc: fix local reexports of proc macros
https://github.com/rust-lang/rust/pull/56637
x86: add the adx target feature to whitelist
https://github.com/rust-lang/rust/pull/56749
bump minimum required LLVM version to 6.0
https://github.com/rust-lang/rust/pull/56642
unconditionally emit the target-cpu LLVM attribute
https://github.com/rust-lang/rust/pull/56609
account for impl Trait when suggesting lifetime
https://github.com/rust-lang/rust/pull/56755
fixed issue with using Self ctor in typedefs
https://github.com/rust-lang/rust/pull/56850
clearer error message for dead assign
https://github.com/rust-lang/rust/pull/56439
emit error with span for empty asserts
https://github.com/rust-lang/rust/pull/56491
fix span for invalid number of parameters in trait method
https://github.com/rust-lang/rust/pull/56641
contexually dependent error message for E0424 when value is assigned to "self"
https://github.com/rust-lang/rust/pull/56572
don't depend on Allocation sizes for pattern length
https://github.com/rust-lang/rust/pull/56540
some cleanups around AllocId management
https://github.com/rust-lang/rust/pull/56461
improve MIR match generation for ranges
https://github.com/rust-lang/rust/pull/56810
rustc: add an unstable simd_select_bitmask intrinsic
https://github.com/rust-lang/rust/pull/56789
allow ptr::hash to accept fat pointers
https://github.com/rust-lang/rust/pull/56751
specialize: remove Boxes used by Children::insert
https://github.com/rust-lang/rust/pull/56744
infer: remove Box from a returned Iterator
infer: remove Box from a returned Iterator
TokenStream improvements
https://github.com/rust-lang/rust/pull/56737
remove tokenstream::Delimited
https://github.com/rust-lang/rust/pull/56369
overhaul FileSearch and SearchPaths
https://github.com/rust-lang/rust/pull/56090
SortedMap upgrades
https://github.com/rust-lang/rust/pull/56039
make const unsafe fn bodies unsafe
https://github.com/rust-lang/rust/pull/56706
self-profiler: add column for percent of total time
https://github.com/rust-lang/rust/pull/56702
#[must_use] on traits in stdlib
https://github.com/rust-lang/rust/pull/56677
fix BTreeMap UB
https://github.com/rust-lang/rust/pull/56648
std: activate compiler_builtins mem feature for no_std targets
https://github.com/rust-lang/rust/pull/56825
add checked_add method to Instant time type
https://github.com/rust-lang/rust/pull/56490
VecDeque: fix for stacked borrows
https://github.com/rust-lang/rust/pull/56161
std: depend directly on crates.io crates
https://github.com/rust-lang/rust/pull/56092
libtest: use deterministic HashMap, avoid spawning thread if there is no concurrency
https://github.com/rust-lang/rust/pull/56243
greatly improve rustdoc rendering speed issues
https://github.com/rust-lang/rust/pull/56005
rustdoc: fix local reexports of proc macros
https://github.com/rust-lang/rust/pull/56637
News
Tools in the 2018 edition.
https://blog.rust-lang.org/2018/12/17/Rust-2018-dev-tools.html
Making Rust float parsing fast and correct.
https://www.reddit.com/r/rust/comments/a6j5j1/making_rust_float_parsing_fast_and_correct/
Bootstrapping Rust.
https://www.gnu.org/software/guix/blog/2018/bootstrapping-rust/
Async in Rust, circa 2018.
https://rust-lang-nursery.github.io/wg-net/2018/12/13/async-update.html
Rust Analyzer in 2018 and 2019.
https://ferrous-systems.com/blog/rust-analyzer-2019/
Rust and WebAssembly in 2019.
http://fitzgeraldnick.com/2018/12/14/rust-and-webassembly-in-2019.html
Storing unboxed trait objects in Rust.
https://guiand.xyz/blog-posts/unboxed-trait-objects.html
Currying in Rust — Part 2 (A glimpse of generics).
https://hashnode.com/post/currying-in-rust-part-2-a-glimpse-of-generics-cjphbgun90025pms241ggh3d9
Building a JS Interpreter in Rust part 1.
https://jason-williams.co.uk/building-a-js-interpreter-in-rust-part-1/
Edge programming with Rust and WebAssembly.
https://www.fastly.com/blog/edge-programming-rust-web-assembly
Tools in the 2018 edition.
https://blog.rust-lang.org/2018/12/17/Rust-2018-dev-tools.html
Making Rust float parsing fast and correct.
https://www.reddit.com/r/rust/comments/a6j5j1/making_rust_float_parsing_fast_and_correct/
Bootstrapping Rust.
https://www.gnu.org/software/guix/blog/2018/bootstrapping-rust/
Async in Rust, circa 2018.
https://rust-lang-nursery.github.io/wg-net/2018/12/13/async-update.html
Rust Analyzer in 2018 and 2019.
https://ferrous-systems.com/blog/rust-analyzer-2019/
Rust and WebAssembly in 2019.
http://fitzgeraldnick.com/2018/12/14/rust-and-webassembly-in-2019.html
Storing unboxed trait objects in Rust.
https://guiand.xyz/blog-posts/unboxed-trait-objects.html
Currying in Rust — Part 2 (A glimpse of generics).
https://hashnode.com/post/currying-in-rust-part-2-a-glimpse-of-generics-cjphbgun90025pms241ggh3d9
Building a JS Interpreter in Rust part 1.
https://jason-williams.co.uk/building-a-js-interpreter-in-rust-part-1/
Edge programming with Rust and WebAssembly.
https://www.fastly.com/blog/edge-programming-rust-web-assembly
Crate of the week: yaserde
This week's crate is yaserde, a specialized XML (de)serialization crate compatible with serde. Thanks to Marc Antoine Arnaud for the suggestion!
This week's crate is yaserde, a specialized XML (de)serialization crate compatible with serde. Thanks to Marc Antoine Arnaud for the suggestion!
This week in Rust #266 — 25 dec 2018
https://this-week-in-rust.org/blog/2018/12/25/this-week-in-rust-266/
https://this-week-in-rust.org/blog/2018/12/25/this-week-in-rust-266/
Updates from core
add targets thumbv7neon-linux-androideabi and thumbv7neon-unknown-linux-gnueabihf
https://github.com/rust-lang/rust/pull/56947
less conservative uninhabitedness check
https://github.com/rust-lang/rust/pull/54125
remove "visited" set from inhabitedness checking
https://github.com/rust-lang/rust/pull/57033
short-circuit DefIdForest::intersection()
https://github.com/rust-lang/rust/pull/57060
make the 'a lifetime on TyCtxt useless
https://github.com/rust-lang/rust/pull/56601
trigger unsized coercions keyed on Sized bounds
https://github.com/rust-lang/rust/pull/56219
fix various aspects around let bindings inside const functions
https://github.com/rust-lang/rust/pull/56160
deny intra-doc link resolution failures in libstd
https://github.com/rust-lang/rust/pull/56941
process nested obligations in autoderef
https://github.com/rust-lang/rust/pull/54252
mark tuple structs as live if their constructors are used
https://github.com/rust-lang/rust/pull/56953
fix alignment for array indexing
https://github.com/rust-lang/rust/pull/57053
enable emission of alignment attrs for pointer params
https://github.com/rust-lang/rust/pull/57021
enum type instead of variant suggestion unification
https://github.com/rust-lang/rust/pull/56188
make basic CTFE tracing available on release builds
https://github.com/rust-lang/rust/pull/56973
remove TokenStream::JointTree
https://github.com/rust-lang/rust/pull/56964
miri: allocation is infallible
https://github.com/rust-lang/rust/pull/56981
fix mutable references in static mut
https://github.com/rust-lang/rust/pull/56916
simplify MIR generation for logical operations
https://github.com/rust-lang/rust/pull/56917
static eval: do not ICE on layout size overflow
https://github.com/rust-lang/rust/pull/56909
disable field reordering for repr(int)
https://github.com/rust-lang/rust/pull/56887
always run rustc in a thread
https://github.com/rust-lang/rust/pull/56813
version-gate the trailing semicolon change of return statements inside a match arm
https://github.com/rust-lang/rustfmt/pull/3250
add DoubleEndedIterator::nth_back
https://github.com/rust-lang/rust/pull/56802
mir-opt: make SimplifyCfg collapse goto chains starting from bb0
https://github.com/rust-lang/rust/pull/56764
treat ref-to-raw cast like a reborrow: do a special kind of retag
https://github.com/rust-lang/rust/pull/56741
MIR borrowck doesn't accept the example of iterating and updating a mutable reference
https://github.com/rust-lang/rust/pull/56649
rework treatment of $crate in procedural macros
https://github.com/rust-lang/rust/pull/56647
tweak query code for performance
https://github.com/rust-lang/rust/pull/56613
implement Eq, PartialEq and Hash for atomic::Ordering
https://github.com/rust-lang/rust/pull/56881
add unstable VecDeque::rotate_{left, right}
https://github.com/rust-lang/rust/pull/56842
remove Cycle::try_fold override
https://github.com/rust-lang/rust/pull/56904
short-circuit Rc/Arc equality checking on equal pointers where T: Eq
https://github.com/rust-lang/rust/pull/56550
stabilize Rc, Arc and Pin as method receivers
https://github.com/rust-lang/rust/pull/56805
stabilize min_const_unsafe_fn in 1.33
https://github.com/rust-lang/rust/pull/57067
stabilize Vec(Deque)::resize_with
https://github.com/rust-lang/rust/pull/57002
stabilize Pin
https://github.com/rust-lang/rust/pull/56939
stabilize underscore_imports
https://github.com/rust-lang/rust/pull/56303
bootstrap: Link LLVM as a dylib with ThinLTO
https://github.com/rust-lang/rust/pull/56944
profiler: simplify total_duration, improve readability
https://github.com/rust-lang/rust/pull/56918
cargo: warn on unused patches
https://github.com/rust-lang/cargo/pull/6470
rustdoc: add new CLI flag to load static files from a different location
https://github.com/rust-lang/rust/pull/57011
add targets thumbv7neon-linux-androideabi and thumbv7neon-unknown-linux-gnueabihf
https://github.com/rust-lang/rust/pull/56947
less conservative uninhabitedness check
https://github.com/rust-lang/rust/pull/54125
remove "visited" set from inhabitedness checking
https://github.com/rust-lang/rust/pull/57033
short-circuit DefIdForest::intersection()
https://github.com/rust-lang/rust/pull/57060
make the 'a lifetime on TyCtxt useless
https://github.com/rust-lang/rust/pull/56601
trigger unsized coercions keyed on Sized bounds
https://github.com/rust-lang/rust/pull/56219
fix various aspects around let bindings inside const functions
https://github.com/rust-lang/rust/pull/56160
deny intra-doc link resolution failures in libstd
https://github.com/rust-lang/rust/pull/56941
process nested obligations in autoderef
https://github.com/rust-lang/rust/pull/54252
mark tuple structs as live if their constructors are used
https://github.com/rust-lang/rust/pull/56953
fix alignment for array indexing
https://github.com/rust-lang/rust/pull/57053
enable emission of alignment attrs for pointer params
https://github.com/rust-lang/rust/pull/57021
enum type instead of variant suggestion unification
https://github.com/rust-lang/rust/pull/56188
make basic CTFE tracing available on release builds
https://github.com/rust-lang/rust/pull/56973
remove TokenStream::JointTree
https://github.com/rust-lang/rust/pull/56964
miri: allocation is infallible
https://github.com/rust-lang/rust/pull/56981
fix mutable references in static mut
https://github.com/rust-lang/rust/pull/56916
simplify MIR generation for logical operations
https://github.com/rust-lang/rust/pull/56917
static eval: do not ICE on layout size overflow
https://github.com/rust-lang/rust/pull/56909
disable field reordering for repr(int)
https://github.com/rust-lang/rust/pull/56887
always run rustc in a thread
https://github.com/rust-lang/rust/pull/56813
version-gate the trailing semicolon change of return statements inside a match arm
https://github.com/rust-lang/rustfmt/pull/3250
add DoubleEndedIterator::nth_back
https://github.com/rust-lang/rust/pull/56802
mir-opt: make SimplifyCfg collapse goto chains starting from bb0
https://github.com/rust-lang/rust/pull/56764
treat ref-to-raw cast like a reborrow: do a special kind of retag
https://github.com/rust-lang/rust/pull/56741
MIR borrowck doesn't accept the example of iterating and updating a mutable reference
https://github.com/rust-lang/rust/pull/56649
rework treatment of $crate in procedural macros
https://github.com/rust-lang/rust/pull/56647
tweak query code for performance
https://github.com/rust-lang/rust/pull/56613
implement Eq, PartialEq and Hash for atomic::Ordering
https://github.com/rust-lang/rust/pull/56881
add unstable VecDeque::rotate_{left, right}
https://github.com/rust-lang/rust/pull/56842
remove Cycle::try_fold override
https://github.com/rust-lang/rust/pull/56904
short-circuit Rc/Arc equality checking on equal pointers where T: Eq
https://github.com/rust-lang/rust/pull/56550
stabilize Rc, Arc and Pin as method receivers
https://github.com/rust-lang/rust/pull/56805
stabilize min_const_unsafe_fn in 1.33
https://github.com/rust-lang/rust/pull/57067
stabilize Vec(Deque)::resize_with
https://github.com/rust-lang/rust/pull/57002
stabilize Pin
https://github.com/rust-lang/rust/pull/56939
stabilize underscore_imports
https://github.com/rust-lang/rust/pull/56303
bootstrap: Link LLVM as a dylib with ThinLTO
https://github.com/rust-lang/rust/pull/56944
profiler: simplify total_duration, improve readability
https://github.com/rust-lang/rust/pull/56918
cargo: warn on unused patches
https://github.com/rust-lang/cargo/pull/6470
rustdoc: add new CLI flag to load static files from a different location
https://github.com/rust-lang/rust/pull/57011
News
🎈🎉 Announcing Rust 1.31.1. 🎉🎈
https://blog.rust-lang.org/2018/12/20/Rust-1.31.1.html
Procedural macros in Rust 2018.
https://blog.rust-lang.org/2018/12/21/Procedural-Macros-in-Rust-2018.html
Tokio: A great 2018, an even better 2019.
https://tokio.rs/blog/2018-12-recap-2018/
Using C libraries un Rust: making a *-sys crate.
https://kornel.ski/rust-sys-crate
Rust asynchronous IO: from mio to coroutine.
https://github.com/Hexilee/async-io-demo
Methods for array initialization in Rust.
https://www.joshmcguigan.com/blog/array-initialization-rust/
Currying in rust Part 3 (The circle of life... aka why borrowchecker... why)!?
https://hashnode.com/post/currying-in-rust-part-3-the-circle-of-life-aka-why-borrowchecker-why-cjq3z1dd800dknds1sls4dqav
How to get better at Rust: For beginners.
https://hashnode.com/post/how-to-become-a-rust-super-developer-cjpv1ee7e000buhs2aqrdw2ym
🎈🎉 Announcing Rust 1.31.1. 🎉🎈
https://blog.rust-lang.org/2018/12/20/Rust-1.31.1.html
Procedural macros in Rust 2018.
https://blog.rust-lang.org/2018/12/21/Procedural-Macros-in-Rust-2018.html
Tokio: A great 2018, an even better 2019.
https://tokio.rs/blog/2018-12-recap-2018/
Using C libraries un Rust: making a *-sys crate.
https://kornel.ski/rust-sys-crate
Rust asynchronous IO: from mio to coroutine.
https://github.com/Hexilee/async-io-demo
Methods for array initialization in Rust.
https://www.joshmcguigan.com/blog/array-initialization-rust/
Currying in rust Part 3 (The circle of life... aka why borrowchecker... why)!?
https://hashnode.com/post/currying-in-rust-part-3-the-circle-of-life-aka-why-borrowchecker-why-cjq3z1dd800dknds1sls4dqav
How to get better at Rust: For beginners.
https://hashnode.com/post/how-to-become-a-rust-super-developer-cjpv1ee7e000buhs2aqrdw2ym
Crate of the week: sandspiel
This week's crate is sandspiel, a WASM-powered online sandbox automaton game. Thanks to Vikrant Chaudhary for the suggestion!
This week's crate is sandspiel, a WASM-powered online sandbox automaton game. Thanks to Vikrant Chaudhary for the suggestion!
This week in Rust #267 — 01 jan 2019
https://this-week-in-rust.org/blog/2019/01/01/this-week-in-rust-267/
https://this-week-in-rust.org/blog/2019/01/01/this-week-in-rust-267/
Updates from core
add -Z instrument-mcount
https://github.com/rust-lang/rust/pull/57220
parallel query tweaks
https://github.com/rust-lang/rust/pull/56983
move jemalloc from rustc_driver to rustc
https://github.com/rust-lang/rust/pull/56986
uninline some debugging code and use unlikely! macro
https://github.com/rust-lang/rust/pull/57035
resolve: fix an ICE in import validation
https://github.com/rust-lang/rust/pull/57160
resolve: fix another ICE in import validation
https://github.com/rust-lang/rust/pull/57181
AST/HIR: introduce ExprKind::Err for better error recovery in the front-end
https://github.com/rust-lang/rust/pull/56999
fix new unused patch warning
https://github.com/rust-lang/cargo/pull/6494
suggest .as_ref()? instead of ? in certain circumstances
https://github.com/rust-lang/rust-clippy/pull/3561
suggest .as_ref() when appropriate for Option and Result
https://github.com/rust-lang/rust/pull/57158
tweaks to format string diagnostics
https://github.com/rust-lang/rust/pull/57140
various changes to string format diagnostics
https://github.com/rust-lang/rust/pull/57069
point to cause of fn expected return type
https://github.com/rust-lang/rust/pull/57020
codegen: make zero-sized arrays affect alignment
https://github.com/rust-lang/rust-bindgen/pull/1477
make Alloc::check_bounds_ptr private; you should use Memory::check_bounds_ptr instead
https://github.com/rust-lang/rust/pull/57129
add Unpin to std prelude, not just core
https://github.com/rust-lang/rust/pull/57137
remove the private generic NonZero wrapper type
https://github.com/rust-lang/rust/pull/57133
stabilize Duration::{as_millis, as_micros, as_nanos}
https://github.com/rust-lang/rust/pull/57124
make the getter for NonZero types into a const fn
https://github.com/rust-lang/rust/pull/57167
make tm struct members public
https://github.com/rust-lang/libc/pull/1183
testsuite: require failing commands to check output
https://github.com/rust-lang/cargo/pull/6497
add -Z instrument-mcount
https://github.com/rust-lang/rust/pull/57220
parallel query tweaks
https://github.com/rust-lang/rust/pull/56983
move jemalloc from rustc_driver to rustc
https://github.com/rust-lang/rust/pull/56986
uninline some debugging code and use unlikely! macro
https://github.com/rust-lang/rust/pull/57035
resolve: fix an ICE in import validation
https://github.com/rust-lang/rust/pull/57160
resolve: fix another ICE in import validation
https://github.com/rust-lang/rust/pull/57181
AST/HIR: introduce ExprKind::Err for better error recovery in the front-end
https://github.com/rust-lang/rust/pull/56999
fix new unused patch warning
https://github.com/rust-lang/cargo/pull/6494
suggest .as_ref()? instead of ? in certain circumstances
https://github.com/rust-lang/rust-clippy/pull/3561
suggest .as_ref() when appropriate for Option and Result
https://github.com/rust-lang/rust/pull/57158
tweaks to format string diagnostics
https://github.com/rust-lang/rust/pull/57140
various changes to string format diagnostics
https://github.com/rust-lang/rust/pull/57069
point to cause of fn expected return type
https://github.com/rust-lang/rust/pull/57020
codegen: make zero-sized arrays affect alignment
https://github.com/rust-lang/rust-bindgen/pull/1477
make Alloc::check_bounds_ptr private; you should use Memory::check_bounds_ptr instead
https://github.com/rust-lang/rust/pull/57129
add Unpin to std prelude, not just core
https://github.com/rust-lang/rust/pull/57137
remove the private generic NonZero wrapper type
https://github.com/rust-lang/rust/pull/57133
stabilize Duration::{as_millis, as_micros, as_nanos}
https://github.com/rust-lang/rust/pull/57124
make the getter for NonZero types into a const fn
https://github.com/rust-lang/rust/pull/57167
make tm struct members public
https://github.com/rust-lang/libc/pull/1183
testsuite: require failing commands to check output
https://github.com/rust-lang/cargo/pull/6497
News
This year in gfx-rs: 2018.
https://gfx-rs.github.io/2018/12/27/this-year.html
Comparing Pythagorean triples in C++, D, and Rust.
https://atilanevesoncode.wordpress.com/2018/12/31/comparing-pythagorean-triples-in-c-d-and-rust/
My experience converting a Python library to Rust.
https://alantrick.ca/writings/programming/python_to_rust/
This year in gfx-rs: 2018.
https://gfx-rs.github.io/2018/12/27/this-year.html
Comparing Pythagorean triples in C++, D, and Rust.
https://atilanevesoncode.wordpress.com/2018/12/31/comparing-pythagorean-triples-in-c-d-and-rust/
My experience converting a Python library to Rust.
https://alantrick.ca/writings/programming/python_to_rust/
Crate of the week: Dose Response
This week's crate is Dose Response, an online-playable roguelike game with a probably bleak outcome. Thanks to Vikrant Chaudhary for the suggestion!
This week's crate is Dose Response, an online-playable roguelike game with a probably bleak outcome. Thanks to Vikrant Chaudhary for the suggestion!
This week in Rust #268 — 08 jan 2019
https://this-week-in-rust.org/blog/2019/01/08/this-week-in-rust-268/
https://this-week-in-rust.org/blog/2019/01/08/this-week-in-rust-268/
Updates from core
implement the Re-rebalance coherence RFC
https://github.com/rust-lang/rust/pull/56145
forbid recursive impl trait
https://github.com/rust-lang/rust/pull/56074
allow to dispatch fn traits depending on number of parameters
https://github.com/rust-lang/rust/pull/55986
rustc: fix regression where jemalloc isn't used
https://github.com/rust-lang/rust/pull/57287
syntax: fix regression in diagnostics for patterns in trait method parameters
https://github.com/rust-lang/rust/pull/57251
resolve: simplify treatment of ambiguity errors
https://github.com/rust-lang/rust/pull/57199
calculate privacy access only via query
https://github.com/rust-lang/rust/pull/57343
privacy: fix regression in impl reachability
https://github.com/rust-lang/rust/pull/57344
tweak unicode escape diagnostics
https://github.com/rust-lang/rust/pull/57210
suggest using raw identifiers in 2018 edition when using keywords
https://github.com/rust-lang/rust/pull/57209
do not complain about missing crate named as a keyword
https://github.com/rust-lang/rust/pull/57208
use structured suggestions for nonexistent fields
https://github.com/rust-lang/rust/pull/57047
use structured suggestion for method calls
https://github.com/rust-lang/rust/pull/57291
add specific diagnostic when attempting to transmute between equal generic types
https://github.com/rust-lang/rust/pull/57044
don't emit Unevaluated from const_eval
https://github.com/rust-lang/rust/pull/56723
make CompileController thread-safe
https://github.com/rust-lang/rust/pull/57308
NLL: user type annotations refactor, associated constant patterns and ref bindings
https://github.com/rust-lang/rust/pull/55937
universes
https://github.com/rust-lang/rust/pull/55517
rustdoc: force binary filename for compiled doctests
https://github.com/rust-lang/rust/pull/57338
improve Box<T> → Pin<Box<T>> conversion
https://github.com/rust-lang/rust/pull/57313
eliminate Receiver::recv_timeout panic
https://github.com/rust-lang/rust/pull/56827
VaList::copy should not require a mutable ref
https://github.com/rust-lang/rust/pull/57311
add duration constants
https://github.com/rust-lang/rust/pull/57375
NLL: fix bug in associated constant type annotations
https://github.com/rust-lang/rust/pull/57304
make sure feature gate errors are recoverable
https://github.com/rust-lang/rust/pull/57272
cargo: fix error message when resolving dependencies
https://github.com/rust-lang/cargo/pull/6510
implement the Re-rebalance coherence RFC
https://github.com/rust-lang/rust/pull/56145
forbid recursive impl trait
https://github.com/rust-lang/rust/pull/56074
allow to dispatch fn traits depending on number of parameters
https://github.com/rust-lang/rust/pull/55986
rustc: fix regression where jemalloc isn't used
https://github.com/rust-lang/rust/pull/57287
syntax: fix regression in diagnostics for patterns in trait method parameters
https://github.com/rust-lang/rust/pull/57251
resolve: simplify treatment of ambiguity errors
https://github.com/rust-lang/rust/pull/57199
calculate privacy access only via query
https://github.com/rust-lang/rust/pull/57343
privacy: fix regression in impl reachability
https://github.com/rust-lang/rust/pull/57344
tweak unicode escape diagnostics
https://github.com/rust-lang/rust/pull/57210
suggest using raw identifiers in 2018 edition when using keywords
https://github.com/rust-lang/rust/pull/57209
do not complain about missing crate named as a keyword
https://github.com/rust-lang/rust/pull/57208
use structured suggestions for nonexistent fields
https://github.com/rust-lang/rust/pull/57047
use structured suggestion for method calls
https://github.com/rust-lang/rust/pull/57291
add specific diagnostic when attempting to transmute between equal generic types
https://github.com/rust-lang/rust/pull/57044
don't emit Unevaluated from const_eval
https://github.com/rust-lang/rust/pull/56723
make CompileController thread-safe
https://github.com/rust-lang/rust/pull/57308
NLL: user type annotations refactor, associated constant patterns and ref bindings
https://github.com/rust-lang/rust/pull/55937
universes
https://github.com/rust-lang/rust/pull/55517
rustdoc: force binary filename for compiled doctests
https://github.com/rust-lang/rust/pull/57338
improve Box<T> → Pin<Box<T>> conversion
https://github.com/rust-lang/rust/pull/57313
eliminate Receiver::recv_timeout panic
https://github.com/rust-lang/rust/pull/56827
VaList::copy should not require a mutable ref
https://github.com/rust-lang/rust/pull/57311
add duration constants
https://github.com/rust-lang/rust/pull/57375
NLL: fix bug in associated constant type annotations
https://github.com/rust-lang/rust/pull/57304
make sure feature gate errors are recoverable
https://github.com/rust-lang/rust/pull/57272
cargo: fix error message when resolving dependencies
https://github.com/rust-lang/cargo/pull/6510
News
Rust cheat sheet for beginners.
https://www.breakdown-notes.com/make/load/rust_cs_canvas/true
Deriving traits in Rust with procedural macros.
https://naftuli.wtf/2019/01/02/rust-derive-macros/
Using Rust for Gamedev.
https://medium.com/@michelotti.matthew/using-rust-for-gamedev-2f60b0e4cc5c
Are we async yet?
https://areweasyncyet.rs/
Building a JS interpreter in Rust part 2.
https://jason-williams.co.uk/building-a-js-interpreter-in-rust-part-2
New Rustacean interview: Carol Nichols || Goulding and Jake Goulding. Talking with Carol and Jake about The Rust Programming Language, Rust in Motion, and Rust Belt Rust.
https://newrustacean.com/show_notes/interview/integer32/
Rust cheat sheet for beginners.
https://www.breakdown-notes.com/make/load/rust_cs_canvas/true
Deriving traits in Rust with procedural macros.
https://naftuli.wtf/2019/01/02/rust-derive-macros/
Using Rust for Gamedev.
https://medium.com/@michelotti.matthew/using-rust-for-gamedev-2f60b0e4cc5c
Are we async yet?
https://areweasyncyet.rs/
Building a JS interpreter in Rust part 2.
https://jason-williams.co.uk/building-a-js-interpreter-in-rust-part-2
New Rustacean interview: Carol Nichols || Goulding and Jake Goulding. Talking with Carol and Jake about The Rust Programming Language, Rust in Motion, and Rust Belt Rust.
https://newrustacean.com/show_notes/interview/integer32/
Crate of the week: gfx-hal
This week's crate is gfx-hal, a hardware abstraction layer for gfx-rs. Thanks to Vikrant Chaudhary for the suggestion!
This week's crate is gfx-hal, a hardware abstraction layer for gfx-rs. Thanks to Vikrant Chaudhary for the suggestion!
This week in Rust #269 — 15 jan 2019
https://this-week-in-rust.org/blog/2019/01/15/this-week-in-rust-269/
https://this-week-in-rust.org/blog/2019/01/15/this-week-in-rust-269/
Updates from core
add miri to rustup
https://github.com/rust-lang/rustup.rs/pull/1606
fix undefined behavior
https://github.com/rust-lang/rust/pull/57511
resolve: mark extern crate items as used in more cases
https://github.com/rust-lang/rust/pull/57557
clarify resolve typo suggestion
https://github.com/rust-lang/rust/pull/57477
privacy: fix private-in-public check for existential types
https://github.com/rust-lang/rust/pull/57556
tweak output of type mismatch between "then" and else if arms
https://github.com/rust-lang/rust/pull/57381
use structured suggestion when casting a reference
https://github.com/rust-lang/rust/pull/57493
use structured suggestions for nonstandard style lints
https://github.com/rust-lang/rust/pull/57387
point at match discriminant on type error in match arm pattern
https://github.com/rust-lang/rust/pull/57366
const-stabilize const_int_ops + const_ip
https://github.com/rust-lang/rust/pull/57234
don't actually create a full MIR stack frame when not needed
https://github.com/rust-lang/rust/pull/57351
speed up item_bodies for large match statements involving regions
https://github.com/rust-lang/rust/pull/57494
change String to &'static str in ParseResult::Failure
https://github.com/rust-lang/rust/pull/57461
parallelize and optimize parts of HIR map creation
https://github.com/rust-lang/rust/pull/57232
stabilize cfg_target_vendor
https://github.com/rust-lang/rust/pull/57465
stabilize cfg_attr_multi
https://github.com/rust-lang/rust/pull/57332
stabilize core::convert::identity
https://github.com/rust-lang/rust/pull/57322
stabilize let bindings and destructuring in constants and const fn
https://github.com/rust-lang/rust/pull/57175
clean up and optimize OpenTask / read_index
https://github.com/rust-lang/rust/pull/57114
NLL: add union justifications to conflicting borrows
https://github.com/rust-lang/rust/pull/57102
fix and optimize query profiling
https://github.com/rust-lang/rust/pull/57095
make TokenStream less recursive
https://github.com/rust-lang/rust/pull/57004
replace LockCell with atomic types
https://github.com/rust-lang/rust/pull/56614
make more passes incremental
https://github.com/rust-lang/rust/pull/51487
librustc_mir: fix ICE with slice patterns
https://github.com/rust-lang/rust/pull/57538
don't unwrap unexpected tokens in format!
https://github.com/rust-lang/rust/pull/57522
stabilize uniform_paths
https://github.com/rust-lang/rust/pull/56759
stabilize irrefutable if-let and while-let patterns
https://github.com/rust-lang/rust/pull/57535
stabilize if_while_or_patterns
https://github.com/rust-lang/rust/pull/57532
std: render large exit codes as hex on Windows
https://github.com/rust-lang/rust/pull/57473
add #[must_use] to Iterator and Future
https://github.com/rust-lang/rust/pull/57549
std: force Instant::now() to be monotonic
https://github.com/rust-lang/rust/pull/56988
optimise floating point is_finite (2x) and is_infinite (1.6x)
https://github.com/rust-lang/rust/pull/57353
cargo --{example,bin,bench,test} with no argument now lists all available targets
https://github.com/rust-lang/cargo/pull/6505
rustup: fix utils::copy_file for symlink
https://github.com/rust-lang/rustup.rs/pull/1521
rustdoc: allow inlining of reexported crates and crate items
https://github.com/rust-lang/rust/pull/57508
add miri to rustup
https://github.com/rust-lang/rustup.rs/pull/1606
fix undefined behavior
https://github.com/rust-lang/rust/pull/57511
resolve: mark extern crate items as used in more cases
https://github.com/rust-lang/rust/pull/57557
clarify resolve typo suggestion
https://github.com/rust-lang/rust/pull/57477
privacy: fix private-in-public check for existential types
https://github.com/rust-lang/rust/pull/57556
tweak output of type mismatch between "then" and else if arms
https://github.com/rust-lang/rust/pull/57381
use structured suggestion when casting a reference
https://github.com/rust-lang/rust/pull/57493
use structured suggestions for nonstandard style lints
https://github.com/rust-lang/rust/pull/57387
point at match discriminant on type error in match arm pattern
https://github.com/rust-lang/rust/pull/57366
const-stabilize const_int_ops + const_ip
https://github.com/rust-lang/rust/pull/57234
don't actually create a full MIR stack frame when not needed
https://github.com/rust-lang/rust/pull/57351
speed up item_bodies for large match statements involving regions
https://github.com/rust-lang/rust/pull/57494
change String to &'static str in ParseResult::Failure
https://github.com/rust-lang/rust/pull/57461
parallelize and optimize parts of HIR map creation
https://github.com/rust-lang/rust/pull/57232
stabilize cfg_target_vendor
https://github.com/rust-lang/rust/pull/57465
stabilize cfg_attr_multi
https://github.com/rust-lang/rust/pull/57332
stabilize core::convert::identity
https://github.com/rust-lang/rust/pull/57322
stabilize let bindings and destructuring in constants and const fn
https://github.com/rust-lang/rust/pull/57175
clean up and optimize OpenTask / read_index
https://github.com/rust-lang/rust/pull/57114
NLL: add union justifications to conflicting borrows
https://github.com/rust-lang/rust/pull/57102
fix and optimize query profiling
https://github.com/rust-lang/rust/pull/57095
make TokenStream less recursive
https://github.com/rust-lang/rust/pull/57004
replace LockCell with atomic types
https://github.com/rust-lang/rust/pull/56614
make more passes incremental
https://github.com/rust-lang/rust/pull/51487
librustc_mir: fix ICE with slice patterns
https://github.com/rust-lang/rust/pull/57538
don't unwrap unexpected tokens in format!
https://github.com/rust-lang/rust/pull/57522
stabilize uniform_paths
https://github.com/rust-lang/rust/pull/56759
stabilize irrefutable if-let and while-let patterns
https://github.com/rust-lang/rust/pull/57535
stabilize if_while_or_patterns
https://github.com/rust-lang/rust/pull/57532
std: render large exit codes as hex on Windows
https://github.com/rust-lang/rust/pull/57473
add #[must_use] to Iterator and Future
https://github.com/rust-lang/rust/pull/57549
std: force Instant::now() to be monotonic
https://github.com/rust-lang/rust/pull/56988
optimise floating point is_finite (2x) and is_infinite (1.6x)
https://github.com/rust-lang/rust/pull/57353
cargo --{example,bin,bench,test} with no argument now lists all available targets
https://github.com/rust-lang/cargo/pull/6505
rustup: fix utils::copy_file for symlink
https://github.com/rust-lang/rustup.rs/pull/1521
rustdoc: allow inlining of reexported crates and crate items
https://github.com/rust-lang/rust/pull/57508