Subteam report: compiler 2016-02-12
Highlights
No firm decisions were reached, but we discussed two topics of general interest:
- RFCs #1477 and #1478, which discuss the intrinsics for doing atomic operations. At issue is what the behavior ought to be in the case of attempting to use the intrinsics with unsupported types -- the current behavior is an LLVM abort, which seems suboptimal.
- Whether or not to support MIR plugins. Preliminary support landed in a recent PR, but it's unclear if we will ever want to support MIR plugins long-term (and it's certainly too early to offer even the faintest of stability promises).
-- nmatsakis
Dashboard
RFC phase
- PR #1399: RFC: Add #[repr(pack = "N")]
- PR #1414: Add Rvalue-static-promotion RFC
- PR #1477: Generic atomic v2
- PR #1478: translate undefined intrinsics to an unreachable and a lint
Implementation phase
- Issue #5016: implement "dynamic drop" semantics using flags on the stack rather than zeroing
- Issue #12634: Replace various intrinsic wrappers with intrinsic reexports
- Issue #15023: Better temporary lifetimes (tracking issue for RFC 66)
- Issue #15287: Implement Pattern Guards with Bind-By-Move
- Issue #20561: Tracking issue for Consistent no-prelude attribute (RFC 501)
- Issue #27060: repr(packed) allows invalid unaligned loads
High priority issues
- Issue #15536: floating point to floating point casts have undefined behaviour
- Issue #22889:
Duplicate inherent static methods can be defined in separate
implblocks - Issue #29149: Lifetime bounds in Copy impls are ignored
- Issue #29859: Cyclic traits allow arbitrary traits to be synthesized
- Issue #30829: Code no longer builds because of RFC 1214
- Issue #31299: Bogus error in beta and nightly: recursive type has infinite size
- Issue #31504: ICE with nightly in LvalyeTy<'tcx>::protection_ty
- Issue #31567:
Dropand leaking&mutreferences
Needs decision
- Issue #29769: Mir: introduce overflow operations