2019.12.12

2019-12-12

Announcements

  • @pnkfelix posted an RFC about future-incompat lints RFC 2834

  • @eddyb landed some additional caching for trait selection which gives some nice speedups #66821

  • Const eval now has support for if/match and a PR for loop/while is open.

  • @eddyb is resurrecting their SROA MIR optimization #48300

Backport nominations

  • resolve: Always resolve visibilities on impl items #67236

    • Approved for beta backport
  • resolve: Resolve visibilities on fields with non-builtin attributes #67106

    • Approved for beta backport

Working group sync

wg-meta

  • Work has generally slowed down since the launch of the ICE breakers group.

  • Some planning for a new “reducer” group has begun.

wg-mir-opt

  • MIR does not know about static items anymore. Instead we just have a constant whose value is &YOUR_STATIC, &raw mut YOUR_MUT_STATIC or &raw YOUR_EXTERN_STATIC. This simplifies a lot of logic in the MIR and will (together with the next bullet point) allow PlaceBase to just be a Local (so a u32 index for a local to be accessed). #66587

  • @spastorino is about to finish a PR that removes promoteds from the list of things that are Places in MIR

  • mir::Body does not contain interior mutability components anymore. It used to have a cache of some information on the MIR CFG that could get cleared and reinitialized as required. This is abstracted away in the BodyCache type.

  • Promoteds inside constants and statics are now actually separated from their constant’s mir::Body instead of having a scheme around removing StorageDead statements #66642

  • Cross crate inlining now preserves debug info #66789

  • There is a new MIR optimization eliminating basic blocks that are unreachable because they are match arms of uninhabited variants #65694

  • There is a new MIR optimization to work around the problem that LLVM can’t figure out trivial match arms like Ok(x) => Ok(x) #66282

  • The const prop optimization now runs on all builds (even debug builds) because this gives quite some nice build time improvements #66074

  • We had a mir-opt room at RustFest, which was a total success and people loved it.