about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-05-05rustc: Fix a bunch of argument-passing bugs in decl_native_fn_and_pair()Patrick Walton-54/+82
2011-05-05Fix x86.rs triple for linux.Graydon Hoare-1/+1
2011-05-05Consolidating expr_to_str functions.Lindsey Kuper-22/+8
2011-05-05Use symbolic register names so that we get the correct encoding on OS X.Rafael Ávila de Espíndola-2/+2
2011-05-05Change the setup so that rust_activate_glue returns to rust_exit_task_glueRafael Ávila de Espíndola-16/+17
and rust_exit_task_glue calls the rust main. This is simpler since we only need to setup one frame. It also matches what ld.so does, so gdb is happy and stops a backtrace at rust_exit_task_glue instead of continuing past whatever function happened to be before rust_exit_task_glue is the object file. This is only the rustc changes and should be merged first.
2011-05-05rustc: Add Rust intrinsic support to the crate metadata reader and writerPatrick Walton-3/+7
2011-05-05rustc: Fix bug in equal_abi that was preventing Rust intrinsics from workingPatrick Walton-0/+6
2011-05-05Add --help, --version and -v flags (not yet supporting GIT_REV env var, ↵Graydon Hoare-4/+23
waiting on snapshot).
2011-05-05rustc: Link with intrinsics.bc; change intrinsics linkage to linkonce_odrPatrick Walton-2/+28
2011-05-05rustc: Add a binding to LLVM's bitcode parserPatrick Walton-0/+9
2011-05-05Enforce in typechecker that preds return a boolTim Chevalier-0/+11
as well as a test case
2011-05-05Bring back "pred" syntax for writing predicates for checkTim Chevalier-22/+155
This commit reinstates the requirement that the predicate in a "check" must be a manifest call to a special kind of function declared with the new "pred" keyword instead of "fn". Preds must have a boolean return type and can only call other preds; they can't have any effects (as enforced by the typechecker). The arguments to a predicate in a check expression must be slot variables or literals.
2011-05-05Check well-formedness of constraintsTim Chevalier-6/+37
Check that the operand in a constraint is an explicit name, and that the operands are all local variables or literals. Still need to check that the name refers to a pure function.
2011-05-05Check that the operand in a check is a callTim Chevalier-8/+19
In addition, fix bug in fold that was turning asserts into checks. More typechecking still needs to be done.
2011-05-05Remove 'deprecated mutable...' from our codeMarijn Haverbeke-14/+14
This should make compilation a bit less noisy.
2011-05-05Return a fresh, unreachable context after ret, break, and contMarijn Haverbeke-2/+2
This ensures we don't get compile errors on unreachable code (see test/run-pass/artificial-block.rs for an example of sane code that wasn't compiling). In the future, we might want to warn about non-trivial code appearing in an unreachable context, and/or avoid generating unreachable code altogether (though I'm sure LLVM will weed it out as well).
2011-05-05Eradicate fold from capture.rsMarijn Haverbeke-59/+54
The pass now uses walk.
2011-05-05rustc: Add a Link module; move crate writing to it to slim down trans slightlyPatrick Walton-173/+197
2011-05-04rustllvm: Add bindings to the LLVM linkerPatrick Walton-1/+3
2011-05-04rustc: Detect the system root and allow the user to override if necessaryPatrick Walton-4/+22
2011-05-04Add #env syntax extension for plucking strings out of the compilation ↵Graydon Hoare-0/+76
environment.
2011-05-05Fix and re-enable destructorsMarijn Haverbeke-6/+7
There was some confusion on whether the destructors took their argument by pointer or direct value. They now take it directly, just like other methods. You no longer get a segfault when a constructor actually does something with its self value.
2011-05-04Add a structure for passing option flags around the compiler, put it in ↵Graydon Hoare-87/+106
session, and use it.
2011-05-04Add missing ret statements to check_modBrian Anderson-0/+4
Un-XFAIL compile-fail export tests
2011-05-04Support new -g flag, only mangle glue names by type when it's passed.Graydon Hoare-18/+30
2011-05-03rustc: Stub support for Rust intrinsicsPatrick Walton-28/+61
2011-05-03Revert "Rename the "llvm" API to "llvm-intrinsic"" due to tinderbox bustagePatrick Walton-2/+1
This reverts commit 6871c245a67fab222eccc2a21dcb620d11d3b0d0.
2011-05-03Start sketching --depend support in rustc.Graydon Hoare-1/+19
2011-05-03Rename the "llvm" API to "llvm-intrinsic"Patrick Walton-1/+2
2011-05-03rustc: Refactor metadata.Encode.* to not require a type abbreviation table ↵Patrick Walton-45/+53
if abbreviation isn't enabled
2011-05-03rustc: Name type glue properlyPatrick Walton-3/+17
2011-05-02Extract ast.is_exported from the resolve moduleBrian Anderson-18/+23
2011-05-02rustc: Time the Rust translation and LLVM passes separatelyPatrick Walton-6/+11
2011-05-02rustc: Remove the artificial block in ty.rs. Fixes self-hosting. Add a test ↵Patrick Walton-1/+1
case for this, XFAIL'd.
2011-05-02Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton-505/+510
the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
2011-05-02Revert "Use different syntax for checks that matter to typestate"Graydon Hoare-510/+505
This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
2011-05-02rustc: Allocate tydescs on the stack when it's safe to do so. 60% compile ↵Patrick Walton-12/+33
speed increase.
2011-05-02Use different syntax for checks that matter to typestateTim Chevalier-505/+510
This giant commit changes the syntax of Rust to use "assert" for "check" expressions that didn't mean anything to the typestate system, and continue using "check" for checks that are used as part of typestate checking. Most of the changes are just replacing "check" with "assert" in test cases and rustc.
2011-05-02rustc: Add a "fat tydesc" LLVM type to transPatrick Walton-0/+6
2011-05-01Remove the search direction from resolve's fold environmentBrian Anderson-36/+31
It's not actually involved in the fold so it can just be passed between the functions that need it.
2011-05-01Hide unexported tag variantsBrian Anderson-3/+5
2011-05-01Implement simple module exportBrian Anderson-12/+60
2011-05-01rustc: Preserve dots in input path when using an implicit output pathBrian Anderson-2/+2
This avoids outputing, e.g. /test.bc for ../test.rs
2011-05-01Fix a typo in the documentation.Ralph Giles-1/+1
2011-04-29rustc: Run scope cleanups in the implicit block created by log statements. ↵Patrick Walton-14/+18
Fixes a leak.
2011-04-29rustc: Add constants for LLVM function attributesPatrick Walton-0/+24
2011-04-29rustc: Emit pure native glue; we don't call it yetPatrick Walton-20/+50
2011-04-29rustc: Start threading a purity flag through upcallsPatrick Walton-20/+26
2011-04-29Temporarily disable dtors; they broke self-hosting.Graydon Hoare-1/+3
2011-04-29rustc: First steps to determine whether tydescs escapePatrick Walton-17/+30