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
News
Writing an OS in Rust: Introduction to paging.
https://os.phil-opp.com/paging-introduction/
Librnoscript is almost rustified now.
https://people.gnome.org/~federico/blog/librnoscript-is-almost-rustified.html
Understanding Rust lifetimes.
https://medium.com/nearprotocol/understanding-rust-lifetimes-e813bcd405fa
const types, traits and implementations in Rust.
https://varkor.github.io/blog/2019/01/11/const-types-traits-and-implementations-in-Rust.html
Generate Rust tests from data files.
https://blog.cyplo.net/posts/2018/12/generate-rust-tests-from-data.html
The evolution of a Rust programmer.
http://antoyo.ml/evolution-rust-programmer
Writing an OS in Rust: Introduction to paging.
https://os.phil-opp.com/paging-introduction/
Librnoscript is almost rustified now.
https://people.gnome.org/~federico/blog/librnoscript-is-almost-rustified.html
Understanding Rust lifetimes.
https://medium.com/nearprotocol/understanding-rust-lifetimes-e813bcd405fa
const types, traits and implementations in Rust.
https://varkor.github.io/blog/2019/01/11/const-types-traits-and-implementations-in-Rust.html
Generate Rust tests from data files.
https://blog.cyplo.net/posts/2018/12/generate-rust-tests-from-data.html
The evolution of a Rust programmer.
http://antoyo.ml/evolution-rust-programmer
Crate of the week: ropey
This week's crate is ropey, an editable text buffer data structure. Thanks to Vikrant Chaudhary for the suggestion!
This week's crate is ropey, an editable text buffer data structure. Thanks to Vikrant Chaudhary for the suggestion!
This week in Rust #270 — 22 jan 2019
https://this-week-in-rust.org/blog/2019/01/22/this-week-in-rust-270/
https://this-week-in-rust.org/blog/2019/01/22/this-week-in-rust-270/
Updates from core
rustc: Remove platform intrinsics crate
https://github.com/rust-lang/rust/pull/57416
implement new literal type Err
https://github.com/rust-lang/rust/pull/57651
Better lifetime error message
https://github.com/rust-lang/rust/pull/56479
Add span for malformed doc comment
https://github.com/rust-lang/rust/pull/57784
Add "dereference boxed value" suggestion
https://github.com/rust-lang/rust/pull/57783
Suggest correct cast for struct fields with shorthand syntax
https://github.com/rust-lang/rust/pull/57769
Continue parsing after parent type args and suggest using angle brackets
https://github.com/rust-lang/rust/pull/57768
Remove delay_span_bug from qualify_min_const_fn
https://github.com/rust-lang/rust/pull/57736
Use structured suggestion to surround struct literal with parenthesis
https://github.com/rust-lang/rust/pull/57725
Point at cause for expectation in return type type error
https://github.com/rust-lang/rust/pull/57723
Fix suggestions given mulitple bad lifetimes
https://github.com/rust-lang/rust/pull/57720
better error message for bad manifest with cargo install
https://github.com/rust-lang/cargo/pull/6560
add applicability to remaining suggestions
https://github.com/rust-lang/rust/pull/57699
use a faster early exit during region expansion
https://github.com/rust-lang/rust/pull/57697
Tweak expand_node
https://github.com/rust-lang/rust/pull/57719
simplify TokenStream some more
https://github.com/rust-lang/rust/pull/57486
redo hir::Stmt
https://github.com/rust-lang/rust/pull/57689
high priority resolutions for associated variants
https://github.com/rust-lang/rust/pull/57501
provide suggestion for invalid boolean cast
https://github.com/rust-lang/rust/pull/57481
two HIR tweaks
https://github.com/rust-lang/rust/pull/57658
librustc_metadata: pass a default value when unwrapping a span
https://github.com/rust-lang/rust/pull/57650
privacy: account for associated existential types
https://github.com/rust-lang/rust/pull/57649
use structured macro and path resolve suggestions
https://github.com/rust-lang/rust/pull/57635
unaccept extern_in_paths
https://github.com/rust-lang/rust/pull/57572
querify entry_fn
https://github.com/rust-lang/rust/pull/57573
querify local plugin_registrar_fn and proc_macro_decls_static
https://github.com/rust-lang/rust/pull/57570
modify some parser diagnostics to continue evaluating beyond the parser
https://github.com/rust-lang/rust/pull/57540
Fix poor worst case performance of set intersection
https://github.com/rust-lang/rust/pull/57043
add core::iter::once_with()
https://github.com/rust-lang/rust/pull/57579
Add is_sorted to Iterator and [T]
https://github.com/rust-lang/rust/pull/55045
add a debug_assert to Vec::set_len
https://github.com/rust-lang/rust/pull/57589
enhance Pin impl applicability for PartialEq and PartialOrd
https://github.com/rust-lang/rust/pull/57685
Change bounds on TryFrom blanket impl to use Into instead of From
https://github.com/rust-lang/rust/pull/56796
stabilize FileExt::read_exact_at/write_all_at
https://github.com/rust-lang/rust/pull/57625
rustdoc: Add option to persist doc test executables
https://github.com/rust-lang/rust/pull/56189
crates.io: Reject publishing of crates that depend on an alternative registry
https://github.com/rust-lang/crates.io/pull/1589
rustc: Remove platform intrinsics crate
https://github.com/rust-lang/rust/pull/57416
implement new literal type Err
https://github.com/rust-lang/rust/pull/57651
Better lifetime error message
https://github.com/rust-lang/rust/pull/56479
Add span for malformed doc comment
https://github.com/rust-lang/rust/pull/57784
Add "dereference boxed value" suggestion
https://github.com/rust-lang/rust/pull/57783
Suggest correct cast for struct fields with shorthand syntax
https://github.com/rust-lang/rust/pull/57769
Continue parsing after parent type args and suggest using angle brackets
https://github.com/rust-lang/rust/pull/57768
Remove delay_span_bug from qualify_min_const_fn
https://github.com/rust-lang/rust/pull/57736
Use structured suggestion to surround struct literal with parenthesis
https://github.com/rust-lang/rust/pull/57725
Point at cause for expectation in return type type error
https://github.com/rust-lang/rust/pull/57723
Fix suggestions given mulitple bad lifetimes
https://github.com/rust-lang/rust/pull/57720
better error message for bad manifest with cargo install
https://github.com/rust-lang/cargo/pull/6560
add applicability to remaining suggestions
https://github.com/rust-lang/rust/pull/57699
use a faster early exit during region expansion
https://github.com/rust-lang/rust/pull/57697
Tweak expand_node
https://github.com/rust-lang/rust/pull/57719
simplify TokenStream some more
https://github.com/rust-lang/rust/pull/57486
redo hir::Stmt
https://github.com/rust-lang/rust/pull/57689
high priority resolutions for associated variants
https://github.com/rust-lang/rust/pull/57501
provide suggestion for invalid boolean cast
https://github.com/rust-lang/rust/pull/57481
two HIR tweaks
https://github.com/rust-lang/rust/pull/57658
librustc_metadata: pass a default value when unwrapping a span
https://github.com/rust-lang/rust/pull/57650
privacy: account for associated existential types
https://github.com/rust-lang/rust/pull/57649
use structured macro and path resolve suggestions
https://github.com/rust-lang/rust/pull/57635
unaccept extern_in_paths
https://github.com/rust-lang/rust/pull/57572
querify entry_fn
https://github.com/rust-lang/rust/pull/57573
querify local plugin_registrar_fn and proc_macro_decls_static
https://github.com/rust-lang/rust/pull/57570
modify some parser diagnostics to continue evaluating beyond the parser
https://github.com/rust-lang/rust/pull/57540
Fix poor worst case performance of set intersection
https://github.com/rust-lang/rust/pull/57043
add core::iter::once_with()
https://github.com/rust-lang/rust/pull/57579
Add is_sorted to Iterator and [T]
https://github.com/rust-lang/rust/pull/55045
add a debug_assert to Vec::set_len
https://github.com/rust-lang/rust/pull/57589
enhance Pin impl applicability for PartialEq and PartialOrd
https://github.com/rust-lang/rust/pull/57685
Change bounds on TryFrom blanket impl to use Into instead of From
https://github.com/rust-lang/rust/pull/56796
stabilize FileExt::read_exact_at/write_all_at
https://github.com/rust-lang/rust/pull/57625
rustdoc: Add option to persist doc test executables
https://github.com/rust-lang/rust/pull/56189
crates.io: Reject publishing of crates that depend on an alternative registry
https://github.com/rust-lang/crates.io/pull/1589
News
🎈🎉 Announcing Rust 1.32.0. 🎉🎈
https://blog.rust-lang.org/2019/01/17/Rust-1.32.0.html
A bot for Starcraft in Rust, C, or any other language.
https://habr.com/en/post/436254/
Building JavaScript development tools in Rust.
https://freemasen.github.io/rusty-ecma-book/
Guide to rust-analyzer.
https://github.com/rust-analyzer/rust-analyzer/blob/e0d8c86563b72e5414cf10fe16da5e88201447e2/guide.md
The state of ggez, 2019.
https://wiki.alopex.li/TheStateOfGGEZ2019
proc-macro-rules - macro_rules patterns in procedural macros.
https://www.ncameron.org/blog/proc-macro-rules/
Polonius and region errors.
http://smallcultfollowing.com/babysteps/blog/2019/01/17/polonius-and-region-errors/
Why aren't my Rust threads running?
https://esimmler.com/why-arent-my-rust-threads-running/
Paw at Rust GUIs.
https://medium.com/@m.siglreith/paw-at-rust-guis-d4d848e14b94
Serialising Rust tests.
https://tech.labs.oliverwyman.com/blog/2019/01/14/serialising-rust-tests/
🎈🎉 Announcing Rust 1.32.0. 🎉🎈
https://blog.rust-lang.org/2019/01/17/Rust-1.32.0.html
A bot for Starcraft in Rust, C, or any other language.
https://habr.com/en/post/436254/
Building JavaScript development tools in Rust.
https://freemasen.github.io/rusty-ecma-book/
Guide to rust-analyzer.
https://github.com/rust-analyzer/rust-analyzer/blob/e0d8c86563b72e5414cf10fe16da5e88201447e2/guide.md
The state of ggez, 2019.
https://wiki.alopex.li/TheStateOfGGEZ2019
proc-macro-rules - macro_rules patterns in procedural macros.
https://www.ncameron.org/blog/proc-macro-rules/
Polonius and region errors.
http://smallcultfollowing.com/babysteps/blog/2019/01/17/polonius-and-region-errors/
Why aren't my Rust threads running?
https://esimmler.com/why-arent-my-rust-threads-running/
Paw at Rust GUIs.
https://medium.com/@m.siglreith/paw-at-rust-guis-d4d848e14b94
Serialising Rust tests.
https://tech.labs.oliverwyman.com/blog/2019/01/14/serialising-rust-tests/
Crate of the week: rust-analyzer
This week's crate is rust-analyzer, an experimental Rust compiler frontend for IDEs. Thanks to llogiq for the suggestion!
This week's crate is rust-analyzer, an experimental Rust compiler frontend for IDEs. Thanks to llogiq for the suggestion!
This week in Rust #271 — 29 jan 2019
https://this-week-in-rust.org/blog/2019/01/29/this-week-in-rust-271/
https://this-week-in-rust.org/blog/2019/01/29/this-week-in-rust-271/
Updates from core
enable RISC-V atomic compare and swap
https://github.com/rust-lang/rust/pull/57925
recover from parse errors in literal struct fields and incorrect float literals
https://github.com/rust-lang/rust/pull/57779
merge visitors in AST validation
https://github.com/rust-lang/rust/pull/57730
resolve: Fix span arithmetics in the import conflict error
https://github.com/rust-lang/rust/pull/57908
fix race condition when emitting stored diagnostics
https://github.com/rust-lang/rust/pull/57066
don't ICE when logging unusual types
https://github.com/rust-lang/rust/pull/57865
combine all builtin early lints
https://github.com/rust-lang/rust/pull/57726
add suggestion for moving type declaration before associated type bindings in generic arguments
https://github.com/rust-lang/rust/pull/57886
add suggestion for incorrect field syntax
https://github.com/rust-lang/rust/pull/57863
suggest removing leading left angle brackets
https://github.com/rust-lang/rust/pull/57852
add error for trailing angle brackets
https://github.com/rust-lang/rust/pull/57817
print visible name for types as well as modules
https://github.com/rust-lang/rust/pull/57802
use structured suggestion instead of notes
https://github.com/rust-lang/rust/pull/57795
explain type mismatch cause pointing to return type when it is impl Trait
https://github.com/rust-lang/rust/pull/57793
when using value after move, point at span of local
https://github.com/rust-lang/rust/pull/57294
conditionally skip two passes if their related attributes were not found
https://github.com/rust-lang/rust/pull/57691
fix evaluating trivial drop glue in constants
https://github.com/rust-lang/rust/pull/57734
const_eval: predetermine the layout of all locals when pushing a stack frame
https://github.com/rust-lang/rust/pull/57677
fix memory leak in P::filter_map
https://github.com/rust-lang/rust/pull/57667
get rid of the fake stack frame for reading from constants
https://github.com/rust-lang/rust/pull/57606
add intrinsic to create an integer bitmask from a vector mask
https://github.com/rust-lang/rust/pull/57269
un-deprecate mem::zeroed
https://github.com/rust-lang/rust/pull/57825
make MutexGuard's Debug implementation more useful
https://github.com/rust-lang/rust/pull/57703
make str indexing generic on SliceIndex
https://github.com/rust-lang/rust/pull/57604
small perf improvement for fmt
https://github.com/rust-lang/rust/pull/57537
add signed num::NonZeroI* types
https://github.com/rust-lang/rust/pull/57475
std: stabilize fixed-width integer atomics
https://github.com/rust-lang/rust/pull/57425
use pinning for generators to make trait safe
https://github.com/rust-lang/rust/pull/55704
implement optimize(size) and optimize(speed) attributes
https://github.com/rust-lang/rust/pull/55641
cargo: make incremental compilation the default for all profiles
https://github.com/rust-lang/cargo/pull/6564
rustdoc: fix ICE from loading proc-macro stubs
https://github.com/rust-lang/rust/pull/57846
enable RISC-V atomic compare and swap
https://github.com/rust-lang/rust/pull/57925
recover from parse errors in literal struct fields and incorrect float literals
https://github.com/rust-lang/rust/pull/57779
merge visitors in AST validation
https://github.com/rust-lang/rust/pull/57730
resolve: Fix span arithmetics in the import conflict error
https://github.com/rust-lang/rust/pull/57908
fix race condition when emitting stored diagnostics
https://github.com/rust-lang/rust/pull/57066
don't ICE when logging unusual types
https://github.com/rust-lang/rust/pull/57865
combine all builtin early lints
https://github.com/rust-lang/rust/pull/57726
add suggestion for moving type declaration before associated type bindings in generic arguments
https://github.com/rust-lang/rust/pull/57886
add suggestion for incorrect field syntax
https://github.com/rust-lang/rust/pull/57863
suggest removing leading left angle brackets
https://github.com/rust-lang/rust/pull/57852
add error for trailing angle brackets
https://github.com/rust-lang/rust/pull/57817
print visible name for types as well as modules
https://github.com/rust-lang/rust/pull/57802
use structured suggestion instead of notes
https://github.com/rust-lang/rust/pull/57795
explain type mismatch cause pointing to return type when it is impl Trait
https://github.com/rust-lang/rust/pull/57793
when using value after move, point at span of local
https://github.com/rust-lang/rust/pull/57294
conditionally skip two passes if their related attributes were not found
https://github.com/rust-lang/rust/pull/57691
fix evaluating trivial drop glue in constants
https://github.com/rust-lang/rust/pull/57734
const_eval: predetermine the layout of all locals when pushing a stack frame
https://github.com/rust-lang/rust/pull/57677
fix memory leak in P::filter_map
https://github.com/rust-lang/rust/pull/57667
get rid of the fake stack frame for reading from constants
https://github.com/rust-lang/rust/pull/57606
add intrinsic to create an integer bitmask from a vector mask
https://github.com/rust-lang/rust/pull/57269
un-deprecate mem::zeroed
https://github.com/rust-lang/rust/pull/57825
make MutexGuard's Debug implementation more useful
https://github.com/rust-lang/rust/pull/57703
make str indexing generic on SliceIndex
https://github.com/rust-lang/rust/pull/57604
small perf improvement for fmt
https://github.com/rust-lang/rust/pull/57537
add signed num::NonZeroI* types
https://github.com/rust-lang/rust/pull/57475
std: stabilize fixed-width integer atomics
https://github.com/rust-lang/rust/pull/57425
use pinning for generators to make trait safe
https://github.com/rust-lang/rust/pull/55704
implement optimize(size) and optimize(speed) attributes
https://github.com/rust-lang/rust/pull/55641
cargo: make incremental compilation the default for all profiles
https://github.com/rust-lang/cargo/pull/6564
rustdoc: fix ICE from loading proc-macro stubs
https://github.com/rust-lang/rust/pull/57846
News
Writing an OS in Rust: Advanced paging.
https://os.phil-opp.com/advanced-paging/
Embedding WebAssembly in your Rust application.
https://medium.com/wasmer/executing-webassembly-in-your-rust-application-d5cd32e8ce46
Lock-free Rust: Crossbeam in 2019.
https://stjepang.github.io/2019/01/29/lock-free-rust-crossbeam-in-2019.html
Performance of Rust's match vs. lookup tables.
https://kevinlynagh.com/notes/match-vs-lookup/
Librnoscript's GObject boilerplate is in Rust now.
https://people.gnome.org/~federico/blog/librnoscript-gobject-in-rust.html
Enjoy a slice of QUIC, and Rust. Quiche is an implementation of the QUIC transport protocol, by Cloudflare.
https://blog.cloudflare.com/enjoy-a-slice-of-quic-and-rust/
Exporting Serde types to TypeScript.
http://timryan.org/2019/01/22/exporting-serde-types-to-typenoscript.html
Writing an OS in Rust: Advanced paging.
https://os.phil-opp.com/advanced-paging/
Embedding WebAssembly in your Rust application.
https://medium.com/wasmer/executing-webassembly-in-your-rust-application-d5cd32e8ce46
Lock-free Rust: Crossbeam in 2019.
https://stjepang.github.io/2019/01/29/lock-free-rust-crossbeam-in-2019.html
Performance of Rust's match vs. lookup tables.
https://kevinlynagh.com/notes/match-vs-lookup/
Librnoscript's GObject boilerplate is in Rust now.
https://people.gnome.org/~federico/blog/librnoscript-gobject-in-rust.html
Enjoy a slice of QUIC, and Rust. Quiche is an implementation of the QUIC transport protocol, by Cloudflare.
https://blog.cloudflare.com/enjoy-a-slice-of-quic-and-rust/
Exporting Serde types to TypeScript.
http://timryan.org/2019/01/22/exporting-serde-types-to-typenoscript.html
Crate of the week: typetag
This week's crate is typetag, a small crate to allow for serde trait objects. Thanks to Christopher Durham for the suggestion!
This week's crate is typetag, a small crate to allow for serde trait objects. Thanks to Christopher Durham for the suggestion!
This week in Rust #272 — 05 feb 2019
https://this-week-in-rust.org/blog/2019/02/05/this-week-in-rust-272/
https://this-week-in-rust.org/blog/2019/02/05/this-week-in-rust-272/
Updates from core
HirIdification: add key HirId methods
https://github.com/rust-lang/rust/pull/58090
don't panic when accessing enum variant ctor using Self in match
https://github.com/rust-lang/rust/pull/58007
use LLVM intrinsics for saturating add/sub
https://github.com/rust-lang/rust/pull/58003
add MOVBE x86 CPU feature
https://github.com/rust-lang/rust/pull/57999
NVPTX target specification
https://github.com/rust-lang/rust/pull/57937
fix bug in integer range matching
https://github.com/rust-lang/rust/pull/57978
unused variable suggestions apply on all patterns
https://github.com/rust-lang/rust/pull/57899
add information to higher-ranked lifetimes conflicts error messages
https://github.com/rust-lang/rust/pull/57901
rustc: use multiple threads by default
https://github.com/rust-lang/rust/pull/57948
misc performance tweaks
https://github.com/rust-lang/rust/pull/57916
simplify ConstValue::ScalarPair
https://github.com/rust-lang/rust/pull/57442
mark str::trim* functions as #[must_use]
https://github.com/rust-lang/rust/pull/57106
override VecDeque's Iter::try_fold
https://github.com/rust-lang/rust/pull/57974
introduce into_raw_non_null on Rc and Arc
https://github.com/rust-lang/rust/pull/57934
implement Weak::{strong_count, weak_count}
https://github.com/rust-lang/rust/pull/56696
rename iter::unfold to iter::from_fn and remove explicit state
https://github.com/rust-lang/rust/pull/58062
stabilize std::error::Error::type_id
https://github.com/rust-lang/rust/pull/58048
stabilize split_ascii_whitespace
https://github.com/rust-lang/rust/pull/58047
cargo: fix overlapping progress with stdout
https://github.com/rust-lang/cargo/pull/6618
cargo: improve progress bar flickering
https://github.com/rust-lang/cargo/pull/6615
HirIdification: add key HirId methods
https://github.com/rust-lang/rust/pull/58090
don't panic when accessing enum variant ctor using Self in match
https://github.com/rust-lang/rust/pull/58007
use LLVM intrinsics for saturating add/sub
https://github.com/rust-lang/rust/pull/58003
add MOVBE x86 CPU feature
https://github.com/rust-lang/rust/pull/57999
NVPTX target specification
https://github.com/rust-lang/rust/pull/57937
fix bug in integer range matching
https://github.com/rust-lang/rust/pull/57978
unused variable suggestions apply on all patterns
https://github.com/rust-lang/rust/pull/57899
add information to higher-ranked lifetimes conflicts error messages
https://github.com/rust-lang/rust/pull/57901
rustc: use multiple threads by default
https://github.com/rust-lang/rust/pull/57948
misc performance tweaks
https://github.com/rust-lang/rust/pull/57916
simplify ConstValue::ScalarPair
https://github.com/rust-lang/rust/pull/57442
mark str::trim* functions as #[must_use]
https://github.com/rust-lang/rust/pull/57106
override VecDeque's Iter::try_fold
https://github.com/rust-lang/rust/pull/57974
introduce into_raw_non_null on Rc and Arc
https://github.com/rust-lang/rust/pull/57934
implement Weak::{strong_count, weak_count}
https://github.com/rust-lang/rust/pull/56696
rename iter::unfold to iter::from_fn and remove explicit state
https://github.com/rust-lang/rust/pull/58062
stabilize std::error::Error::type_id
https://github.com/rust-lang/rust/pull/58048
stabilize split_ascii_whitespace
https://github.com/rust-lang/rust/pull/58047
cargo: fix overlapping progress with stdout
https://github.com/rust-lang/cargo/pull/6618
cargo: improve progress bar flickering
https://github.com/rust-lang/cargo/pull/6615
News
Cargo's next few years.
https://www.ncameron.org/blog/cargos-next-few-years/
The steps towards rustc, the great optimiser.
https://kazlauskas.me/entries/the-road-to-bestest-optimiser.html
Salsa: Incremental recompilation.
http://smallcultfollowing.com/babysteps/blog/2019/01/29/salsa-incremental-recompilation/
Collection of Rust hacks.
https://vorner.github.io/2019/02/03/hacks.html
Writing Neovim plugins in Rust.
https://medium.com/@srishanbhattarai/a-detailed-guide-to-writing-your-first-neovim-plugin-in-rust-a81604c606b1
osaka.rs - rust async without the noise.
https://aep.github.io/rust-async-without-the-noise/
Rust on iOS (and Android).
https://medium.com/visly/rust-on-ios-39f799b3c1dd
Rust: regretless concurrency.
https://medium.com/@polyglot_factotum/rust-regret-less-concurrency-2238b9e53333
Learning Rust via Advent of Code.
https://www.forrestthewoods.com/blog/learning-rust-via-advent-of-code/
Creating web-server .deb binary with rust.
https://gill.net.in/posts/creating-web-server-deb-binary-with-rust/
An introduction to the Rust programming language for Node developers.
https://twitter.com/PipoPeperoni/status/1092842843637456899
Cargo's next few years.
https://www.ncameron.org/blog/cargos-next-few-years/
The steps towards rustc, the great optimiser.
https://kazlauskas.me/entries/the-road-to-bestest-optimiser.html
Salsa: Incremental recompilation.
http://smallcultfollowing.com/babysteps/blog/2019/01/29/salsa-incremental-recompilation/
Collection of Rust hacks.
https://vorner.github.io/2019/02/03/hacks.html
Writing Neovim plugins in Rust.
https://medium.com/@srishanbhattarai/a-detailed-guide-to-writing-your-first-neovim-plugin-in-rust-a81604c606b1
osaka.rs - rust async without the noise.
https://aep.github.io/rust-async-without-the-noise/
Rust on iOS (and Android).
https://medium.com/visly/rust-on-ios-39f799b3c1dd
Rust: regretless concurrency.
https://medium.com/@polyglot_factotum/rust-regret-less-concurrency-2238b9e53333
Learning Rust via Advent of Code.
https://www.forrestthewoods.com/blog/learning-rust-via-advent-of-code/
Creating web-server .deb binary with rust.
https://gill.net.in/posts/creating-web-server-deb-binary-with-rust/
An introduction to the Rust programming language for Node developers.
https://twitter.com/PipoPeperoni/status/1092842843637456899
Crate of the week: log-derive
This week's crate is log-derive, a procedural macro to log function outputs. Thanks to elichai2 for the suggestion!
This week's crate is log-derive, a procedural macro to log function outputs. Thanks to elichai2 for the suggestion!
This week in Rust #273 — 12 feb 2019
https://this-week-in-rust.org/blog/2019/02/12/this-week-in-rust-273/
https://this-week-in-rust.org/blog/2019/02/12/this-week-in-rust-273/
Updates from core
Initial addition of the Embedded Rust Book.
https://github.com/rust-lang/rust/pull/56291
Add const generics to the AST.
https://github.com/rust-lang/rust/pull/58191
Error on duplicate matcher bindings.
https://github.com/rust-lang/rust/pull/57617
libc: RFC 2235 - Implement PartialEq,Eq,Hash,Debug for all types.
https://github.com/rust-lang/libc/pull/1217
Lower constant patterns with ascribed types.
https://github.com/rust-lang/rust/pull/58161
Make intern_lazy_const actually intern its argument.
https://github.com/rust-lang/rust/pull/58207
Avoid committing to autoderef in object method probing.
https://github.com/rust-lang/rust/pull/57885
Add #[must_use] to core::task::Poll.
https://github.com/rust-lang/rust/pull/58145
Add #[must_use] message to Fn* traits.
https://github.com/rust-lang/rust/pull/58262
Avoid some bounds checks in binary_heap::{PeekMut,Hole}.
https://github.com/rust-lang/rust/pull/58123
Make -Zdump-mir dump shims.
https://github.com/rust-lang/rust/pull/58103
Cargo: Bail when trying to run "test --doc --no-run".
https://github.com/rust-lang/cargo/pull/6628
Improve error message and docs for non-UTF-8 bytes in stdio on Windows.
https://github.com/rust-lang/rust/pull/58136
Move privacy checking later in the pipeline and make some passes run in parallel.
https://github.com/rust-lang/rust/pull/58010
Overhaul syntax::fold::Folder.
https://github.com/rust-lang/rust/pull/58061
Factor out error reporting from smart_resolve_path_fragment fn.
https://github.com/rust-lang/rust/pull/58065
Do not ICE in codegen when using a extern_type static.
https://github.com/rust-lang/rust/pull/58192
hir: add more HirId methods.
https://github.com/rust-lang/rust/pull/58139
Implement more detailed self profiling.
https://github.com/rust-lang/rust/pull/58085
Add a forever unstable opt-out of const qualification checks.
https://github.com/rust-lang/rust/pull/56123
Initial implementation of rustfixable unused_imports lint.
https://github.com/rust-lang/rust/pull/56645
Add a query type which is always marked as red if it runs.
https://github.com/rust-lang/rust/pull/57770
Don't try to clean predicates involving ReErased.
https://github.com/rust-lang/rust/pull/57851
Deduplicate mismatched delimiter errors.
https://github.com/rust-lang/rust/pull/57944
Add suggestion for duplicated import.
https://github.com/rust-lang/rust/pull/57973
Allow #[repr(align(x))] on enums.
https://github.com/rust-lang/rust/pull/57998
Initial addition of the Embedded Rust Book.
https://github.com/rust-lang/rust/pull/56291
Add const generics to the AST.
https://github.com/rust-lang/rust/pull/58191
Error on duplicate matcher bindings.
https://github.com/rust-lang/rust/pull/57617
libc: RFC 2235 - Implement PartialEq,Eq,Hash,Debug for all types.
https://github.com/rust-lang/libc/pull/1217
Lower constant patterns with ascribed types.
https://github.com/rust-lang/rust/pull/58161
Make intern_lazy_const actually intern its argument.
https://github.com/rust-lang/rust/pull/58207
Avoid committing to autoderef in object method probing.
https://github.com/rust-lang/rust/pull/57885
Add #[must_use] to core::task::Poll.
https://github.com/rust-lang/rust/pull/58145
Add #[must_use] message to Fn* traits.
https://github.com/rust-lang/rust/pull/58262
Avoid some bounds checks in binary_heap::{PeekMut,Hole}.
https://github.com/rust-lang/rust/pull/58123
Make -Zdump-mir dump shims.
https://github.com/rust-lang/rust/pull/58103
Cargo: Bail when trying to run "test --doc --no-run".
https://github.com/rust-lang/cargo/pull/6628
Improve error message and docs for non-UTF-8 bytes in stdio on Windows.
https://github.com/rust-lang/rust/pull/58136
Move privacy checking later in the pipeline and make some passes run in parallel.
https://github.com/rust-lang/rust/pull/58010
Overhaul syntax::fold::Folder.
https://github.com/rust-lang/rust/pull/58061
Factor out error reporting from smart_resolve_path_fragment fn.
https://github.com/rust-lang/rust/pull/58065
Do not ICE in codegen when using a extern_type static.
https://github.com/rust-lang/rust/pull/58192
hir: add more HirId methods.
https://github.com/rust-lang/rust/pull/58139
Implement more detailed self profiling.
https://github.com/rust-lang/rust/pull/58085
Add a forever unstable opt-out of const qualification checks.
https://github.com/rust-lang/rust/pull/56123
Initial implementation of rustfixable unused_imports lint.
https://github.com/rust-lang/rust/pull/56645
Add a query type which is always marked as red if it runs.
https://github.com/rust-lang/rust/pull/57770
Don't try to clean predicates involving ReErased.
https://github.com/rust-lang/rust/pull/57851
Deduplicate mismatched delimiter errors.
https://github.com/rust-lang/rust/pull/57944
Add suggestion for duplicated import.
https://github.com/rust-lang/rust/pull/57973
Allow #[repr(align(x))] on enums.
https://github.com/rust-lang/rust/pull/57998
News
Learning Rust in 2019.
https://www.ragona.com/posts/learning_rust_2019
A quick look at trait objects in Rust.
https://tratt.net/laurie/blog/entries/a_quick_look_at_trait_objects_in_rust.html
Allocations in Rust: An introduction to the memory model.
https://speice.io/2019/02/understanding-allocations-in-rust.html
Custom exit status codes with ? in main.
https://www.joshmcguigan.com/blog/custom-exit-status-codes-rust/
Rust: a unique perspective.
https://limpet.net/mbrubeck/2019/02/07/rust-a-unique-perspective.html
Rust on STM32: Blinking an LED.
https://jonathanklimt.de/electrics/programming/rust-STM32F103-blink/
Generators I: Toward a minimum viable product.
https://boats.gitlab.io/blog/post/generators-i/
Aturon retires from the Core Team (but not from Rust).
https://internals.rust-lang.org/t/aturon-retires-from-the-core-team-but-not-from-rust/9392
Rewriting stackcollapse-xdebug in Rust.
https://daniellockyer.com/rewriting-stackcollapse-xdebug/
Are you still using 'println' in Rust for debugging?
https://blog.knoldus.com/are-you-still-using-println-in-rust-for-debugging/
UCG+Miri All-Hands 2019 Recap.
https://www.ralfj.de/blog/2019/02/12/all-hands-recap.html
Learning Rust in 2019.
https://www.ragona.com/posts/learning_rust_2019
A quick look at trait objects in Rust.
https://tratt.net/laurie/blog/entries/a_quick_look_at_trait_objects_in_rust.html
Allocations in Rust: An introduction to the memory model.
https://speice.io/2019/02/understanding-allocations-in-rust.html
Custom exit status codes with ? in main.
https://www.joshmcguigan.com/blog/custom-exit-status-codes-rust/
Rust: a unique perspective.
https://limpet.net/mbrubeck/2019/02/07/rust-a-unique-perspective.html
Rust on STM32: Blinking an LED.
https://jonathanklimt.de/electrics/programming/rust-STM32F103-blink/
Generators I: Toward a minimum viable product.
https://boats.gitlab.io/blog/post/generators-i/
Aturon retires from the Core Team (but not from Rust).
https://internals.rust-lang.org/t/aturon-retires-from-the-core-team-but-not-from-rust/9392
Rewriting stackcollapse-xdebug in Rust.
https://daniellockyer.com/rewriting-stackcollapse-xdebug/
Are you still using 'println' in Rust for debugging?
https://blog.knoldus.com/are-you-still-using-println-in-rust-for-debugging/
UCG+Miri All-Hands 2019 Recap.
https://www.ralfj.de/blog/2019/02/12/all-hands-recap.html
Crate of the week: sysinfo
This week's crate is sysinfo, a system handler to get information and interact with processes. Thanks to GuillaumeGomez for the suggestion!
This week's crate is sysinfo, a system handler to get information and interact with processes. Thanks to GuillaumeGomez for the suggestion!
This week in Rust #274 — 19 feb 2019
https://this-week-in-rust.org/blog/2019/02/19/this-week-in-rust-274/
https://this-week-in-rust.org/blog/2019/02/19/this-week-in-rust-274/
Updates from core
Implement incremental "fat" LTO
https://github.com/rust-lang/rust/pull/58378
Enable comparing fat pointers
https://github.com/rust-lang/rust/pull/58301
impl iter() for dyn Error
https://github.com/rust-lang/rust/pull/58289
Improve the error messages for missing stability attributes
https://github.com/rust-lang/rust/pull/58276
Cut down on number formating code size
https://github.com/rust-lang/rust/pull/58272
Reduce the size of hir::Expr
https://github.com/rust-lang/rust/pull/58258
Make saturating_add and saturating_sub const functions
https://github.com/rust-lang/rust/pull/58246
Stabilize slice_sort_by_cached_key
https://github.com/rust-lang/rust/pull/58074
Stabilize str::escape_* methods with new return types
https://github.com/rust-lang/rust/pull/58051
Stabilize the time_checked_add feature
https://github.com/rust-lang/rust/pull/58034
Update the future/task API
https://github.com/rust-lang/rust/pull/57992
Speed up the fast path for assert_eq! and assert_ne!
https://github.com/rust-lang/rust/pull/57815
cargo: Stabilize Alternative Registries
https://github.com/rust-lang/cargo/pull/6654
Implement incremental "fat" LTO
https://github.com/rust-lang/rust/pull/58378
Enable comparing fat pointers
https://github.com/rust-lang/rust/pull/58301
impl iter() for dyn Error
https://github.com/rust-lang/rust/pull/58289
Improve the error messages for missing stability attributes
https://github.com/rust-lang/rust/pull/58276
Cut down on number formating code size
https://github.com/rust-lang/rust/pull/58272
Reduce the size of hir::Expr
https://github.com/rust-lang/rust/pull/58258
Make saturating_add and saturating_sub const functions
https://github.com/rust-lang/rust/pull/58246
Stabilize slice_sort_by_cached_key
https://github.com/rust-lang/rust/pull/58074
Stabilize str::escape_* methods with new return types
https://github.com/rust-lang/rust/pull/58051
Stabilize the time_checked_add feature
https://github.com/rust-lang/rust/pull/58034
Update the future/task API
https://github.com/rust-lang/rust/pull/57992
Speed up the fast path for assert_eq! and assert_ne!
https://github.com/rust-lang/rust/pull/57815
cargo: Stabilize Alternative Registries
https://github.com/rust-lang/cargo/pull/6654