Skip to content

C/QotW + notable changes #1323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 23, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 65 additions & 62 deletions draft/2020-06-23-this-week-in-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ Check out [this week's *This Week in Rust Podcast*]()

# Crate of the Week

This week's crate is [safer_ffi](https://github.com/getditto/safer_ffi), a library to help write safe FFI code.
This week's crate is [diskonaut](https://github.com/imsnif/diskonaut), a disk usage explorer.

Thanks to [Vlad Frolov](https://users.rust-lang.org/t/crate-of-the-week/2704/780) for the suggestion!
Thanks to [Aram Drevekenin](https://users.rust-lang.org/t/crate-of-the-week/2704/781) for the suggestion!

[Submit your suggestions and votes for next week][submit_crate]!

Expand All @@ -85,64 +85,67 @@ If you are a Rust project owner and are looking for contributors, please submit

# Updates from Rust Core

354 pull requests were [merged in the last week][merged]

[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2020-06-08..2020-06-15

* [enable AVR as a Tier 3 target upstream](https://github.com/rust-lang/rust/pull/69478)
* [enable LVI hardening for x86_64-fortanix-unknown-sgx](https://github.com/rust-lang/rust/pull/72655)
* [add `-Z span-debug` to allow for easier debugging of proc macros](https://github.com/rust-lang/rust/pull/72799)
* [add methods to go from a null-terminated `Vec<u8>` to a `CString`](https://github.com/rust-lang/rust/pull/73139)
* [check for live drops in constants after drop elaboration](https://github.com/rust-lang/rust/pull/71824)
* [display information about captured variable in `FnMut` error](https://github.com/rust-lang/rust/pull/72598)
* [don't create impl candidates when obligation contains errors](https://github.com/rust-lang/rust/pull/73005)
* [enforce unwind invariants](https://github.com/rust-lang/rust/pull/73133)
* [explain move errors that occur due to method calls involving `self`](https://github.com/rust-lang/rust/pull/72389)
* [fix `#[thread_local]` statics as `asm!` sym operands](https://github.com/rust-lang/rust/pull/73033)
* [fix trait alias inherent impl resolution](https://github.com/rust-lang/rust/pull/72556)
* [free `default()` forwarding to `Default::default()`](https://github.com/rust-lang/rust/pull/73001)
* [handle assembler warnings properly](https://github.com/rust-lang/rust/pull/73169)
* [on recursive ADT, provide indirection structured suggestion](https://github.com/rust-lang/rust/pull/72740)
* [provide suggestion to convert numeric op LHS rather than unwrapping RHS](https://github.com/rust-lang/rust/pull/73195)
* [querify whether a type has structural equality](https://github.com/rust-lang/rust/pull/73066)
* [relate existential associated types with variance Invariant](https://github.com/rust-lang/rust/pull/71896)
* [suggest including unused asm arguments in a comment to avoid error](https://github.com/rust-lang/rust/pull/73230)
* [support proc macros in intra doc link resolution](https://github.com/rust-lang/rust/pull/73183)
* [track span of function in method calls, and use this in `#[track_caller]`](https://github.com/rust-lang/rust/pull/73182)
* [use `min_specialization` in the remaining rustc crates](https://github.com/rust-lang/rust/pull/72707)
* [use shorthand linker strip arguments in order to support MacOS](https://github.com/rust-lang/rust/pull/73138)
* [expand: more precise locations for expansion-time lints](https://github.com/rust-lang/rust/pull/73178)
* [extend network support for HermitCore](https://github.com/rust-lang/rust/pull/73331)
* [fix caller_location intrinsic for Miri](https://github.com/rust-lang/rust/pull/73277)
* [improper ctypes: normalize return types and transparent structs](https://github.com/rust-lang/rust/pull/72890)
* [normalize adt fields during structural match checking](https://github.com/rust-lang/rust/pull/72897)
* [resolve: do not suggest imports from the same module in which we are resolving](https://github.com/rust-lang/rust/pull/72789)
* [structural_match: non-structural-match ty closures](https://github.com/rust-lang/rust/pull/73353)
* [chalk: add FnOnce trait, and provide impl for Function type](https://github.com/rust-lang/chalk/pull/494)
* [chalk: model function ABI in the Rust IR](https://github.com/rust-lang/chalk/pull/481)
* [chalk: recursive solver factoring and privacy](https://github.com/rust-lang/chalk/pull/513)
* [chalk: refactor ProgramClauseData to remove Implies variant](https://github.com/rust-lang/chalk/pull/514)
* [chalk: add `Unsize` trait implementation](https://github.com/rust-lang/chalk/pull/427)
* [miri: avoid tracking current location three times](https://github.com/rust-lang/rust/pull/72879)
* [remove `RawVec::reserve_in_place`](https://github.com/rust-lang/rust/pull/72417)
* [stabilize `Option::zip`](https://github.com/rust-lang/rust/pull/72938)
* [stabilize `vec::Drain::as_slice`](https://github.com/rust-lang/rust/pull/72584)
* [impl `AsRef<[T]>` for `vec::IntoIter<T>`](https://github.com/rust-lang/rust/pull/72583)
* [std: enable atomic.fence emission on wasm32](https://github.com/rust-lang/rust/pull/73036)
* [stdarch: fix x86 extract_epi{8,16} functions](https://github.com/rust-lang/stdarch/pull/868)
325 pull requests were [merged in the last week][merged]

[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2020-06-15..2020-06-22

* [add `asm!()` support for hexagon](https://github.com/rust-lang/rust/pull/73214)
* [enable LLVM zlib](https://github.com/rust-lang/rust/pull/72696)
* [add methods to go from a nul-terminated `Vec<u8>` to a `CString`](https://github.com/rust-lang/rust/pull/73139)
* [allow multiple `asm!` options groups and report an error on duplicate options](https://github.com/rust-lang/rust/pull/73227)
* [diagnose use of incompatible sanitizers](https://github.com/rust-lang/rust/pull/73347)
* [disallow loading crates with non-ascii identifier name](https://github.com/rust-lang/rust/pull/73305)
* [export `#[inline]` fns with extern indicators](https://github.com/rust-lang/rust/pull/73034)
* [fix up autoderef when reborrowing](https://github.com/rust-lang/rust/pull/72280)
* [further tweak lifetime errors involving `dyn Trait` and `impl Trait` in return position](https://github.com/rust-lang/rust/pull/72804)
* [implement crate-level-only lints checking.](https://github.com/rust-lang/rust/pull/73300)
* [implement new gdb/lldb pretty-printers](https://github.com/rust-lang/rust/pull/72357)
* [cargo: add environment variables to identify the binary and crate name](https://github.com/rust-lang/cargo/pull/8270)
* [cargo: allow passing a registry index url directly to `cargo install`](https://github.com/rust-lang/cargo/pull/8344)
* [cargo: fix doctests not running with `--target=HOST`](https://github.com/rust-lang/cargo/pull/8358)
* [cargo: support `{prefix}` and `{lowerprefix}` markers in `config.json` `dl` key](https://github.com/rust-lang/cargo/pull/8267)
* [crates.io: allow configuring the application's domain name](https://github.com/rust-lang/crates.io/pull/2543)
* [crates.io: modifiers/highlight-syntax: Disable aggressive whitespace stripping](https://github.com/rust-lang/crates.io/pull/2564)
* [doc: make impl block collapsible if it has an associated constant](https://github.com/rust-lang/rust/pull/71842)
* [docs.rs: add compression for uploaded documentation](https://github.com/rust-lang/docs.rs/pull/780)
* [docs.rs: limit the size of served files](https://github.com/rust-lang/docs.rs/pull/834)
* [clippy: macro use suggestion](https://github.com/rust-lang/rust-clippy/pull/5279)
* [clippy: let_and_return: avoid "does not live long enough" errors](https://github.com/rust-lang/rust-clippy/pull/5680)
* [rustfmt: pick up comments between visibility modifier and item name](https://github.com/rust-lang/rustfmt/pull/4239)
* [improve diagnostics for `let x += 1`](https://github.com/rust-lang/rust/pull/71976)
* [make `need_type_info_err` more conservative](https://github.com/rust-lang/rust/pull/73027)
* [make all uses of ty::Error delay a span bug](https://github.com/rust-lang/rust/pull/70551)
* [make new type param suggestion more targetted](https://github.com/rust-lang/rust/pull/73320)
* [make novel structural match violations not a `bug`](https://github.com/rust-lang/rust/pull/73446)
* [only display other method receiver candidates if they actually apply](https://github.com/rust-lang/rust/pull/73382)
* [prefer accessible paths in 'use' suggestions](https://github.com/rust-lang/rust/pull/72623)
* [prevent attacker from manipulating FPU tag word used in SGX enclave](https://github.com/rust-lang/rust/pull/73471)
* [projection bound validation](https://github.com/rust-lang/rust/pull/72788)
* [report error when casting an C-like enum implementing Drop](https://github.com/rust-lang/rust/pull/72331)
* [specialization is unsound](https://github.com/rust-lang/rust/pull/71420)
* [use min_specialization in the remaining rustc crates](https://github.com/rust-lang/rust/pull/72707)
* [add specialization of `ToString for char`](https://github.com/rust-lang/rust/pull/73465)
* [suggest `?Sized` when applicable for ADTs](https://github.com/rust-lang/rust/pull/73261)
* [support sanitizers on aarch64-unknown-linux-gnu](https://github.com/rust-lang/rust/pull/73058)
* [test that bounds checks are elided when slice len is checked up-front](https://github.com/rust-lang/rust/pull/73362)
* [try to suggest dereferences on trait selection failed](https://github.com/rust-lang/rust/pull/72456)
* [use track caller for bug! macro](https://github.com/rust-lang/rust/pull/73373)
* [forbid mutable references in all constant contexts except for const-fns](https://github.com/rust-lang/rust/pull/72934)
* [linker: MSVC supports linking static libraries as a whole archive](https://github.com/rust-lang/rust/pull/72785)
* [linker: never pass `-no-pie` to non-gnu linkers](https://github.com/rust-lang/rust/pull/73384)
* [lint: normalize projections using opaque types](https://github.com/rust-lang/rust/pull/73287)
* [add a lint to catch clashing `extern` fn declarations.](https://github.com/rust-lang/rust/pull/70946)
* [memory access sanity checks: abort instead of panic](https://github.com/rust-lang/rust/pull/73054)
* [pretty/mir: const value enums with no variants](https://github.com/rust-lang/rust/pull/73442)
* [store `ObligationCause` on the heap](https://github.com/rust-lang/rust/pull/72962)
* [chalk: add closures](https://github.com/rust-lang/chalk/pull/519)
* [chalk: ignore auto traits order](https://github.com/rust-lang/chalk/pull/531)
* [fix asinh of negative values](https://github.com/rust-lang/rust/pull/72486)
* [stabilize Option::zip](https://github.com/rust-lang/rust/pull/72938)
* [stabilize vec::Drain::as_slice](https://github.com/rust-lang/rust/pull/72584)
* [use `Ipv4Addr::from<[u8; 4]>` when possible](https://github.com/rust-lang/rust/pull/73389)
* [core/time: Add Duration methods for zero](https://github.com/rust-lang/rust/pull/72790)
* [deprecate wrapping_offset_from](https://github.com/rust-lang/rust/pull/73580)
* [impl PartialEq<Vec<B>> for &[A], &mut [A]](https://github.com/rust-lang/rust/pull/71660)
* [hashbrown: avoid creating small tables with a capacity of 1](https://github.com/rust-lang/hashbrown/pull/162)
* [stdarch: add AVX 512f gather, scatter and compare intrinsics](https://github.com/rust-lang/stdarch/pull/866)
* [cargo: adding environment variable CARGO_PKG_LICENSE](https://github.com/rust-lang/cargo/pull/8325)
* [cargo: cut down on data fetch from git dependencies](https://github.com/rust-lang/cargo/pull/8363)
* [cargo: fix doctests not running with --target=HOST](https://github.com/rust-lang/cargo/pull/8358)
* [cargo: fix order-dependent feature resolution.](https://github.com/rust-lang/cargo/pull/8395)
* [cargo: fix overzealous `clean -p` for reserved names](https://github.com/rust-lang/cargo/pull/8398)
* [cargo: support linker with -Zdoctest-xcompile.](https://github.com/rust-lang/cargo/pull/8359)
* [rustfmt: avoid using Symbol::intern](https://github.com/rust-lang/rustfmt/pull/4268)
* [rustfmt: ensure idempotency on empty match blocks](https://github.com/rust-lang/rustfmt/pull/4271)


## Rust Compiler Performance Triage

Expand Down Expand Up @@ -210,11 +213,11 @@ Email the [Rust Community Team][community] for access.

# Quote of the Week

> It feels like being part of a village that learns to love the dragon it battles.
> Rust's beauty lies in the countless decisions made by the development community that constantly make you feel like you can have ten cakes and eat all of them too.

– [turbinerneiter on Hacker News](https://news.ycombinator.com/item?id=23437950)
– [Jake McGinty et al on the tonari blog](https://blog.tonari.no/why-we-love-rust)

Thanks to [blonk](https://users.rust-lang.org/t/twir-quote-of-the-week/328/892) for the suggestions!
Thanks to [llogiq](https://users.rust-lang.org/t/twir-quote-of-the-week/328/896) for the suggestions!

[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)

Expand Down