about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-09-13Make for loop alias-safeMarijn Haverbeke-52/+36
2011-09-13Apply implicit copying for unsafe references to alt patternsMarijn Haverbeke-54/+125
2011-09-12Kill trailing whitespace.Graydon Hoare-2/+2
2011-09-12Factor imports mindlessly.Graydon Hoare-703/+239
2011-09-12Merge branch 'unwind'Brian Anderson-28/+144
Conflicts: src/comp/middle/trans.rs src/comp/middle/trans_build.rs src/lib/run_program.rs src/test/compiletest/runtest.rs
2011-09-12Undo some pretty-printer damage in ty.rsMarijn Haverbeke-134/+26
2011-09-12Rename alias to reference in docs and error messagesMarijn Haverbeke-8/+9
Update docs to reflect new approach to aliases
2011-09-12Warn when inserting an implicit copy that may be expensiveMarijn Haverbeke-16/+53
2011-09-12Properly implement copy expressionsMarijn Haverbeke-19/+30
(And use them in some places that were doing {expr} before.)
2011-09-12Remove backwards-compatibility with old arg-mode syntaxMarijn Haverbeke-3/+0
2011-09-12Pretty-print for new arg-mode syntaxMarijn Haverbeke-175/+237
2011-09-12Switch pretty-printer to new arg-mode syntaxMarijn Haverbeke-2/+2
2011-09-12Accept {|| ... } for argument-less block syntaxMarijn Haverbeke-4/+8
Closes #880
2011-09-12Reformat for new mode syntax, step 1Marijn Haverbeke-2677/+2688
Long lines were fixed in a very crude way, as I'll be following up with another reformat in a bit.
2011-09-12Make the names of the arg mode tag reflect their (revised) meaningMarijn Haverbeke-91/+54
2011-09-12Pass all arguments by reference, make immut alias mode equiv to valueMarijn Haverbeke-158/+188
Arguments that can't be safely referenced will be implicitly copied. (Warnings for expensive copies will be forthcoming.) This will allow us to get rid of most of the ampersands in function signatures. See [1]. [1] https://mail.mozilla.org/pipermail/rust-dev/2011-September/000759.html
2011-09-11Zero locals when the initializer might call a functionBrian Anderson-0/+1
The function might fail, leaving the local uninitialized Issue #236
2011-09-11Invoke put functionsBrian Anderson-1/+1
Issue #236
2011-09-11Add some FIXMEs about unwinding implementationBrian Anderson-0/+5
Issue #236
2011-09-11Invoke upcall_failBrian Anderson-4/+15
This allows landing pads to be generated around fail statements Issue #236
2011-09-11Run cleanups during unwindingBrian Anderson-0/+12
Issue #236
2011-09-11Zero locals that have initializers that might failBrian Anderson-24/+27
This will avoid running cleanups on uninitialized memory Issue #236
2011-09-11Add landing pads to invokesBrian Anderson-4/+28
Issue #236
2011-09-11Add Rust definitions for new LLVM EH instructionsBrian Anderson-0/+25
Issue #236
2011-09-11Use invoke to call (most) rust functionsBrian Anderson-1/+32
No landing pads yet. Issue #236
2011-09-11Add upcall_rust_personalityBrian Anderson-2/+5
This just wraps __gxx_personality_v0 with our upcall naming convention Issue #236
2011-09-10Fuzzer: move tys around in addition to exprsJesse Ruderman-0/+1
2011-09-09Add missing arm, so pretty-printing the statement 'copy 1;' does not die.Jesse Ruderman-0/+1
2011-09-09Make the pretty printer disambiguatae blocks followed by vec expressions.Jesse Ruderman-2/+4
Semicolons are needed here now that postfix [] is used for vec indexing (the syntax change made in rev 518dc52f85c2efb67aaa1208c02e9a7e0bdaca49).
2011-09-09Revert "Make for loops alias the vec elements, rather than copy them"Marijn Haverbeke-6/+12
This reverts commit 985ef59efd971f1d6b9bf4b5e484b75733e00444.
2011-09-09Get rid of vp2i in object field accessMarijn Haverbeke-18/+3
Closes #557
2011-09-09Make for loops alias the vec elements, rather than copy themMarijn Haverbeke-12/+6
The alias analysis was already assuming that it worked like this.
2011-09-09Get rid of trans::iter_sequence, use tvec::iter_vec insteadMarijn Haverbeke-97/+15
2011-09-09Use a Phi node in trans_vec::iter_vec_rawMarijn Haverbeke-21/+11
Rather than incrementing a spilled pointer
2011-09-09Get rid of some unused upcallsMarijn Haverbeke-13/+2
I guess these became obsolete when the communication stuff moved into the stdlib.
2011-09-09Don't put 0-length array in the lltype of an arg-less variantMarijn Haverbeke-1/+5
This seems to confuse LLVM in some very specific situations. Closes #883
2011-09-09Fix scope issue in resolution of alt-arm patternsMarijn Haverbeke-5/+5
Closes #885
2011-09-08rustc: When revoking a cleanup of a unique pointer, zero it out so that the ↵Patrick Walton-15/+25
GC won't try to visit it
2011-09-08rustc: Make unique pointers no longer immediates.Patrick Walton-70/+88
2011-09-07Export tag discriminants even for single-variant tagsBrian Anderson-4/+2
I don't know exactly what's going on but this optimization is giving me problems with the check-fast runner. I also don't see how it is correct for external tags.
2011-09-07Work around destructuring bugMarijn Haverbeke-13/+21
2011-09-07Make it possible to take the value of (and bind) native fnsMarijn Haverbeke-33/+28
Closes #820
2011-09-06Forbid blocks from deinitializing upvarsTim Chevalier-2/+22
Move expressions where the RHS is an upvar are now forbidden within block expressions.
2011-09-02Rename istr-stuff to str in rustc. Issue #855Brian Anderson-11/+11
2011-09-02Rename ty_istr to ty_str. Issue #855Brian Anderson-35/+35
2011-09-02Print the type of istrs as 'str' in error messages. Issue #855Brian Anderson-1/+1
2011-09-02Stop parsing transitional istr forms. Issue #855Brian Anderson-24/+1
2011-09-02Reformat. Issue #855Brian Anderson-3861/+3478
2011-09-02Add a constraint to trans::type_ofTim Chevalier-116/+231
trans::type_of now has a constraint saying that its type argument is statically sized. This eliminates the "impossible happened" case in type_of. Yay! I note that this change decreased translation time for stage2/rustc from 16.1 s to 14.0 s. I also think many of the remaining checks could be eliminated with some mildly clever use of constrained types and further preconditions. Future work!
2011-09-02Handle if-check with no else correctly in typestateTim Chevalier-4/+17
Propagate the if-check constraint into the consequent even when there's no else branch. (Oops!)