rust/src
Alex Crichton 9668ab58f3 std: Move libnative task count bookkeeping to std
When using tasks in Rust, the expectation is that the runtime does not exit
before all tasks have exited. This is enforced in libgreen through the
`SchedPool` type, and it is enforced in libnative through a `bookkeeping` module
and a global count/mutex pair. Unfortunately, this means that a process which
originates with libgreen will not wait for spawned native tasks.

In order to fix this problem, the bookkeeping module was moved from libnative to
libstd so the runtime itself can wait for native tasks to exit. Green tasks do
not manage themselves through this bookkeeping module, but native tasks will
continue to manage themselves through this module.

Closes #12684
2014-03-05 21:48:08 -08:00
..
compiler-rt@f4b221571c
compiletest
doc doc: use the newer favicon 2014-03-04 18:37:51 +01:00
driver
etc auto merge of #12663 : MicahChalmer/rust/emacs-remove-ws-bug-warning, r=brson 2014-03-02 20:56:30 -08:00
gyp@1e46da1000
libarena
libcollections
libextra doc: use the newer favicon 2014-03-04 18:37:51 +01:00
libflate
libfourcc
libgetopts
libglob
libgreen auto merge of #12667 : Kimundi/rust/any_improv, r=cmr 2014-03-04 13:16:41 -08:00
libnative std: Move libnative task count bookkeeping to std 2014-03-05 21:48:08 -08:00
libnum Implemented checked arithmetic for Big(U)Ints 2014-03-03 19:20:21 +01:00
librustc auto merge of #12667 : Kimundi/rust/any_improv, r=cmr 2014-03-04 13:16:41 -08:00
librustdoc rustdoc: tweak highlighting 2014-03-04 18:37:09 +01:00
librustuv
libsemver
libserialize Cleaned up std::any 2014-03-04 21:10:23 +01:00
libstd std: Move libnative task count bookkeeping to std 2014-03-05 21:48:08 -08:00
libsync Cleaned up std::any 2014-03-04 21:10:23 +01:00
libsyntax doc: use the newer favicon 2014-03-04 18:37:51 +01:00
libterm doc: use the newer favicon 2014-03-04 18:37:51 +01:00
libtest
libtime
libuuid
libuv@800b56fe6a
llvm@263c617d66
rt native: Stop using readdir() 2014-03-05 09:11:10 -08:00
rustllvm
test std: Move libnative task count bookkeeping to std 2014-03-05 21:48:08 -08:00
README.md
snapshots.txt Register new snapshots 2014-03-03 18:00:52 -08:00

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.