rust/src
bors 07183ea6e7 auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton
cc #6004 and #3273

This is a rewrite of TLS to get towards not requiring `@` when using task local storage. Most of the rewrite is straightforward, although there are two caveats:

1. Changing `local_set` to not require `@` is blocked on #7673
2. The code in `local_pop` is some of the most unsafe code I've written. A second set of eyes should definitely scrutinize it...

The public-facing interface currently hasn't changed, although it will have to change because `local_data::get` cannot return `Option<T>`, nor can it return `Option<&T>` (the lifetime isn't known). This will have to be changed to be given a closure which yield `&T` (or as an Option). I didn't do this part of the api rewrite in this pull request as I figured that it could wait until when `@` is fully removed.

This also doesn't deal with the issue of using something other than functions as keys, but I'm looking into using static slices (as mentioned in the issues).
2013-07-11 19:52:37 -07:00
..
compiletest extra: add explicit ratchet-noise-percent option to benchmark ratchet, plus a few test breaking fixes. 2013-07-11 15:16:11 -07:00
driver
etc Fix Vim indentation for inline closures. 2013-07-11 14:38:32 -04:00
libextra auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton 2013-07-11 19:52:37 -07:00
librust
librustc auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton 2013-07-11 19:52:37 -07:00
librustdoc auto merge of #7117 : jensnockert/rust/freestanding, r=cmr 2013-07-09 13:34:50 -07:00
librusti Fix tests 2013-07-11 18:57:19 -07:00
librustpkg auto merge of #7262 : nikomatsakis/rust/ref-bindings-in-irrefut-patterns, r=catamorphism 2013-07-08 18:49:46 -07:00
libstd auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton 2013-07-11 19:52:37 -07:00
libsyntax auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton 2013-07-11 19:52:37 -07:00
libuv@dfae9c3e95
llvm@2e9f0d21fe
rt auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton 2013-07-11 19:52:37 -07:00
rustllvm
test auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton 2013-07-11 19:52:37 -07:00
README.txt
snapshots.txt

This is a preliminary version of the Rust compiler, libraries and tools

Source layout:

librustc/          The self-hosted compiler

libstd/            The standard library (imported and linked by default)
libextra/          The "extras" library (slightly more peripheral code)
libsyntax/         The Rust parser and pretty-printer

rt/                The runtime system
rt/rust_*.cpp      - The majority of the runtime services
rt/isaac           - The PRNG used for pseudo-random choices in the runtime
rt/bigint          - The bigint library used for the 'big' type
rt/uthash          - Small hashtable-and-list library for C, used in runtime
rt/sync            - Concurrency utils
rt/util            - Small utility classes for the runtime.
rt/vg              - Valgrind headers
rt/msvc            - MSVC support
rt/linenoise       - a readline-like line editing library

test/              Testsuite
test/compile-fail  - Tests that should fail to compile
test/run-fail      - Tests that should compile, run and fail
test/run-pass      - Tests that should compile, run and succeed
test/bench         - Benchmarks and miscellanea
test/pretty        - Pretty-printer tests
test/auxiliary     - Dependencies of tests

compiletest/       The test runner

librustpkg/        The package manager and build system

librusti/          The JIT REPL

librustdoc/        The Rust API documentation tool

llvm/              The LLVM submodule

libuv/             The libuv submodule

rustllvm/          LLVM support code

libfuzzer/         A collection of fuzz testers

etc/               Scripts, editor support, misc