rust/src
bors c44826fdcd auto merge of #9677 : thestinger/rust/immediate, r=huonw
C-like enums are excluded from this for now, because the code paths
specific to them need to be changed.

    fn foo() -> Option<~int> { Some(~5) }

Before:

    ; Function Attrs: uwtable
    define void @_ZN3foo18hdec6e36682b87eeaf4v0.0E(%"enum.std::option::Option<~int>[#1]"* noalias nocapture sret, { i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 {
    "function top level":
      %2 = tail call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN2rt11global_heap10malloc_raw17h56c543b77f9b78aY11v0.9$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 8)
      %3 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %2 to i64*
      store i64 5, i64* %3, align 8
      %4 = getelementptr inbounds %"enum.std::option::Option<~int>[#1]"* %0, i64 0, i32 0
      store i64* %3, i64** %4, align 8
      ret void
    }

After:

    ; Function Attrs: uwtable
    define %"enum.std::option::Option<~int>[#1]" @_ZN3foo18h2cbf6557a3143edah4v0.0E({ i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 {
    "function top level":
      %1 = tail call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN2rt11global_heap10malloc_raw18hb1e9dd1beab35edau11v0.9$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 8)
      %2 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %1 to i64*
      store i64 5, i64* %2, align 8
      %oldret = insertvalue %"enum.std::option::Option<~int>[#1]" undef, i64* %2, 0
      ret %"enum.std::option::Option<~int>[#1]" %oldret
    }
2013-10-02 07:56:36 -07:00
..
compiletest rpass: Remove usage of fmt! 2013-09-30 23:21:19 -07:00
driver
etc auto merge of #9600 : MicahChalmer/rust/fill-with-code-around, r=catamorphism 2013-10-01 18:56:26 -07:00
gyp@f407f09c94
libextra auto merge of #9665 : alexcrichton/rust/snapshot, r=brson 2013-10-02 02:31:29 -07:00
librust Migrate users of 'loop' to 'continue' 2013-10-01 15:53:13 -07:00
librustc auto merge of #9677 : thestinger/rust/immediate, r=huonw 2013-10-02 07:56:36 -07:00
librustdoc auto merge of #9665 : alexcrichton/rust/snapshot, r=brson 2013-10-02 02:31:29 -07:00
librusti Migrate users of 'loop' to 'continue' 2013-10-01 15:53:13 -07:00
librustpkg Migrate users of 'loop' to 'continue' 2013-10-01 15:53:13 -07:00
libstd auto merge of #9665 : alexcrichton/rust/snapshot, r=brson 2013-10-02 02:31:29 -07:00
libsyntax auto merge of #9673 : huonw/rust/macros, r=catamorphism 2013-10-02 04:21:26 -07:00
libuv@d88cf5652a
llvm@c9ffab392a
rt Expand tidy to prevent binaries from being checked 2013-09-30 10:15:47 -07:00
rustllvm add -Z soft-float option 2013-10-01 11:19:18 +08:00
test auto merge of #9673 : huonw/rust/macros, r=catamorphism 2013-10-02 04:21:26 -07:00
README.txt
snapshots.txt Register new snapshots 2013-10-01 14:12:29 -07: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
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