Subteam report: lang 2016-02-01
Highlights
This week we discussed and made decisions on several nominated issues and PRs, including:
- Remove volatile semantics for atomics (https://github.com/rust-lang/rust/pull/30962)
- Merge, perhaps while adding additional operations with volatile semantics.
- Loosen restriction around
use/extern cratein blocks (https://github.com/rust-lang/rust/pull/31144)- Merge, consider lint in the long run.
- Accessing variants through a type alias (https://github.com/rust-lang/rust/pull/31179)
- Close; given some of the tricky questions that have come up, we'd like an RFC here.
- Unsafely ascribe
'staticbounds (https://github.com/rust-lang/rust/issues/31196)- Close in favor of an RFC.
We reached a
basic decision
on the ?/try/catch RFC, which is that we plan to merge the
RFC. However, there remains some bikeshedding to be done, so we will
have one more week of FCP to sort out the keywords:
- FCP PR #243: Trait-based exception handling
We moved two features into final comment period (FCP) for stabilization in Rust 1.8:
- FCP Issue #28235:
Tracking issue for overloaded
+=operators (RFC 953) (feature augmented_assignments) - FCP Issue #29720:
Tracking issue for
braced_empty_structs(RFC 218)
Finally, we brought two RFCs into final comment period (FCP):
- FCP PR #1210: RFC: impl specialization
- FCP PR #1445: Restrict constants in patterns
Dashboard
High priority issues
- Issue #22889:
Duplicate inherent static methods can be defined in separate
implblocks - Issue #25860: Implied bounds on nested references + variance = soundness hole
- Issue #26775:
extern crateis always treated aspubwithin the crate, but is not visible outside it;pub extern cratemakes no difference - 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]
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
RFC phase
- FCP PR #243: Trait-based exception handling
- FCP PR #1129:
IndexAssign: overloading the
a[b] = cexpression - FCP PR #1196: RFC for allowing eliding more type parameters.
- FCP PR #1210: RFC: impl specialization
- FCP PR #1445: Restrict constants in patterns
- 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 #1177: Anonymous/placeholder lifetime "'_".
- PR #1180:
Propose
Interior<T>data-type, to allow moves out of the dropped value during the drop hook. - PR #1201: Add support for naked functions.
- PR #1248: Safe intrinsics RFC
- PR #1258: Add macros to get the values of configuration flags
- PR #1296:
RFC: Add an
aliasattribute to #[link] and -l - PR #1303:
Add a
let...elseexpression, similar to Swift'sguard let...else - PR #1305: Abstract output type parameters
- PR #1319: Amend RFC1228 with operator fixity and precedence
- PR #1321: Unstable visibility RFC
- PR #1327: Dropck Eyepatch RFC.
- PR #1346: Unsafe expressions
- PR #1358: RFC: Add #[repr(align = "N")]
- PR #1373: Remove some kinds of doc comments
- PR #1379: Change thread local variables to only accept async-signal-safe types.
- PR #1398: Allocators, take III
- 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 #1422: pub(restricted) item
- 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
Implementation phase
- Issue #13231: opt-in built-in bounds traits RFC tracker
- Issue #15552: Implement lifetime elision
- Issue #16293: Implement UFCS (Tracking RFC 132)
- Issue #17307: Implement associated items
- Issue #18469: Implement revised coercion rules
- Issue #21939: Tracking issue for Finalize defaulted type parameters (RFC 213)
- Issue #22020: Tracking issue for Integer Overflow (RFC 560)
- Issue #22181:
boxandinexpressions (tracking issue for RFC 809) - Issue #23416: Type ascription (tracking issue for RFC 803)
- Issue #24263: discriminant_value intrinsic -- tracking issue for 639
- Issue #27060: repr(packed) allows invalid unaligned loads
- Issue #27336: Tracking Issue for RFC 213: Default Type Parameter Fallback
Stabilization phase
- FCP Issue #28235:
Tracking issue for overloaded
+=operators (RFC 953) (feature augmented_assignments) - FCP Issue #29720:
Tracking issue for
braced_empty_structs(RFC 218) - Issue #24111: const fn tracking issue (RFC 911)
- Issue #27336: Tracking Issue for RFC 213: Default Type Parameter Fallback
- Issue #27732: Tracking issue for DST coercions (coerce_unsized, unsize) stabilization
- Issue #27751:
Tracking issue for
rawstabilization - Issue #27779: Tracking issue for placement new
- 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 #29638:
Tracking issue for
macro_reexportfeature - 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