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 forloop
/while
is open.
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) allowPlaceBase
to just be aLocal
(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
Place
s 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 theBodyCache
type. -
Promoteds inside constants and statics are now actually separated from their constant’s
mir::Body
instead of having a scheme around removingStorageDead
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.