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
186 lines (166 sloc) 8.65 KB

Subteam report: lang 2016-05-07

Highlights

The most exciting thing that happened this week was that Eduard-Mihai Burtescu, more commonly known as eddyb, joined the language design team. Eddy has been involved in hacking on the compiler for years, and he has shown quite an astute sense for language design questions over the years. We are very excited to have him on board.

In terms of pending RFCs, we decided not to decide on the question of #[repr(align)] just yet, since the proper interaction between align and packed is still unclear. We proposed just making it an error to combine them for the time being and settling it later.

We introduced the following RFCs into FCP:

Both of them are (directly or indirectly) targeting the topic of atomic operations applied across more types.

The following RFCs remain in FCP, mainly because of lack of time to discuss and consider them this week:

  • [RFC 1492][] proposes to permit .. notation in patterns as a more general replacement to _, so that one can write a pattern like Foo(x, ..) instead of Foo(x, _, _, _).
  • [RFC 1592][] is a small amendment that corrects an oversight in the original well-formedness RFC, by making tuples require that all elements except for the last element be Sized (just as structs do).

-- nmatsakis

Dashboard

RFC phase

  • Issue #1593: RFC 401 should account for Deref coercions
  • 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 #1327: Dropck Eyepatch RFC.
  • PR #1379: Change thread local variables to only accept async-signal-safe types.
  • PR #1406: Rfc: delegation of implementation
  • PR #1408: Delayed resolution
  • PR #1414: Add Rvalue-static-promotion RFC
  • PR #1426: Placement in/box refinement
  • PR #1431: Statically dispatched methods for trait objects with associated data
  • PR #1449: Add language support for bitfields
  • PR #1450: Types for enum variants
  • PR #1459: Add a used attribute
  • 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 #1522: Minimal impl Trait
  • PR #1524: Custom Dynamically Sized Types for Rust
  • 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
  • PR #1575: Add a vis matcher to macro_rules!.
  • PR #1576: Add a literal fragment specifier to macro_rules!.
  • PR #1578: RFC for a Rust Memory Model
  • PR #1583: Add parse_generics! and parse_where! macros
  • PR #1584: Macros by example 2.0 (macro!)
  • PR #1590: Add a lifetime specifier to macro_rules!
  • PR #1598: Associated type constructors (a form of higher-kinded polymorphism).
  • PR #1599: Update the alternative section for #1268
  • PR #1600: Amend #1268 with a more feasible proposal post-specialization
  • PR #1603: Introduce dyn keyword
  • PR #1605: Allow type aliases in enumeration repr attributes.
  • FCP PR #1358: RFC: Add #[repr(align = "N")]
  • FCP PR #1477: Generic atomic v2
  • FCP PR #1478: translate undefined intrinsics to an unreachable and a lint
  • FCP PR #1492: RFC: .. in patterns
  • FCP PR #1592: all but the last field of a tuple must be Sized

Implementation phase

  • Issue #13231: opt-in built-in bounds traits RFC tracker
  • Issue #15701: Add attributes to expressions, etc.
  • Issue #18469: Implement revised coercion rules
  • Issue #22181: box and in expressions (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 and catch expressions (RFC 243)
  • Issue #31844: Tracking issue for specialization (RFC 1210)
  • Issue #32409: Tracking issue for pub(restricted) privacy (RFC #1422)
  • Issue #32836: Untagged unions (tracking issue for RFC 1444)
  • Issue #32838: Allocator traits (tracking issue for RFC 1398)
  • Issue #33158: #[repr(packed = "N")] (tracking issue for RFC 1399)

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

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.