mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-04 02:54:00 +00:00
Rollup merge of #82492 - CDirkx:sys_common_alloc, r=m-ou-se
Move `std::sys_common::alloc` to new module `std::sys::common`
6b56603e35/library/std/src/sys_common/mod.rs (L7-L13)
It was my impression that the goal for `std::sys` has changed from extracting it into a separate crate to making std work with features. However the fact remains that there is a lot of interdependence between `sys` and `sys_common`, this is because `sys_common` contains two types of code:
- abstractions over the different platform implementations in `std::sys` (for example [`std::sys_common::mutex`](https://github.com/rust-lang/rust/blob/master/library/std/src/sys_common/mutex.rs))
- code shared between platforms (for example [`std::sys_common::alloc`](https://github.com/rust-lang/rust/blob/master/library/std/src/sys_common/alloc.rs))
This PR attempts to address this by adding a new module `common` to `std::sys` which will contain code shared between platforms, `alloc.rs` in this case but more can be moved over in the future.
This commit is contained in:
commit
80ee7cbb37
@ -1,5 +1,3 @@
|
||||
#![allow(dead_code)]
|
||||
|
||||
use crate::alloc::{GlobalAlloc, Layout, System};
|
||||
use crate::cmp;
|
||||
use crate::ptr;
|
13
library/std/src/sys/common/mod.rs
Normal file
13
library/std/src/sys/common/mod.rs
Normal file
@ -0,0 +1,13 @@
|
||||
// This module contains code that is shared between all platforms, mostly utility or fallback code.
|
||||
// This explicitly does not include code that is shared between only a few platforms,
|
||||
// such as when reusing an implementation from `unix` or `unsupported`.
|
||||
// In those cases the desired code should be included directly using the #[path] attribute,
|
||||
// not moved to this module.
|
||||
//
|
||||
// Currently `sys_common` contains a lot of code that should live in this module,
|
||||
// ideally `sys_common` would only contain platform-independent abstractions on top of `sys`.
|
||||
// Progress on this is tracked in #84187.
|
||||
|
||||
#![allow(dead_code)]
|
||||
|
||||
pub mod alloc;
|
@ -22,6 +22,8 @@
|
||||
|
||||
#![allow(missing_debug_implementations)]
|
||||
|
||||
mod common;
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(target_os = "vxworks")] {
|
||||
mod vxworks;
|
||||
|
@ -1,6 +1,6 @@
|
||||
use crate::alloc::{GlobalAlloc, Layout, System};
|
||||
use crate::ptr;
|
||||
use crate::sys_common::alloc::{realloc_fallback, MIN_ALIGN};
|
||||
use crate::sys::common::alloc::{realloc_fallback, MIN_ALIGN};
|
||||
|
||||
#[stable(feature = "alloc_system_type", since = "1.28.0")]
|
||||
unsafe impl GlobalAlloc for System {
|
||||
|
@ -5,7 +5,7 @@ use crate::ffi::c_void;
|
||||
use crate::ptr;
|
||||
use crate::sync::atomic::{AtomicPtr, Ordering};
|
||||
use crate::sys::c;
|
||||
use crate::sys_common::alloc::{realloc_fallback, MIN_ALIGN};
|
||||
use crate::sys::common::alloc::{realloc_fallback, MIN_ALIGN};
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
@ -8,9 +8,11 @@
|
||||
//! rest of `std` is complex, with dependencies going in all
|
||||
//! directions: `std` depending on `sys_common`, `sys_common`
|
||||
//! depending on `sys`, and `sys` depending on `sys_common` and `std`.
|
||||
//! Ideally `sys_common` would be split into two and the dependencies
|
||||
//! between them all would form a dag, facilitating the extraction of
|
||||
//! `std::sys` from the standard library.
|
||||
//! This is because `sys_common` not only contains platform-independent code,
|
||||
//! but also code that is shared between the different platforms in `sys`.
|
||||
//! Ideally all that shared code should be moved to `sys::common`,
|
||||
//! and the dependencies between `std`, `sys_common` and `sys` all would form a dag.
|
||||
//! Progress on this is tracked in #84187.
|
||||
|
||||
#![allow(missing_docs)]
|
||||
#![allow(missing_debug_implementations)]
|
||||
@ -46,7 +48,6 @@ macro_rules! rtunwrap {
|
||||
};
|
||||
}
|
||||
|
||||
pub mod alloc;
|
||||
pub mod at_exit_imp;
|
||||
pub mod backtrace;
|
||||
pub mod bytestring;
|
||||
|
Loading…
Reference in New Issue
Block a user