mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-28 03:07:24 +03:00
ca2778ede7
* channel() - #[unstable]. This will likely remain forever
* sync_channel(n: int) - #[unstable with comment]. Concerns have ben raised
about the usage of the term "synchronous channel" because that generally only
applies to the case where n == 0. If n > 0 then these channels are often
referred to as buffered channels.
* Sender::send(), SyncSender::send(), Receiver::recv() - #[experimental]. These
functions directly violate the general guideline of not providing a failing
and non-failing variant. These functions were explicitly selected for being
excused from this guideline, but recent discussions have cast doubt on that
decision. These functions are #[experimental] for now until a decision is made
as they are candidates for removal.
* Sender::send_opt(), SyncSender::send_opt(), Receiver::recv_opt() - #[unstable
with a comment]. If the above no-`_opt` functions are removed, these functions
will be renamed to the non-`_opt` variants.
* SyncSender::try_send(), Receiver::try_recv() - #[unstable with a comment].
These return types of these functions to not follow general conventions. They
are consistent with the rest of the api, but not with the rest of the
libraries. Until their return types are nailed down, these functions are
#[unstable].
* Receiver::iter() - #[unstable]. This will likely remain forever.
* std::com::select - #[experimental]. The functionality is likely to remain in
some form forever, but it is highly unlikely to remain in its current form. It
is unknown how much breakage this will cause if and when the api is
redesigned, so the entire module and its components are all experimental.
* DuplexStream - #[deprecated]. This type is not composable with other channels
in terms of selection or other expected locations. It can also not be used
with ChanWriter and ChanReader, for example. Due to it being only lightly
used, and easily replaced with two channels, this type is being deprecated and
slated for removal.
* Clone for {,Sync}Sender - #[unstable]. This will likely remain forever.
This is a preliminary version of the Rust compiler, libraries and tools.
Source layout:
| 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) |
libgreen/ |
The M:N runtime library |
libnative/ |
The 1:1 runtime library |
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 |
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.