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
187 lines (169 sloc) 8.69 KB

Subteam report: lang 2016-03-11

Highlights

It was a busy week this week for FCP. We decided to promote four RFCs to FCP:

  • RFC #1201: Add support for naked functions. This RFC allows functions to be declared as "naked", meaning that the compiler will generate no prologue or epilog. This is a low-level feature that can be useful when writing kernels or other such software.
  • RFC #1422: pub(restricted) item. An extension to our privacy system that allows a wider range of public/private declarations. Instead of merely declaring items as "public to everyone" or "private to the current module", one can now declare items as "public to the current crate" (but not other crates) or "public to some module M" (where M is some enclosing module). This helps in particular to alleviate "private type in public API" errors.
  • RFC #1346: unsafe expressions. The proposal is to permit unsafe expr (without braces) rather than just unsafe { block }.
  • RFC #1321: unstable visibility. The proposal is to change how unstable methods interact with method dispatch.

In addition, the following unstable language feature is being placed in FCP. As a reminder, FCPs for unstable language features last an entire release cycle, at the end of which we will typically decide to either remove the language feature, or else stabilize it (though we may elect to defer a final decision):

  • [#29636][]: The #[macro_reexport] attribute, which allows you to take macros from an extern crate and re-export them. This is roughly the equivalent of a pub use from the other crate, but for macros.

Thanks!

-- nmatsakis

Dashboard

RFC phase

  • PR #197: ManuallyDrop type 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 #1248: Safe intrinsics RFC
  • PR #1296: RFC: Add an alias attribute to #[link] and -l
  • 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 #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 #1513: RFC: Stabilize implementing panics as aborts
  • PR #1517: RFC: Exclude macros from importing with #[macro_use(not(...))]
  • PR #1520: RFC: Generic const and static
  • PR #1521: Copy clone semantics
  • PR #1522: Minimal impl Trait
  • PR #1524: Custom Dynamically Sized Types for Rust
  • FCP PR #1201: Add support for naked functions.
  • FCP PR #1422: pub(restricted) item

Implementation phase

High priority issues

  • Issue #15536: floating point to floating point casts have undefined behaviour
  • Issue #22889: Duplicate inherent static methods can be defined in separate impl blocks
  • 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

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
You can’t perform that action at this time.