Subteam report: lang 2016-05-07
Highlights
The most exciting thing that happened this week was that Eduard-Mihai Burtescu, more commonly known as eddyb, joined the language design team. Eddy has been involved in hacking on the compiler for years, and he has shown quite an astute sense for language design questions over the years. We are very excited to have him on board.
In terms of pending RFCs, we decided not to decide on the question of
#[repr(align)] just yet, since the proper interaction between
align and packed is still unclear. We proposed just
making it an error to combine them for the time being and settling it
later.
We introduced the following RFCs into FCP:
Both of them are (directly or indirectly) targeting the topic of atomic operations applied across more types.
The following RFCs remain in FCP, mainly because of lack of time to discuss and consider them this week:
- [RFC 1492][] proposes to permit
..notation in patterns as a more general replacement to_, so that one can write a pattern likeFoo(x, ..)instead ofFoo(x, _, _, _). - [RFC 1592][] is a small amendment that corrects an oversight in the
original well-formedness RFC, by making tuples require that all
elements except for the last element be
Sized(just as structs do).
-- nmatsakis
Dashboard
RFC phase
- Issue #1593:
RFC 401 should account for
Derefcoercions - PR #1180:
Propose
Interior<T>data-type, to allow moves out of the dropped value during the drop hook. - PR #1248: Safe intrinsics RFC
- PR #1296:
RFC: Add an
aliasattribute to #[link] and -l - PR #1305: Abstract output type parameters
- PR #1327: Dropck Eyepatch RFC.
- PR #1379: Change thread local variables to only accept async-signal-safe types.
- PR #1406: Rfc: delegation of implementation
- PR #1408: Delayed resolution
- PR #1414: Add Rvalue-static-promotion RFC
- PR #1426: Placement in/box refinement
- PR #1431: Statically dispatched methods for trait objects with associated data
- PR #1449: Add language support for bitfields
- PR #1450: Types for enum variants
- PR #1459: Add a used attribute
- PR #1504: Add support for 128-bit integers
- PR #1506: Clarify the relationships between various kinds of structs and variants
- PR #1517: RFC: Exclude macros from importing with #[macro_use(not(...))]
- PR #1522:
Minimal
impl Trait - PR #1524: Custom Dynamically Sized Types for Rust
- PR #1546: Allow fields in traits that map to lvalues in impl'ing type
- PR #1548: Add global_asm! for module-level inline assembly
- PR #1558: RFC: Allow coercing non-capturing closures to function pointers.
- PR #1559: RFC: Allow all literals in attributes
- PR #1560: Changes to name resolution
- PR #1561: Macro naming and modularisation
- PR #1563: Add #![cfg_assert]
- PR #1566: Procedural macros
- PR #1575:
Add a
vismatcher tomacro_rules!. - PR #1576:
Add a
literalfragment specifier tomacro_rules!. - PR #1578: RFC for a Rust Memory Model
- PR #1583: Add parse_generics! and parse_where! macros
- PR #1584: Macros by example 2.0 (macro!)
- PR #1590:
Add a
lifetimespecifier tomacro_rules! - PR #1598: Associated type constructors (a form of higher-kinded polymorphism).
- PR #1599: Update the alternative section for #1268
- PR #1600: Amend #1268 with a more feasible proposal post-specialization
- PR #1603:
Introduce
dynkeyword - PR #1605: Allow type aliases in enumeration repr attributes.
- FCP PR #1358: RFC: Add #[repr(align = "N")]
- FCP PR #1477: Generic atomic v2
- FCP PR #1478: translate undefined intrinsics to an unreachable and a lint
- FCP PR #1492:
RFC:
..in patterns - FCP PR #1592: all but the last field of a tuple must be Sized
Implementation phase
- Issue #13231: opt-in built-in bounds traits RFC tracker
- Issue #15701: Add attributes to expressions, etc.
- Issue #18469: Implement revised coercion rules
- Issue #22181:
boxandinexpressions (tracking issue for RFC 809) - Issue #27060: repr(packed) allows invalid unaligned loads
- Issue #27336: Tracking Issue for RFC 213: Default Type Parameter Fallback
- Issue #31434: Restrict use of constants in patterns (RFC 1445)
- Issue #31436:
?operator andcatchexpressions (RFC 243) - Issue #31844: Tracking issue for specialization (RFC 1210)
- Issue #32409:
Tracking issue for
pub(restricted)privacy (RFC #1422) - Issue #32836: Untagged unions (tracking issue for RFC 1444)
- Issue #32838: Allocator traits (tracking issue for RFC 1398)
- Issue #33158:
#[repr(packed = "N")](tracking issue for RFC 1399)
High priority issues
- Issue #25860: Implied bounds on nested references + variance = soundness hole
- Issue #28514: Private trait's methods reachable through a public subtrait
- Issue #29149: Lifetime bounds in Copy impls are ignored
- Issue #29859: Cyclic traits allow arbitrary traits to be synthesized
- Issue #30127: Desugared x.index(y) is not equivalent to x[y]
- Issue #31287: Pattern guard can consume value that is being matched
Needs decision
- Issue #21232: borrow-checker allows partial reinit of struct that has been moved away, but no use of it.
- Issue #23818:
print!macro should flush stdout - Issue #30191: Can't provide non-overlapping impls with any type parameters, if a blanket impl exists