rust/src
bors cd9069ca73 auto merge of #10583 : alexcrichton/rust/privacy-reexport, r=pcwalton
I added a test case which does not compile today, and required changes on
privacy's side of things to get right. Additionally, this moves a good bit of
logic which did not belong in reachability into privacy.

All of reachability should solely be responsible for determining what the
reachable surface area of a crate is given the exported surface area (where the
exported surface area is that which is usable by external crates).

Privacy will now correctly figure out what's exported by deeply looking
through reexports. Previously if a module were reexported under another name,
nothing in the module would actually get exported in the executable. I also
consolidated the phases of privacy to be clearer about what's an input to what.
The privacy checking pass no longer uses the notion of an "all public" path, and
the embargo visitor is no longer an input to the checking pass.

Currently the embargo visitor is built as a saturating analysis because it's
unknown what portions of the AST are going to get re-exported.

This also cracks down on exported methods from impl blocks and trait blocks. If you implement a private trait, none of the symbols are exported, and if you have an impl for a private type none of the symbols are exported either. On the other hand, if you implement a public trait for a private type, the symbols are still exported. I'm unclear on whether this last part is correct, but librustc will fail to link unless it's in place.
2013-11-22 10:06:35 -08:00
..
compiletest Move std::rt::io to std::io 2013-11-11 20:44:07 -08:00
driver remove rust and rusti from driver.rs 2013-10-19 13:31:39 +04:00
etc Fix --local-rust-root option on Windows 2013-11-21 12:32:03 +09:00
gyp@f407f09c94 Upgrade libuv to the current master (again) 2013-09-06 11:12:49 -07:00
libextra Remove NonCopyable::new 2013-11-19 20:27:48 -08:00
librustc auto merge of #10583 : alexcrichton/rust/privacy-reexport, r=pcwalton 2013-11-22 10:06:35 -08:00
librustdoc Process ffi generics in rustdoc 2013-11-21 13:18:40 -08:00
librustpkg auto merge of #10526 : itdaniher/rust/master, r=pcwalton 2013-11-17 21:11:24 -08:00
librustuv auto merge of #10558 : alexcrichton/rust/faster-stdout, r=pcwalton,pcwalton 2013-11-19 05:16:24 -08:00
libstd auto merge of #10610 : thestinger/rust/breakpoint, r=pnkfelix 2013-11-22 07:31:35 -08:00
libsyntax Remove ty_mac 2013-11-21 22:59:56 +09:00
libuv@7ac7e0248b Fix usage of libuv for windows 2013-11-10 12:23:57 -08:00
llvm@c9ffab392a Upgrade LLVM to close #9117 2013-09-15 20:26:40 -07:00
rt Implement more native file I/O 2013-11-19 09:59:21 -08:00
rustllvm add support for the cold function attribute 2013-10-28 15:34:50 -04:00
test auto merge of #10583 : alexcrichton/rust/privacy-reexport, r=pcwalton 2013-11-22 10:06:35 -08:00
README.txt drop the linenoise library 2013-10-16 22:57:51 -04:00
snapshots.txt Register new snapshots 2013-11-10 17:51:56 -08:00

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

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

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