]> git.lizzy.rs Git - rust.git/commitdiff
Document sys_common and sys
authorBrian Anderson <banderson@mozilla.com>
Fri, 30 Sep 2016 23:56:28 +0000 (23:56 +0000)
committerBrian Anderson <banderson@mozilla.com>
Tue, 1 Nov 2016 17:08:24 +0000 (17:08 +0000)
src/libstd/sys/mod.rs
src/libstd/sys_common/mod.rs

index f7e1a0a075a850e05408c089a30b95436d35b2db..84f41a1c535c75655607739af4629efefc8fbe91 100644 (file)
@@ -8,6 +8,28 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+//! 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.
+//!
+//! The centralization of platform-specific code in this module is
+//! enforced by the "platform abstraction layer" tidy script in
+//! `tools/tidy/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 indepedent
+//! 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.
+
 pub use self::imp::*;
 
 #[cfg(unix)]
index 2845f895f1869e30a174b6f3fde86c6ade9f73fd..ac2b27844dc57fcf023c131b98578e2fb0a4282b 100644 (file)
@@ -8,6 +8,20 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+//! Platform-independent platform abstraction
+//!
+//! This is the platform-independent portion of the standard libraries
+//! platform abstraction layer, whereas `std::sys` is the
+//! platform-specific portion.
+//!
+//! The relationship between `std::sys_common`, `std::sys` and the
+//! 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.
+
 #![allow(missing_docs)]
 
 use sync::Once;