|
| 1 | +# Subteam report: lang 2016-03-21 |
| 2 | + |
| 3 | +## Highlights |
| 4 | + |
| 5 | +We decided to accept two RFCs yesterday: |
| 6 | + |
| 7 | +- [RFC 1201](https://github.com/rust-lang/rfcs/pull/1201): Support |
| 8 | + naked functions, which are functions without the standard prologue |
| 9 | + and epilogue; this is primarily useful for low-level coding. |
| 10 | +- [RFC 1244](https://github.com/rust-lang/rfcs/pull/1244): Extend the |
| 11 | + model for public/private declarations to permit declaring an item as |
| 12 | + public to a specific parent module, as well as permitting |
| 13 | + `pub(crate)` to define something which is public to the current |
| 14 | + crate but not other crates. |
| 15 | + |
| 16 | +Also, the following two RFCs were already in FCP, but we realized we |
| 17 | +didn't fully advertise them, as we forgot e.g. to add an appropriate |
| 18 | +label, so we've decided to extend FCP for another week: |
| 19 | + |
| 20 | +- [RFC 1321](https://github.com/rust-lang/rfcs/pull/1321): Make unstable |
| 21 | + methods and items invisible in the stable compiler. |
| 22 | +- [RFC 1346](https://github.com/rust-lang/rfcs/pull/1346): Allow |
| 23 | + unsafe expressions without `{}` (e.g., `unsafe foo()` instead of |
| 24 | + `unsafe { foo() }`). |
| 25 | + |
| 26 | +Finally, the following RFCs are entering FCP: |
| 27 | + |
| 28 | +- [RFC 1373](https://github.com/rust-lang/rfcs/pull/1373): Deprecate |
| 29 | + certain kinds of doc comments, in an effort to reduce duplication. |
| 30 | +- [RFC 1319](https://github.com/rust-lang/rfcs/pull/1319): An amendment |
| 31 | + to RFC 1228 (which introduced the experimental `<-` operator) to |
| 32 | + clarify operator precedence. |
| 33 | + |
| 34 | +--nmatsakis |
| 35 | + |
| 36 | +## Dashboard |
| 37 | + |
| 38 | +### RFC phase |
| 39 | + |
| 40 | +- [PR #197](https://github.com/rust-lang/rfcs/pull/197): |
| 41 | + `ManuallyDrop` type gives precise control of dtors of inline data. |
| 42 | +- [PR #1062](https://github.com/rust-lang/rfcs/pull/1062): |
| 43 | + Constants that depend on type parameters in generic code |
| 44 | +- [PR #1148](https://github.com/rust-lang/rfcs/pull/1148): |
| 45 | + Mutually exclusive traits |
| 46 | +- [PR #1177](https://github.com/rust-lang/rfcs/pull/1177): |
| 47 | + Anonymous/placeholder lifetime "'_". |
| 48 | +- [PR #1180](https://github.com/rust-lang/rfcs/pull/1180): |
| 49 | + Propose `Interior<T>` data-type, to allow moves out of the dropped value during the drop hook. |
| 50 | +- [PR #1248](https://github.com/rust-lang/rfcs/pull/1248): |
| 51 | + Safe intrinsics RFC |
| 52 | +- [PR #1296](https://github.com/rust-lang/rfcs/pull/1296): |
| 53 | + RFC: Add an `alias` attribute to #[link] and -l |
| 54 | +- [PR #1305](https://github.com/rust-lang/rfcs/pull/1305): |
| 55 | + Abstract output type parameters |
| 56 | +- [PR #1319](https://github.com/rust-lang/rfcs/pull/1319): |
| 57 | + Amend RFC1228 with operator fixity and precedence |
| 58 | +- [PR #1327](https://github.com/rust-lang/rfcs/pull/1327): |
| 59 | + Dropck Eyepatch RFC. |
| 60 | +- [PR #1358](https://github.com/rust-lang/rfcs/pull/1358): |
| 61 | + RFC: Add #[repr(align = "N")] |
| 62 | +- [PR #1373](https://github.com/rust-lang/rfcs/pull/1373): |
| 63 | + Remove some kinds of doc comments |
| 64 | +- [PR #1379](https://github.com/rust-lang/rfcs/pull/1379): |
| 65 | + Change thread local variables to only accept async-signal-safe types. |
| 66 | +- [PR #1398](https://github.com/rust-lang/rfcs/pull/1398): |
| 67 | + Allocators, take III |
| 68 | +- [PR #1399](https://github.com/rust-lang/rfcs/pull/1399): |
| 69 | + RFC: Add #[repr(pack = "N")] |
| 70 | +- [PR #1406](https://github.com/rust-lang/rfcs/pull/1406): |
| 71 | + Rfc: delegation of implementation |
| 72 | +- [PR #1408](https://github.com/rust-lang/rfcs/pull/1408): |
| 73 | + Delayed resolution |
| 74 | +- [PR #1414](https://github.com/rust-lang/rfcs/pull/1414): |
| 75 | + Add Rvalue-static-promotion RFC |
| 76 | +- [PR #1426](https://github.com/rust-lang/rfcs/pull/1426): |
| 77 | + Placement in/box refinement |
| 78 | +- [PR #1429](https://github.com/rust-lang/rfcs/pull/1429): |
| 79 | + Feature gate extern fn methods |
| 80 | +- [PR #1431](https://github.com/rust-lang/rfcs/pull/1431): |
| 81 | + Statically dispatched methods for trait objects with associated data |
| 82 | +- [PR #1437](https://github.com/rust-lang/rfcs/pull/1437): |
| 83 | + ESC byte escape |
| 84 | +- [PR #1440](https://github.com/rust-lang/rfcs/pull/1440): |
| 85 | + RFC - Allow Drop types in statics/const functions |
| 86 | +- [PR #1444](https://github.com/rust-lang/rfcs/pull/1444): |
| 87 | + RFC: native C-compatible unions via built-in syntax macro `union!` |
| 88 | +- [PR #1449](https://github.com/rust-lang/rfcs/pull/1449): |
| 89 | + Add language support for bitfields |
| 90 | +- [PR #1450](https://github.com/rust-lang/rfcs/pull/1450): |
| 91 | + Types for enum variants |
| 92 | +- [PR #1459](https://github.com/rust-lang/rfcs/pull/1459): |
| 93 | + Add a used attribute |
| 94 | +- [PR #1477](https://github.com/rust-lang/rfcs/pull/1477): |
| 95 | + Generic atomic v2 |
| 96 | +- [PR #1478](https://github.com/rust-lang/rfcs/pull/1478): |
| 97 | + translate undefined intrinsics to an unreachable and a lint |
| 98 | +- [PR #1492](https://github.com/rust-lang/rfcs/pull/1492): |
| 99 | + RFC: `..` in patterns |
| 100 | +- [PR #1494](https://github.com/rust-lang/rfcs/pull/1494): |
| 101 | + Amend RFC 550 with misc. follow set corrections |
| 102 | +- [PR #1504](https://github.com/rust-lang/rfcs/pull/1504): |
| 103 | + Add support for 128-bit integers |
| 104 | +- [PR #1506](https://github.com/rust-lang/rfcs/pull/1506): |
| 105 | + Clarify the relationships between various kinds of structs and variants |
| 106 | +- [PR #1513](https://github.com/rust-lang/rfcs/pull/1513): |
| 107 | + RFC: Stabilize implementing panics as aborts |
| 108 | +- [PR #1517](https://github.com/rust-lang/rfcs/pull/1517): |
| 109 | + RFC: Exclude macros from importing with #[macro_use(not(...))] |
| 110 | +- [PR #1520](https://github.com/rust-lang/rfcs/pull/1520): |
| 111 | + RFC: Generic const and static |
| 112 | +- [PR #1521](https://github.com/rust-lang/rfcs/pull/1521): |
| 113 | + Copy clone semantics |
| 114 | +- [PR #1522](https://github.com/rust-lang/rfcs/pull/1522): |
| 115 | + Minimal `impl Trait` |
| 116 | +- [PR #1524](https://github.com/rust-lang/rfcs/pull/1524): |
| 117 | + Custom Dynamically Sized Types for Rust |
| 118 | +- [PR #1539](https://github.com/rust-lang/rfcs/pull/1539): |
| 119 | + Revise type ascription operator to use type equality, not coercion |
| 120 | +- [PR #1546](https://github.com/rust-lang/rfcs/pull/1546): |
| 121 | + Allow fields in traits that map to lvalues in impl'ing type |
| 122 | +- [FCP PR #1201](https://github.com/rust-lang/rfcs/pull/1201): |
| 123 | + Add support for naked functions. |
| 124 | +- [FCP PR #1321](https://github.com/rust-lang/rfcs/pull/1321): |
| 125 | + Unstable visibility RFC |
| 126 | +- [FCP PR #1346](https://github.com/rust-lang/rfcs/pull/1346): |
| 127 | + Unsafe expressions |
| 128 | +- [FCP PR #1422](https://github.com/rust-lang/rfcs/pull/1422): |
| 129 | + pub(restricted) item |
| 130 | + |
| 131 | +### Implementation phase |
| 132 | + |
| 133 | +- [Issue #13231](https://github.com/rust-lang/rust/issues/13231): |
| 134 | + opt-in built-in bounds traits RFC tracker |
| 135 | +- [Issue #18469](https://github.com/rust-lang/rust/issues/18469): |
| 136 | + Implement revised coercion rules |
| 137 | +- [Issue #22181](https://github.com/rust-lang/rust/issues/22181): |
| 138 | + `box` and `in` expressions (tracking issue for RFC 809) |
| 139 | +- [Issue #27060](https://github.com/rust-lang/rust/issues/27060): |
| 140 | + repr(packed) allows invalid unaligned loads |
| 141 | +- [Issue #27336](https://github.com/rust-lang/rust/issues/27336): |
| 142 | + Tracking Issue for RFC 213: Default Type Parameter Fallback |
| 143 | +- [Issue #31434](https://github.com/rust-lang/rust/issues/31434): |
| 144 | + Restrict use of constants in patterns (RFC 1445) |
| 145 | +- [Issue #31436](https://github.com/rust-lang/rust/issues/31436): |
| 146 | + `?` operator and `catch` expressions (RFC 243) |
| 147 | +- [Issue #31844](https://github.com/rust-lang/rust/issues/31844): |
| 148 | + Tracking issue for specialization (RFC 1210) |
| 149 | +- [FCP PR #27751](https://github.com/rust-lang/rust/issues/27751): |
| 150 | + Tracking issue for `raw` stabilization |
| 151 | +- [FCP PR #29638](https://github.com/rust-lang/rust/issues/29638): |
| 152 | + Tracking issue for `macro_reexport` feature |
| 153 | + |
| 154 | +### High priority issues |
| 155 | + |
| 156 | +- [Issue #15536](https://github.com/rust-lang/rust/issues/15536): |
| 157 | + floating point to floating point casts have undefined behaviour |
| 158 | +- [Issue #25860](https://github.com/rust-lang/rust/issues/25860): |
| 159 | + Implied bounds on nested references + variance = soundness hole |
| 160 | +- [Issue #28514](https://github.com/rust-lang/rust/issues/28514): |
| 161 | + Private trait's methods reachable through a public subtrait |
| 162 | +- [Issue #29149](https://github.com/rust-lang/rust/issues/29149): |
| 163 | + Lifetime bounds in Copy impls are ignored |
| 164 | +- [Issue #29859](https://github.com/rust-lang/rust/issues/29859): |
| 165 | + Cyclic traits allow arbitrary traits to be synthesized |
| 166 | +- [Issue #30127](https://github.com/rust-lang/rust/issues/30127): |
| 167 | + Desugared x.index(y) is not equivalent to x[y] |
| 168 | +- [Issue #31287](https://github.com/rust-lang/rust/issues/31287): |
| 169 | + Pattern guard can consume value that is being matched |
| 170 | +- [Issue #31543](https://github.com/rust-lang/rust/issues/31543): |
| 171 | + Warn for type parameter defaults on `impl` blocks |
| 172 | + |
| 173 | +### Needs decision |
| 174 | + |
| 175 | +- [Issue #21232](https://github.com/rust-lang/rust/issues/21232): |
| 176 | + borrow-checker allows partial reinit of struct that has been moved away, but no use of it. |
| 177 | +- [Issue #23818](https://github.com/rust-lang/rust/issues/23818): |
| 178 | + `print!` macro should flush stdout |
| 179 | +- [Issue #30191](https://github.com/rust-lang/rust/issues/30191): |
| 180 | + Can't provide non-overlapping impls with *any* type parameters, if a blanket impl exists |
0 commit comments