rust/src
bors b738b5766e auto merge of #6754 : thestinger/rust/noalias, r=nikomatsakis
The compiler guarantees that there are no other references to a unique pointer when it's passed by-value to a function.

The existence of the header and annihilator don't matter since it's not relevant to the call:

> For a call to the parent function, dependencies between memory references from before or after the call and from those during the call are “irrelevant” to the noalias keyword for the arguments and return value used in that call.

@graydon's tracing garbage collector stores the metadata outside of the boxes, so that won't be a problem. I'm unsure if updating the header while inside a function where it's marked as `noalias` would be a problem anyway since you never actually read or write to the header.

@nikomatsakis: r?
2013-05-28 02:59:03 -07:00
..
compiletest Refactor core::run in order to address many of the issues 2013-05-27 13:50:33 +01:00
driver libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra 2013-05-22 21:57:07 -07:00
etc update ctags define 2013-05-27 13:58:27 +09:00
libextra auto merge of #6769 : catamorphism/rust/issue-4994, r=thestinger 2013-05-28 00:44:05 -07:00
libfuzzer Refactor core::run in order to address many of the issues 2013-05-27 13:50:33 +01:00
librust Refactor core::run in order to address many of the issues 2013-05-27 13:50:33 +01:00
librustc auto merge of #6754 : thestinger/rust/noalias, r=nikomatsakis 2013-05-28 02:59:03 -07:00
librustdoc Refactor core::run in order to address many of the issues 2013-05-27 13:50:33 +01:00
librusti cleanup warnings from librusti 2013-05-23 17:57:07 -07:00
librustpkg Refactor core::run in order to address many of the issues 2013-05-27 13:50:33 +01:00
libstd auto merge of #6724 : thestinger/rust/swap_fast, r=thestinger 2013-05-27 15:56:08 -07:00
libsyntax Prevent refcount cycles during linting 2013-05-27 22:22:09 -05:00
libuv@dfae9c3e95 libsyntax: Fix more merge fallout. 2013-05-22 21:57:11 -07:00
llvm@2e9f0d21fe llvm: Unrevert change 2013-05-08 17:04:03 -07:00
rt Use passing by-value in gmtime, mktime 2013-05-27 10:02:48 -07:00
rustllvm rustllvm: Use target alignment for atomic load/store 2013-05-20 17:28:06 -07:00
test Add xfail'd test for #6762. 2013-05-27 15:21:45 -04:00
README.txt Rename cargo to rustpkg and start over fresh 2013-02-15 18:04:10 -08:00
snapshots.txt Register snapshots 2013-05-19 23:34:32 -07:00

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

Source layout:

librustc/          The self-hosted compiler

libcore/           The core library (imported and linked by default)
libstd/            The standard 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