Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
169 lines (154 sloc) 8.03 KB

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: ManuallyDrop type 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...else expression, similar to Swift's guard 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 noalias language 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] = c expression
  • FCP PR #1196: RFC for allowing eliding more type parameters.
  • FCP PR #1296: RFC: Add an alias attribute to #[link] and -l
  • FCP PR #1331: src/grammar for the canonical grammar of the Rust language

Implementation phase

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 crate is always treated as pub within the crate, but is not visible outside it; pub extern crate makes 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

You can’t perform that action at this time.