rust/src/README.md
George Papanikolaou 54abbda9b4 Update source code layout in src/
with the new modules that moved from extra,
and with other undocumented folders.
also add a note about potential changes.
2014-02-24 21:22:27 -08:00

59 lines
4.3 KiB
Markdown

This is a preliminary version of the Rust compiler, libraries and tools.
Source layout:
| Path | Description |
| ------------------- | --------------------------------------------------------- |
| `librustc/` | The self-hosted compiler |
| `libstd/` | The standard library (imported and linked by default) |
| `libextra/` | The "extras" library (slightly more peripheral code) |
| `libgreen/` | The M:N runtime library |
| `libnative/` | The 1:1 runtime library |
| `libsyntax/` | The Rust parser and pretty-printer |
| `libcollections/` | A collection of useful data structures and containers |
| `libnum/` | Extended number support library (complex, rational, etc) |
| `libtest/` | Rust's test-runner code |
| ------------------- | --------------------------------------------------------- |
| `libarena/` | The arena (a fast but limited) memory allocator |
| `libflate/` | Simple compression library |
| `libfourcc/` | Data format identifier library |
| `libgetopts/` | Get command-line-options library |
| `libglob/` | Unix glob patterns library |
| `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 |
| `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 |
| `libuv/` | The libuv submodule |
| `librustuv/` | Rust libuv support code |
| ------------------- | --------------------------------------------------------- |
| `llvm/` | The LLVM submodule |
| `rustllvm/` | LLVM support code |
| ------------------- | --------------------------------------------------------- |
| `etc/` | Scripts, editors support, misc |
NOTE: This list (especially the second part of the table which contains modules and libraries)
is highly volatile and subject to change.