about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2016-09-30 23:56:28 +0000
committerBrian Anderson <banderson@mozilla.com>2016-11-01 17:08:24 +0000
commitee71dc54765c161c51b2a8d860f9ebf95c6d7e12 (patch)
tree62dadbc840eeb2d7576ea2e82a84067e59706eb1 /src/libstd
parentca30691813836e1c6896e5ba5d4397eb717e7270 (diff)
downloadrust-ee71dc54765c161c51b2a8d860f9ebf95c6d7e12.tar.gz
rust-ee71dc54765c161c51b2a8d860f9ebf95c6d7e12.zip
Document sys_common and sys
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sys/mod.rs22
-rw-r--r--src/libstd/sys_common/mod.rs14
2 files changed, 36 insertions, 0 deletions
diff --git a/src/libstd/sys/mod.rs b/src/libstd/sys/mod.rs
index f7e1a0a075a..84f41a1c535 100644
--- a/src/libstd/sys/mod.rs
+++ b/src/libstd/sys/mod.rs
@@ -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)]
diff --git a/src/libstd/sys_common/mod.rs b/src/libstd/sys_common/mod.rs
index 2845f895f18..ac2b27844dc 100644
--- a/src/libstd/sys_common/mod.rs
+++ b/src/libstd/sys_common/mod.rs
@@ -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;