Open
Description
On Wednesday, the libs-team discussed reorganizing the platform-specific modules inside std
, namely sys
and sys_common
into a new structure. These modules will be merged into one sys
module with a feature-first organization:
- the submodules of
sys
, named after the feature they implement, contain all the implementations of the different platforms and provide a uniform interface that the rest ofstd
may depend on. E.g.sys::thread_local
,sys::fs
orsys::thread_parking
. sys::pal
contains platform-specific generic API wrappers likeFileDesc
cvt
(UNIX) used to implement these features. E.g.sys::pal::unix
,sys::pal::windows
or (perhaps)sys::pal::apple
.
The rest of std
, modulo std::os
, should now only depend on sys::feature_name
and not sys::pal
. The implementations themselves may however depend on other parts of std
as necessary.
- Move platform modules into
sys::pal
#117285 - Move personality implementation out of PAL #119935
- Move OS String implementation into
sys
#119996 - Move cmath into
sys
#120109 - Move path implementations into
sys
#120776 - Move locks to
sys
#121177 - Move thread local implementation to
sys
#121758 - Move
Once
implementations tosys
#122386 - Remove
sys_common::thread
#123807 - Move thread parking to
sys::sync
#124159 - std: refactor the TLS implementation #126523
- std: move
sys_common::backtrace
tosys
#126546 - std: move allocators to
sys
#128134 - std: move
io
module out ofpal
, get rid ofsys_common::io
#135696 - std: move network code into
sys
#136449 - Move
fs
intosys
#137650 - std: move stdio to
sys
#136780 - std: move process implementations to
sys
#136929 - std: get rid of
sys_common::process
#140393 - Move
fd
intostd::sys
#139092 - Move
args
intostd::sys
#139710 - Move
pal::env
tostd::sys::env_consts
#139868 - Move
sys::pal::os::Env
intosys::env
#140143 - Move remaining features from
sys_common
andsys::pal
intosys