-This is a preliminary version of the Rust compiler, libraries and tools.
+This directory contains the source code of the rust project, including:
+- `rustc` and its tests
+- `libstd`
+- Various submodules for tools, like rustdoc, rls, etc.
-Source layout:
+For more information on how various parts of the compiler work, see the [rustc guide].
-| Path | Description |
-| ------------------- | --------------------------------------------------------- |
-| `librustc/` | The self-hosted compiler |
-| `liballoc/` | Rust's core allocation library |
-| `libcore/` | The Rust core library |
-| `libdebug/` | Debugging utilities |
-| `libstd/` | The standard library (imported and linked by default) |
-| `libsyntax/` | The Rust parser and pretty-printer |
-| `libtest/` | Rust's test-runner code |
-| ------------------- | --------------------------------------------------------- |
-| `libarena/` | The arena (a fast but limited) memory allocator |
-| `libbacktrace/` | The libbacktrace library |
-| `libcollections/` | A collection of useful data structures and containers |
-| `libflate/` | Simple compression library |
-| `libfmt_macros/` | Macro support for format strings |
-| `libfourcc/` | Data format identifier library |
-| `libgetopts/` | Get command-line-options library |
-| `libglob/` | Unix glob patterns library |
-| `libgraphviz/` | Generating files for Graphviz |
-| `libhexfloat/` | Hexadecimal floating-point literals |
-| `liblibc/` | Bindings for the C standard library |
-| `liblog/` | Utilities for program-wide and customizable logging |
-| `libnum/` | Extended number support library (complex, rational, etc) |
-| `librand/` | Random numbers and distributions |
-| `libregex/` | Regular expressions |
-| `libregex_macros/` | The regex! syntax extension |
-| `libsemver/` | Rust's semantic versioning library |
-| `libserialize/` | Encode-Decode types library |
-| `libsync/` | Concurrency mechanisms and primitives |
-| `libterm/` | ANSI color library for terminals |
-| `libtime/` | Time operations library |
-| `liburl/` | URL handling lirary |
-| `libuuid/` | UUID's handling code |
-| ------------------- | --------------------------------------------------------- |
-| `rt/` | The runtime system |
-| `rt/rust_*.c` | - Some of the runtime services |
-| `rt/vg` | - Valgrind headers |
-| `rt/msvc` | - MSVC support |
-| `rt/sundown` | - The Markdown library used by rustdoc |
-| ------------------- | --------------------------------------------------------- |
-| `compiletest/` | The test runner |
-| `test/` | Testsuite |
-| `test/codegen` | - Tests for the LLVM IR infrastructure |
-| `test/compile-fail` | - Tests that should fail to compile |
-| `test/debug-info` | - Tests for the `debuginfo` tool |
-| `test/run-fail` | - Tests that should compile, run and fail |
-| `test/run-make` | - Tests that depend on a Makefile infrastructure |
-| `test/run-pass` | - Tests that should compile, run and succeed |
-| `test/bench` | - Benchmarks and miscellaneous |
-| `test/pretty` | - Pretty-printer tests |
-| `test/auxiliary` | - Dependencies of tests |
-| ------------------- | --------------------------------------------------------- |
-| `librustdoc/` | The Rust API documentation tool |
-| ------------------- | --------------------------------------------------------- |
-| `llvm/` | The LLVM submodule |
-| `rustllvm/` | LLVM support code |
-| ------------------- | --------------------------------------------------------- |
-| `etc/` | Scripts, editors support, misc |
+Their is also useful content in the following READMEs, which are gradually being moved over to the guide:
+- https://github.com/rust-lang/rust/tree/master/src/librustc/ty/maps
+- https://github.com/rust-lang/rust/tree/master/src/librustc/dep_graph
+- https://github.com/rust-lang/rust/blob/master/src/librustc/infer/region_constraints
+- https://github.com/rust-lang/rust/tree/master/src/librustc/infer/higher_ranked
+- https://github.com/rust-lang/rust/tree/master/src/librustc/infer/lexical_region_resolve
-
-NOTE: This list (especially the second part of the table which contains modules and libraries)
-is highly volatile and subject to change.
+[rustc guide]: https://rust-lang-nursery.github.io/rustc-guide/about-this-guide.html