rust/src
Tim Chevalier 63e87c102d typestate_check can now handle expr_block, expr_if, and expr_binary
(caveat for the latter: it assumes that binary operations are strict;
a TODO is to detect or and and and correctly reflect that they're lazy
in the second argument). I had to add an ann field to ast.block,
resulting in the usual boilerplate changes.

Test cases that currently work (if you uncomment the typestate pass
in the driver) (all these are under test/compile-fail):

fru-typestate
ret-uninit
use-uninit
use-uninit-2
use-uninit-3
2011-04-12 19:03:52 -07:00
..
boot Disable effect checking in rustboot 2011-04-08 18:44:58 +02:00
comp typestate_check can now handle expr_block, expr_if, and expr_binary 2011-04-12 19:03:52 -07:00
etc Fix indentation in tidy. 2011-03-19 18:34:46 -07:00
lib Further work on typestate. Handles expr_rec and expr_assign now. 2011-04-12 14:31:46 -07:00
rt Remove silly legacy glue-offset encoding, predicate runtime adjustments by ABI. LLVM should inline most glue now. 2011-04-09 00:54:46 +00:00
rustllvm Add LLVMAddLoopIdiomPass. 2011-04-12 16:13:31 -04:00
test Un-XFAIL generic-tag-corruption.rs. 2011-04-12 12:58:43 -07:00
README Mention test/bench in README 2011-03-14 15:52:48 -07:00
run.py Make run.py only search in the run-pass directory. 2010-09-07 18:41:07 -07:00

This is preliminary version of the Rust compiler(s).

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/driver        - Compiler driver

comp/              The self-hosted compiler ("rustc": incomplete)
comp/*             - Similar 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
test/bench         - Benchmarks and miscellanea

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