Subteam report: lang 2016-04-01
Highlights
Due in part to missing team members, two RFCs that were already in FCP are staying in FCP for another week:
- FCP PR #1398: Allocators, take III
- FCP PR #1513: RFC: Stabilize implementing panics as aborts
In addition, we reached final decisions on two long-standing FCP RFCs:
-
FCP PR #1321: Unstable visibility RFC
-
FCP PR #1346: Unsafe expressions
We also brought a couple of new RFCs into final comment period, leaving us with the following list for the week:
- FCP PR #1319: Amend RFC1228 with operator fixity and precedence
- FCP PR #1373:
Remove some kinds of doc comments
- Proposes deprecating
#[doc=""],#![doc=""],/** */, and/*! */.
- Proposes deprecating
- FCP PR #1398:
Allocators, take III
- Proposes a comprehensive API for describing and using allocators, with the
intent that types like
VecandHashMapcan ultimately support custom allocators.
- Proposes a comprehensive API for describing and using allocators, with the
intent that types like
- FCP PR #1444:
unions
- Proposes a C-like
unionkeyword in Rust, useful for FFI as well as a few pure-Rust scenarios (like manually-dropped data).
- Proposes a C-like
- FCP PR #1494: Amend RFC 550 with misc. follow set corrections
- FCP PR #1513:
RFC: 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.
Dashboard
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
- Issue #31543:
Warn for type parameter defaults on
implblocks
Issues needing a 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
RFC phase
- FCP PR #1319: Amend RFC1228 with operator fixity and precedence
- FCP PR #1373: Remove some kinds of doc comments
- FCP PR #1398: Allocators, take III
- FCP PR #1444: unions
- FCP PR #1494: Amend RFC 550 with misc. follow set corrections
- FCP PR #1513: RFC: Stabilize implementing panics as aborts
- 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 #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 #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
- 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
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)
Stabilization phase
- FCP Issue #27751:
Tracking issue for
rawstabilization - FCP Issue #29638:
Tracking issue for
macro_reexportfeature - Issue #23416: Type ascription (tracking issue for RFC 803)
- Issue #24111: const fn tracking issue (RFC 911)
- Issue #24263: discriminant_value intrinsic -- tracking issue for 639
- Issue #27336: Tracking Issue for RFC 213: Default Type Parameter Fallback
- Issue #27732: Tracking issue for DST coercions (coerce_unsized, unsize) stabilization
- Issue #27779: Tracking issue for placement new
- Issue #28237:
Tracking issue for
...inclusive ranges (RFC #1192) - Issue #28979: Tracking issue for non-ASCII identifiers (feature "non_ascii_idents")
- Issue #29594:
Tracking issue for
thread_localstabilization - Issue #29596:
Tracking issue for
link_argsstabilization - Issue #29597:
Tracking issue for plugin stabilization (
plugin,plugin_registrarfeatures) - Issue #29598:
Tracking issue for
log_syntax,trace_macros - Issue #29599:
Tracking issue for
concat_idents - Issue #29601:
Tracking issue for
quotefeature - Issue #29602:
Tracking issue for
link_llvm_intrinsics - Issue #29603:
Tracking issue for the
linkagefeature - Issue #29625:
Tracking issue for Fn traits (
unboxed_closuresfeature) - Issue #29628:
Tracking issue for
on_unimplementedfeature - Issue #29629:
Tracking issue for
linked_fromfeature - Issue #29633:
Tracking issue for the
startfeature - Issue #29634:
Tracking issue for
mainfeature - Issue #29635:
Tracking issue for
fundamentalfeature - Issue #29639:
Tracking issue for
no_corestabilization - Issue #29641:
Tracking issue for
box_patternsfeature - Issue #29642:
Tracking issue for
custom_attribute,rustc_attrsfeatures - Issue #29644:
Tracking issue for
custom_derivefeature - Issue #29646:
Tracking issue for
associated_constsfeature - Issue #29661:
Tracking issue for
associated_type_defaults - Issue #29717:
Tracking issue for
cfg_target_feature - Issue #29718:
Tracking issue for
cfg_target_vendor - Issue #29719:
Tracking issue for
static_recursion - Issue #29721:
Tracking issue for
no_debugfeature - Issue #29722:
Tracking issue for
asm(inline assembly) - Issue #29864: Tracking issue for allowing overlapping implementations for marker trait
- Issue #29947:
tracking issue for
const_indexingstabilization - Issue #31844: Tracking issue for specialization (RFC 1210)
- Issue #32408: Tracking issue for naked fns (RFC #1201)
- Issue #32409:
Tracking issue for
pub(restricted)privacy (RFC #1422)