-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Move platform modules into sys::pal
#117285
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 12 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
99128b7
std: begin moving platform support modules into `pal`
joboet 4da4958
std: fix module references on hermit
joboet 4ab475d
std: fix module reference on SGX
joboet cac470c
std: fix module references on UEFI
joboet 411f34b
std: fix module references on UNIX
joboet d6efead
std: fix module references on Windows
joboet 41c05c4
miri: update reference to PAL module on Windows
joboet 54e1b89
std: update miri tests
joboet 2d30a26
update path reference in license definitions
joboet 762cd48
update paths in tools
joboet 7c436a8
update paths in comments
joboet df3cb23
update debuginfo tests on Windows
joboet 0cfc995
don't break a good link
joboet File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,124 +1,8 @@ | ||
//! Platform-dependent platform abstraction. | ||
//! | ||
//! The `std::sys` module is the abstracted interface through which | ||
//! `std` talks to the underlying operating system. It has different | ||
//! implementations for different operating system families, today | ||
//! just Unix and Windows, and initial support for Redox. | ||
//! | ||
//! The centralization of platform-specific code in this module is | ||
//! enforced by the "platform abstraction layer" tidy script in | ||
//! `tools/tidy/src/pal.rs`. | ||
//! | ||
//! This module is closely related to the platform-independent system | ||
//! integration code in `std::sys_common`. See that module's | ||
//! documentation for details. | ||
//! | ||
//! In the future it would be desirable for the independent | ||
//! implementations of this module to be extracted to their own crates | ||
//! that `std` can link to, thus enabling their implementation | ||
//! out-of-tree via crate replacement. Though due to the complex | ||
//! inter-dependencies within `std` that will be a challenging goal to | ||
//! achieve. | ||
|
||
#![allow(missing_debug_implementations)] | ||
|
||
pub mod common; | ||
mod personality; | ||
|
||
cfg_if::cfg_if! { | ||
if #[cfg(unix)] { | ||
mod unix; | ||
pub use self::unix::*; | ||
} else if #[cfg(windows)] { | ||
mod windows; | ||
pub use self::windows::*; | ||
} else if #[cfg(target_os = "solid_asp3")] { | ||
mod solid; | ||
pub use self::solid::*; | ||
} else if #[cfg(target_os = "hermit")] { | ||
mod hermit; | ||
pub use self::hermit::*; | ||
} else if #[cfg(target_os = "wasi")] { | ||
mod wasi; | ||
pub use self::wasi::*; | ||
} else if #[cfg(target_family = "wasm")] { | ||
mod wasm; | ||
pub use self::wasm::*; | ||
} else if #[cfg(target_os = "xous")] { | ||
mod xous; | ||
pub use self::xous::*; | ||
} else if #[cfg(target_os = "uefi")] { | ||
mod uefi; | ||
pub use self::uefi::*; | ||
} else if #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] { | ||
mod sgx; | ||
pub use self::sgx::*; | ||
} else if #[cfg(target_os = "teeos")] { | ||
mod teeos; | ||
pub use self::teeos::*; | ||
} else { | ||
mod unsupported; | ||
pub use self::unsupported::*; | ||
} | ||
} | ||
|
||
cfg_if::cfg_if! { | ||
// Fuchsia components default to full backtrace. | ||
if #[cfg(target_os = "fuchsia")] { | ||
pub const FULL_BACKTRACE_DEFAULT: bool = true; | ||
} else { | ||
pub const FULL_BACKTRACE_DEFAULT: bool = false; | ||
} | ||
} | ||
|
||
#[cfg(not(test))] | ||
cfg_if::cfg_if! { | ||
if #[cfg(target_os = "android")] { | ||
pub use self::android::log2f32; | ||
pub use self::android::log2f64; | ||
} else { | ||
#[inline] | ||
pub fn log2f32(n: f32) -> f32 { | ||
unsafe { crate::intrinsics::log2f32(n) } | ||
} | ||
|
||
#[inline] | ||
pub fn log2f64(n: f64) -> f64 { | ||
unsafe { crate::intrinsics::log2f64(n) } | ||
} | ||
} | ||
} | ||
|
||
// Solaris/Illumos requires a wrapper around log, log2, and log10 functions | ||
// because of their non-standard behavior (e.g., log(-n) returns -Inf instead | ||
// of expected NaN). | ||
#[cfg(not(test))] | ||
#[cfg(any(target_os = "solaris", target_os = "illumos"))] | ||
#[inline] | ||
pub fn log_wrapper<F: Fn(f64) -> f64>(n: f64, log_fn: F) -> f64 { | ||
if n.is_finite() { | ||
if n > 0.0 { | ||
log_fn(n) | ||
} else if n == 0.0 { | ||
f64::NEG_INFINITY // log(0) = -Inf | ||
} else { | ||
f64::NAN // log(-n) = NaN | ||
} | ||
} else if n.is_nan() { | ||
n // log(NaN) = NaN | ||
} else if n > 0.0 { | ||
n // log(Inf) = Inf | ||
} else { | ||
f64::NAN // log(-Inf) = NaN | ||
} | ||
} | ||
|
||
#[cfg(not(test))] | ||
#[cfg(not(any(target_os = "solaris", target_os = "illumos")))] | ||
#[inline] | ||
pub fn log_wrapper<F: Fn(f64) -> f64>(n: f64, log_fn: F) -> f64 { | ||
log_fn(n) | ||
} | ||
|
||
#[cfg(not(target_os = "uefi"))] | ||
pub type RawOsError = i32; | ||
/// The PAL (platform abstraction layer) contains platform-specific abstractions | ||
/// for implementing the features in the other submodules, e.g. UNIX file | ||
/// descriptors. | ||
mod pal; | ||
|
||
// FIXME(117276): remove this, move feature implementations into individual | ||
// submodules. | ||
pub use pal::*; |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion
2
library/std/src/sys/hermit/alloc.rs → library/std/src/sys/pal/hermit/alloc.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion
2
library/std/src/sys/hermit/fd.rs → library/std/src/sys/pal/hermit/fd.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
library/std/src/sys/hermit/net.rs → library/std/src/sys/pal/hermit/net.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
library/std/src/sys/hermit/stdio.rs → library/std/src/sys/pal/hermit/stdio.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
library/std/src/sys/hermit/thread.rs → library/std/src/sys/pal/hermit/thread.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
6 changes: 3 additions & 3 deletions
6
library/std/src/sys/hermit/time.rs → library/std/src/sys/pal/hermit/time.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.