aboutsummaryrefslogtreecommitdiff
path: root/src/comp
Commit message (Collapse)AuthorAgeFilesLines
...
* Consolidating expr_to_str functions.Lindsey Kuper2011-05-055-22/+8
|
* Use symbolic register names so that we get the correct encoding on OS X.Rafael Ávila de Espíndola2011-05-051-2/+2
|
* Change the setup so that rust_activate_glue returns to rust_exit_task_glueRafael Ávila de Espíndola2011-05-051-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.
* rustc: Add Rust intrinsic support to the crate metadata reader and writerPatrick Walton2011-05-052-3/+7
|
* rustc: Fix bug in equal_abi that was preventing Rust intrinsics from workingPatrick Walton2011-05-051-0/+6
|
* Add --help, --version and -v flags (not yet supporting GIT_REV env var, ↵Graydon Hoare2011-05-051-4/+23
| | | | waiting on snapshot).
* rustc: Link with intrinsics.bc; change intrinsics linkage to linkonce_odrPatrick Walton2011-05-052-2/+28
|
* rustc: Add a binding to LLVM's bitcode parserPatrick Walton2011-05-052-0/+9
|
* Enforce in typechecker that preds return a boolTim Chevalier2011-05-051-0/+11
| | | | as well as a test case
* Bring back "pred" syntax for writing predicates for checkTim Chevalier2011-05-057-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.
* Check well-formedness of constraintsTim Chevalier2011-05-052-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.
* Check that the operand in a check is a callTim Chevalier2011-05-052-8/+19
| | | | | | In addition, fix bug in fold that was turning asserts into checks. More typechecking still needs to be done.
* Remove 'deprecated mutable...' from our codeMarijn Haverbeke2011-05-054-14/+14
| | | | This should make compilation a bit less noisy.
* Return a fresh, unreachable context after ret, break, and contMarijn Haverbeke2011-05-051-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).
* Eradicate fold from capture.rsMarijn Haverbeke2011-05-051-59/+54
| | | | The pass now uses walk.
* rustc: Add a Link module; move crate writing to it to slim down trans slightlyPatrick Walton2011-05-055-173/+197
|
* rustllvm: Add bindings to the LLVM linkerPatrick Walton2011-05-041-1/+3
|
* rustc: Detect the system root and allow the user to override if necessaryPatrick Walton2011-05-042-4/+22
|
* Add #env syntax extension for plucking strings out of the compilation ↵Graydon Hoare2011-05-043-0/+76
| | | | environment.
* Fix and re-enable destructorsMarijn Haverbeke2011-05-051-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.
* Add a structure for passing option flags around the compiler, put it in ↵Graydon Hoare2011-05-045-87/+106
| | | | session, and use it.
* Add missing ret statements to check_modBrian Anderson2011-05-041-0/+4
| | | | Un-XFAIL compile-fail export tests
* Support new -g flag, only mangle glue names by type when it's passed.Graydon Hoare2011-05-042-18/+30
|
* rustc: Stub support for Rust intrinsicsPatrick Walton2011-05-034-28/+61
|
* Revert "Rename the "llvm" API to "llvm-intrinsic"" due to tinderbox bustagePatrick Walton2011-05-032-2/+1
| | | | This reverts commit 6871c245a67fab222eccc2a21dcb620d11d3b0d0.
* Start sketching --depend support in rustc.Graydon Hoare2011-05-033-1/+19
|
* Rename the "llvm" API to "llvm-intrinsic"Patrick Walton2011-05-032-1/+2
|
* rustc: Refactor metadata.Encode.* to not require a type abbreviation table ↵Patrick Walton2011-05-033-45/+53
| | | | if abbreviation isn't enabled
* rustc: Name type glue properlyPatrick Walton2011-05-031-3/+17
|
* Extract ast.is_exported from the resolve moduleBrian Anderson2011-05-022-18/+23
|
* rustc: Time the Rust translation and LLVM passes separatelyPatrick Walton2011-05-022-6/+11
|
* rustc: Remove the artificial block in ty.rs. Fixes self-hosting. Add a test ↵Patrick Walton2011-05-021-1/+1
| | | | case for this, XFAIL'd.
* Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton2011-05-0216-505/+510
| | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
* Revert "Use different syntax for checks that matter to typestate"Graydon Hoare2011-05-0216-510/+505
| | | | This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
* rustc: Allocate tydescs on the stack when it's safe to do so. 60% compile ↵Patrick Walton2011-05-021-12/+33
| | | | speed increase.
* Use different syntax for checks that matter to typestateTim Chevalier2011-05-0216-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.
* rustc: Add a "fat tydesc" LLVM type to transPatrick Walton2011-05-021-0/+6
|
* Remove the search direction from resolve's fold environmentBrian Anderson2011-05-011-36/+31
| | | | | It's not actually involved in the fold so it can just be passed between the functions that need it.
* Hide unexported tag variantsBrian Anderson2011-05-011-3/+5
|
* Implement simple module exportBrian Anderson2011-05-011-12/+60
|
* rustc: Preserve dots in input path when using an implicit output pathBrian Anderson2011-05-011-2/+2
| | | | This avoids outputing, e.g. /test.bc for ../test.rs
* Fix a typo in the documentation.Ralph Giles2011-05-011-1/+1
|
* rustc: Run scope cleanups in the implicit block created by log statements. ↵Patrick Walton2011-04-291-14/+18
| | | | Fixes a leak.
* rustc: Add constants for LLVM function attributesPatrick Walton2011-04-291-0/+24
|
* rustc: Emit pure native glue; we don't call it yetPatrick Walton2011-04-293-20/+50
|
* rustc: Start threading a purity flag through upcallsPatrick Walton2011-04-291-20/+26
|
* Temporarily disable dtors; they broke self-hosting.Graydon Hoare2011-04-291-1/+3
|
* rustc: First steps to determine whether tydescs escapePatrick Walton2011-04-291-17/+30
|
* Don't emit metadata unless compiling -shared.Graydon Hoare2011-04-292-5/+8
|
* Implement destructors in rustcMarijn Haverbeke2011-04-292-40/+61
| | | | | | Unlike rustboot, rustc keeps it destructors in vtables. Entry 0 holds either the destructor for the obj or a NULL pointer. The method offsets start at 1.