Subteam report: libs 2016-03-25
Highlights
Several RFCs enter their final comment period this week:
- FCP PR #1398:
Allocators, take III
- Proposes a comprehensive API for describing and using allocators, with the
intent that types like
VecandHashMapcan ultimately support custom allocators.
- Proposes a comprehensive API for describing and using allocators, with the
intent that types like
- FCP PR #1529: rfc 1291: Add libutil to scope of libc crate on Linux
- FCP PR #1552: Add a contains method to VecDeque and LinkedList
As usual, we covered several PRs that needed team decisions:
- Decreasing code bloat when deriving Clone for Copy data
- We want to do this, but had some reservations about the initially-proposed approach.
- Changing AtomicBool size to 1 byte
- We want to reach a decision here while resolving open RFCs on the topic.
- Placement for Vec
- We want to add these APIs, but are wary of doing so in an ad hoc way without any conventions (and thereby de facto stabilizing poor conventions); blocked on a quick conventions RFC.
- Heap allocation guarantee
- We are fine with making this promise, but would like to avoid a lot of ad hoc promise-making along these lines, in favor of a more comprehensive look at representation promises.
- Add augmented assignment to time times
- Merged
We did some maintenance on the nursery:
- Making progress on rustc-serialize without breakage
- We need to consolidate the time libraries in the ecosystem, and in particular
make the external time libraries compatible with the new
std::timetypes. Ideally, this would happen by deprecating thetimecrate in favor ofchrono, and makingchronomorestd-compatible. The libs team is working with the relevant authors to make progress here. - Dealing with
libc/std::os::rawtypes and their interaction.- Not fully resolved -- ongoing discussion is here.
Dashboard
High priority issues
Issues needing a decision
RFC phase
- FCP PR #1398: Allocators, take III
- FCP PR #1529: rfc 1291: Add libutil to scope of libc crate on Linux
- FCP PR #1552: Add a contains method to VecDeque and LinkedList
- PR #1218: RFC: Checked integer conversions
- PR #1309: OS string string-like interface
- PR #1325: Add panic-safe slicing methods
- PR #1353: Add retain_mut to Vec and VecDeque
- PR #1379: Change thread local variables to only accept async-signal-safe types.
- PR #1480: RFC proposal for thread affinity
- PR #1502: libstd::sys, the great libstd refactor
- PR #1505: Add a generic Atomic type
- PR #1521: Copy clone semantics
- PR #1533: Keyless Entry
- PR #1534: RFC: Saturating and checking integer wrapper types
- PR #1542: Add TryFrom and TryInto traits
- PR #1543: Add more integer atomic types
- PR #1547: as_millis function on std::time::Duration
Implementation phase
- Issue #5016: implement "dynamic drop" semantics using flags on the stack rather than zeroing
- Issue #19986: Tracking issue for collections reform part 2 (RFC 509)
- Issue #32310: Tracking issue for {Vec,String}::splice
- Issue #32311: Tracking issue for Range*::contains
- Issue #32313: Tracking issue for Ipv6Addr octet methods
Stabilization phase
- FCP Issue #27719:
Tracking issue for
recoverstabilization - FCP Issue #27751:
Tracking issue for
rawstabilization - FCP Issue #27754:
Tracking issue for
str_charstabilization - FCP Issue #27780: Tracking issue for <*mut T, *const T>::{as_ref, as_mut_ref}
- FCP Issue #27784: Tracking issue for char encoding methods
- FCP Issue #27809: Tracking issue for make_ascii_{upper,lower}case
- FCP Issue #27811: Tracking issue for CommandExt::session_leader
- FCP Issue #27830: Tracking issue for UTF-16 decoding iterators
- FCP Issue #28050: Set recovery methods
- FCP Issue #29453: Add Capacity/length methods for OsString
- FCP Issue #29791: Tracking issue for getting pthread_t from JoinHandle
- FCP Issue #29935:
Tracking issue for
#[deprecated] - FCP Issue #30014: Tracking issue for OpenOptions expansion
- FCP Issue #30752: Tracking issue for panic::propagate
- FCP Issue #31262:
HashMapandHashSetshould provide a getter for their hashers - FCP Issue #31398: Tracking issue for CommandExt::{exec, before_exec}
- FCP Issue #31405: Tracking issue for file_try_clone
- FCP Issue #31572: Tracking issue for SocketAddr setters
- FCP Issue #31755: Tracking issue for <[T]>::copy_from_slice
- FCP Issue #31756: Tracking issue for ptr::{read,write}_volatile
- Issue #5016: implement "dynamic drop" semantics using flags on the stack rather than zeroing
- Issue #24263: discriminant_value intrinsic -- tracking issue for 639
- Issue #27389: Tracking issue for changing the global, default allocator (RFC 1183)
- Issue #27700: Tracking issue for allocation APIs
- Issue #27703: Tracking issue for stabilizing randomness
- Issue #27705: Tracking issue for DNS in std::net
- Issue #27708:
Tracking issue for
as_unsafe_cellstabilization - Issue #27709: Tracking issue for Ipv{4,6}Addr convenience methods
- Issue #27716:
Tracking issue for
thread_local_statestabilization - Issue #27717: Tracking issue for static synchronization primitives
- Issue #27720: Tracking issue for OpenOptionsExt on Windows
- Issue #27721: Tracking issue for string patterns
- Issue #27726: Tracking issue for access to Formatter flags/options
- Issue #27730:
Tracking issue for
NonZero/Unique/Sharedstabilization - Issue #27731: Tracking issue for SIMD support
- Issue #27732: Tracking issue for DST coercions (coerce_unsized, unsize) stabilization
- Issue #27733:
Tracking issue for
borrow_statestabilization - Issue #27739:
Tracking issue for
Zero/One/iter_arithstabilization - Issue #27741:
Tracking issue for
step_bystabilization - Issue #27745: Tracking issue for type_id stabilization
- Issue #27747:
Tracking issue for
slice_concat_extstabilization - Issue #27749:
Tracking issue for
Reflectstabilization - Issue #27752:
Tracking issue for
float_extrasstabilization - Issue #27778: Tracking issue for core::array
- Issue #27779: Tracking issue for placement new
- Issue #27783: Tracking issue for location of facade crates
- Issue #27787: Tracking issue for sorted collection ranges
- Issue #27788: Tracking issue for VecDeque Extras
- Issue #27791: Tracking issue for str escaping
- Issue #27794: Tracking issue for extra linked list methods
- Issue #27800: Tracking issue for channel selection
- Issue #27802: Tracking issue for Read::chars
- Issue #27812: Tracking issue for crates that are compiler dependencies
- Issue #28147: Tracking issue for BinaryHeap::{push_pop, replace}
- Issue #28237:
Tracking issue for
...inclusive ranges (RFC #1192) - Issue #28356: Tracking issue for Arc/Rc extras
- Issue #28796: Tracking issue for FnBox()
- Issue #29553: Tracking issue for #[bench] and benchmarking support
- Issue #29625:
Tracking issue for Fn traits (
unboxed_closuresfeature) - Issue #30172: Implement placement-in protocol for relevant data structures
- Issue #30425: No way to construct std::rc::Weak without a strong reference
- Issue #30449: Custom panic handlers in the standard library
- Issue #30877: Tracking issue for RangeArgument
- Issue #31190: Tracking issue for CStr::from_bytes_with_nul
- Issue #31399: Tracking issue for SystemTime accessors from fs::Metadata
- Issue #31767: Tracking issue for compare_exchange
- Issue #32110: Tracking issue for libcore prelude traits
- Issue #32111: Tracking issue for the Peekable::is_empty function
- Issue #32281: Add methods exposing keys of BTreeMap and HashMap entries
- Issue #32312: Tracking issue for Unix Sockets in the standard library