Subteam report: lang 2016-01-08
Highlights
We decided to move RFC #1331 into FCP. This RFC proposes to start the development of an official Rust grammar and lays out a plan to get there. (The RFC does not propose to autogenerate the Rust parser from the grammar; that's an implementation detail in any case, better suited to a compiler team RFC.) This is not expected to have any direct impact on end-users, but is an important step towards formalizing Rust's definition and specification.
We also recently discovered a flaw in the macro future-proofing RFC
(issue #30531). This flaw means that otherwise legal changes to the
expression grammar (for example, the addition of type ascription) can
break macros "in the wild". We intend to close the flaw, but in the
meantime macro authors may want to review their macros to see if they
will be affected by upcoming grammar changes, such as type ascription
or the possible addition of a ? operator. See this comment
for more details.
-- nmatsakis
Dashboard
RFC phase
- PR #197:
ManuallyDroptype gives precise control of dtors of inline data. - PR #243: Trait-based exception handling
- PR #733: Amend macro future proofing RFC
- PR #938:
RFC: The
{:?}format specifier should not print values in release builds - 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 #1210: RFC: impl specialization
- PR #1248: Safe intrinsics RFC
- PR #1258: Add macros to get the values of configuration flags
- 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 #1410:
Add a
noaliaslanguage item - 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
untagged_union - PR #1445: Restrict constants in patterns
- PR #1449: Add language support for bitfields
- PR #1450: Variant types and untagged enums
- FCP PR #1129:
IndexAssign: overloading the
a[b] = cexpression - FCP PR #1196: RFC for allowing eliding more type parameters.
- FCP PR #1296:
RFC: Add an
aliasattribute to #[link] and -l - FCP PR #1331: src/grammar for the canonical grammar of the Rust language
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
High priority issues
- Issue #25658:
In macros,
$($x:expr),*fragments can be used to bypass future-proofing restrictions - Issue #25860: Implied bounds on nested references + variance = soundness hole
- Issue #26739: In macros, expr followed by { is buggy
- 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 supertrait
- 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 #30346: Re-add raw_pointer_derive lint as a no-op
- Issue #30744: Stable regression in tcod-0.8.0 resolving AsRef
Needs decision
- Issue #23818:
print!macro should flush stdout