Subteam report: lang 2016-03-25
Highlights
We promoted some exciting RFCs to FCP this week:
- RFC #1398: Custom allocator traits. These are traits
intended to eventually be used to customize e.g. what allocator
a
Vecuses. (In collaboration with libs team.) - RFC #1513: Stabilize implementing panics as aborts. This RFC
adds various options to allow the "end crate" (e.g., the
application) to specify that panics ought to be compiled as aborts,
rather than initiating unwinding. This is useful for applications
that would prefer to crash the process, since supporting unwinding
causes more code generation and can inhibit some optimizations.
- The end-user model we are aiming towards with this RFC is that panics mean "abort and let somebody else handle it" -- in the case of unwinding, that "somebody else" may be another thread, but in the case of aborting, that "somebody else" is another process.
--nmatsakis
Dashboard
RFC phase
- PR #197:
ManuallyDroptype gives precise control of dtors of inline data. - PR #1062: Constants that depend on type parameters in generic code
- PR #1148: Mutually exclusive traits
- 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 #1358: RFC: Add #[repr(align = "N")]
- PR #1379: Change thread local variables to only accept async-signal-safe types.
- PR #1399: RFC: Add #[repr(pack = "N")]
- PR #1406: Rfc: delegation of implementation
- PR #1408: Delayed resolution
- PR #1414: Add Rvalue-static-promotion RFC
- PR #1426: Placement in/box refinement
- PR #1429: Feature gate extern fn methods
- PR #1431: Statically dispatched methods for trait objects with associated data
- PR #1437: ESC byte escape
- PR #1440: RFC - Allow Drop types in statics/const functions
- PR #1444:
RFC: native C-compatible unions via built-in syntax macro
union! - PR #1449: Add language support for bitfields
- PR #1450: Types for enum variants
- PR #1459: Add a used attribute
- PR #1477: Generic atomic v2
- PR #1478: translate undefined intrinsics to an unreachable and a lint
- PR #1492:
RFC:
..in patterns - PR #1494: Amend RFC 550 with misc. follow set corrections
- 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 #1521: Copy clone semantics
- PR #1522:
Minimal
impl Trait - PR #1524: Custom Dynamically Sized Types for Rust
- PR #1539: Revise type ascription operator to use type equality, not coercion
- PR #1546: Allow fields in traits that map to lvalues in impl'ing type
- FCP PR #1319: Amend RFC1228 with operator fixity and precedence
- FCP PR #1321: Unstable visibility RFC
- FCP PR #1346: Unsafe expressions
- FCP PR #1373: Remove some kinds of doc comments
- FCP PR #1398: Allocators, take III
- FCP PR #1513: RFC: Stabilize implementing panics as aborts
Implementation phase
- Issue #13231: opt-in built-in bounds traits RFC tracker
- 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) - FCP PR #27751:
Tracking issue for
rawstabilization - FCP PR #29638:
Tracking issue for
macro_reexportfeature
High priority issues
- Issue #15536: floating point to floating point casts have undefined behaviour
- 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
- Issue #31543:
Warn for type parameter defaults on
implblocks
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