about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-08-22Remove silly restriction on passing type params by aliasMarijn Haverbeke-12/+2
Since they are now passed by pointer, this is no longer a problem
2011-08-22Replace &ty::t with ty::t throughout the compilerMarijn Haverbeke-151/+151
Type handles are uints, passing them by reference only causes unnecessary spilling.
2011-08-22Do not check for self-assign unless dest is initializedMarijn Haverbeke-93/+92
Also, give copy_val and move_val a more sane return type.
2011-08-22Write call_copy_glueMarijn Haverbeke-1/+40
2011-08-22Add skeleton of copy glue that actually copiesMarijn Haverbeke-16/+79
2011-08-22Rename copy_glue back to take_glueMarijn Haverbeke-26/+26
2011-08-22Drop arguments on the caller side, not the calleeMarijn Haverbeke-146/+124
This makes it easier for the caller to optimize the take/drop away for temporary values, and opens up new possibilities for alias handling. Breaks tail calls.
2011-08-22Pass structural types by pointer, not by valueMarijn Haverbeke-42/+36
If we lose tail calls, this is possible. It simplifies things a lot. Direct motivation: We want ivecs with pointers pointing into themselves. When copying those, the pointers have to be adjusted. It is impossible to this when copying them with Load/Store.
2011-08-20rustc: Introduce ABI versioning so we can change value representations ↵Patrick Walton-6/+20
without breaking the compiler
2011-08-20Stop parsing ~[] vector syntaxBrian Anderson-8/+0
2011-08-20Stop parsing .() indexesBrian Anderson-7/+0
2011-08-20ReformatBrian Anderson-4332/+4178
This changes the indexing syntax from .() to [], the vector syntax from ~[] to [] and the extension syntax from #fmt() to #fmt[]
2011-08-19rustc: Unconditionally zero out all GC-relevant types for nowPatrick Walton-0/+5
2011-08-19Pretty-print new index syntaxBrian Anderson-3/+2
2011-08-19Parse x[y] as indexesBrian Anderson-0/+7
2011-08-19Getting rid of superfluous log statement.Lindsey Kuper-2/+0
2011-08-19Fix polymorphic iterators. Closes #829.Michael Sullivan-3/+12
2011-08-19Pretty-print constrained types correctlyBrian Anderson-1/+6
2011-08-19Pretty-print parens around more things that need disambiguationBrian Anderson-7/+17
Ridiculous stuff like (ret 0) == (log "error")
2011-08-19Teach the pretty-printer to disambiguate 'if ret { }' et. alBrian Anderson-3/+15
2011-08-19Do better at preserving blank lines during pretty-printingBrian Anderson-1/+5
2011-08-19Don't pretty-print extra blank lines after anon object methodsBrian Anderson-2/+5
2011-08-19Use move semantics when returning a local varMarijn Haverbeke-1/+13
(Since the variable won't be used after return anyway.)
2011-08-19Temporary work-around for issue #843Marijn Haverbeke-2/+3
2011-08-19Revert "Disable warnings for unused function arguments. Temporary hack."Tim Chevalier-6/+1
This reverts commit 1ec2211a98aac3f4444301f44eba608d2df818c1.
2011-08-19Disable warnings for unused function arguments. Temporary hack.Tim Chevalier-1/+6
2011-08-18Don't pretty-print trailing whitespace for blank lines inside block commentsBrian Anderson-2/+10
2011-08-18Try harder to disambig blocks followed by various exprs in pprust. Closes #840Brian Anderson-15/+74
As it turns out, it's not just unops we need to worry about. Also tuples and anything that requires parens.
2011-08-18Merge remote-tracking branch 'graydon/master'Michael Sullivan-1/+3
2011-08-18rustc: Only emit gc root intrinsic calls if the GC flag is on, to work ↵Patrick Walton-1/+3
around #836
2011-08-18Kind check tuples. Closes #841.Michael Sullivan-0/+7
2011-08-18Some cleanup in ty_to_str.Michael Sullivan-30/+27
2011-08-18Print tag names in type error messages. Closes #834.Michael Sullivan-14/+31
2011-08-18Handle sequential let semantics properly in typestateTim Chevalier-16/+37
Closes #824
2011-08-18CommentsTim Chevalier-1/+2
2011-08-18Kill another case of a spurious blank line. Closes #809.Graydon Hoare-1/+1
2011-08-18Get rid of equal_type_structures. Closes #514.Michael Sullivan-184/+1
2011-08-18More misc ivec->vec renamingBrian Anderson-5/+5
2011-08-18Rename T_vec to T_evecBrian Anderson-3/+3
2011-08-18Rename various things from ivec to vecBrian Anderson-12/+12
2011-08-18Change ast::ty_ivec, ty::ty_ivec to ty_vecBrian Anderson-47/+47
2011-08-18Rename some vec upcalls and trans functions from vec* to evec*Brian Anderson-9/+11
2011-08-18Remove upcall_new_vecBrian Anderson-4/+0
2011-08-18Remove ast::ty_vecBrian Anderson-157/+5
2011-08-18Remove seq_kind from ast::expr_vecBrian Anderson-34/+27
2011-08-18Simplify the _rust_main/rust_start interfaceBrian Anderson-14/+15
rust_start will always call _rust_main with the command line args, and it is _rust_main's responsibility to free the args ivec heap. _rust_main will be generated slightly differently depending on whether main takes an ivec or not: if so then it's just passed through to main, otherwise it frees the ivec directly.
2011-08-18Continue transition to an ivec-only mainBrian Anderson-75/+19
Only generate a single main function. Rename rust_start_ivec to rust_start, leaving a transitional rust_start_ivec in place.
2011-08-18Pretty-print ivecs as []Brian Anderson-5/+1
2011-08-18Fix long lineMarijn Haverbeke-1/+2
2011-08-18Remove or _-prefix all unused function argumentsMarijn Haverbeke-184/+179
This should make the compilation process a bit less noisy.