Lang
Full report
Due in part to missing team members, two RFCs that were already in FCP are
staying in FCP for another week:
In addition, we reached final decisions on two long-standing FCP RFCs:
We also brought a couple of new RFCs into final comment period, leaving us
with the following list for the week:
-
FCP PR #1319:
Amend RFC1228 with operator fixity and precedence
-
FCP PR #1373:
Remove some kinds of doc comments
- Proposes deprecating
#[doc=""], #![doc=""], /** */, and /*! */.
-
FCP PR #1398:
Allocators, take III
- Proposes a comprehensive API for describing and using allocators, with the
intent that types like
Vec and HashMap can ultimately support custom
allocators.
-
FCP PR #1444:
unions
- Proposes a C-like
union keyword in Rust, useful for FFI as well as a few
pure-Rust scenarios (like manually-dropped data).
-
FCP PR #1494:
Amend RFC 550 with misc. follow set corrections
-
FCP PR #1513:
RFC: Stabilize implementing panics as aborts
- This RFC adds various options to allow the “end crate” (e.g., the
application) to specify that panics ought to be compiled as aborts, rather
than initiating unwinding. This is useful for applications that would prefer
to crash the process, since supporting unwinding causes more code generation
and can inhibit some optimizations.
- The end-user model we are aiming towards with this RFC is that panics mean
"abort and let somebody else handle it" – in the case of unwinding, that
"somebody else" may be another thread, but in the case of aborting, that
"somebody else" is another process.
Libs
Full report
We discussed several RFCs that were previously in FCP:
-
FCP PR #1398:
Allocators, take III
- Left detailed comments
here
and summarized
here. Due
to ongoing discussion and coordination with lang team, this is staying in
FCP for another week.
-
FCP PR #1529:
rfc 1291: Add libutil to scope of libc crate on Linux
- Merged, due to the relevant library being both ubiquitous and in particular
provided in musl (a good indicator of standardization).
-
FCP PR #1552:
Add a contains method to VecDeque and LinkedList
In addition, two new RFCs enter final comment period (FCP):
Both of these RFCs address the desire for additional atomic types, but through
different routes; we will accept at most one of them.
We also discussed the
encode_utf8 situation; this
was a case where an API was stabilized within libcore by accident, but not
within libstd. We landed a breaking change to the API in both locations, and
moved back to proper unstable status in libcore. We consider the latter to be a
bug fix, but also did due diligence in terms of trying to gauge usage (and
taking into account that using the API purely through libcore is pretty niche in
the first place). This was a tough call, but we believe the right thing to do in
this particular case.
We reached a decision on how to accommodate u64-sized division and
multiplication for Duration without breakage; see
https://github.com/rust-lang/rust/pull/32515.
Finally, we are landing our first trial use of specialization within std:
speeding up the to_string method on string slices!