rust/src
2010-08-09 08:49:54 -07:00
..
boot Synthesize a flush_chan upcall right before a channel's ref_count drops to zero. This should only happen in the Rust code and not in the drop glue, or on the unwind path. This change allows the task owning the channel to block on a flush and delete its own channel. This change also cleans up some code around rust_port and rust_chan. 2010-08-09 08:15:34 -07:00
comp Switch machine-type lexemes to use suffixes. Remove support for foo(bar) as a cast notation. Closes #129. 2010-07-27 19:21:51 -07:00
etc Add a valgrind suppression for Snow Leopard dyld 2010-08-05 12:00:34 -07:00
lib Implement _str.len() to return the number of bytes, rename it to byte_len(), 2010-08-06 17:29:21 -07:00
rt Synthesize a flush_chan upcall right before a channel's ref_count drops to zero. This should only happen in the Rust code and not in the drop glue, or on the unwind path. This change allows the task owning the channel to block on a flush and delete its own channel. This change also cleans up some code around rust_port and rust_chan. 2010-08-09 08:15:34 -07:00
test Updated/added test cases. 2010-08-09 06:53:37 -07:00
Makefile XFailed some tests. 2010-08-09 08:49:54 -07:00
README Add a boot/README file explaining rustboot's organization a bit. 2010-07-11 14:54:43 -07:00
run.py Added a python script to run test cases repeatedly. This helps with debugging race conditions. 2010-08-09 07:27:39 -07:00

This is preliminary version of the Rust compiler.

Source layout:

boot/              The bootstrap compiler
boot/README        - More-detailed guide to it.
boot/fe            - Front end (lexer, parser, AST)
boot/me            - Middle end (resolve, check, layout, trans)
boot/be            - Back end (IL, RA, insns, asm, objfiles)
boot/util          - Ubiquitous helpers
boot/llvm          - LLVM-based alternative back end
boot/driver        - Compiler driver

comp/              The self-hosted compiler (doesn't exist yet)
comp/*             - Same structure as in boot/

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,util}     - Small utility classes for the runtime.

test/              Testsuite (for both bootstrap and self-hosted)
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

Please be gentle, it's a work in progress.