| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2011-08-24 | Revert "Back out copy-glue" | Marijn Haverbeke | -6/+108 | |
| This reverts commit 629ee94a0b360e2df1a1bbf7bf61ef346adf36ad. | ||||
| 2011-08-24 | Use memmove to load istr literals. Issue #855 | Brian Anderson | -11/+4 | |
| 2011-08-24 | Back out copy-glue | Marijn Haverbeke | -108/+6 | |
| This wasn't a good idea after all. | ||||
| 2011-08-24 | Use a single builder object throughout | Marijn Haverbeke | -113/+271 | |
| This seems to be faster than creating separate ones for each block context. | ||||
| 2011-08-24 | Move to a more lightweight builder system | Marijn Haverbeke | -1194/+1147 | |
| You now do bld::Ret(bcx, someval) where you used to say bcx.build.Ret(someval) Two fewer boxes are allocated for each block context, and build calls no longer go through a vtable. | ||||
| 2011-08-24 | Ensure values created in an alt guard are cleaned up properly | Marijn Haverbeke | -2/+3 | |
| 2011-08-24 | Optimize += [x] into a simple push operation | Marijn Haverbeke | -14/+57 | |
| This is a preparation for making vectors always-on-the-heap again, which would cause way too much malloc traffic for this idiom. I will add an efficient std::vec::push in the future, and migrate += [x] to that instead. Reduces compiler code size by 3% | ||||
| 2011-08-24 | Check for is_terminated after translating a block | Marijn Haverbeke | -1/+1 | |
| Closes #861 | ||||
| 2011-08-23 | Resolve a number of FIXMEs | Brian Anderson | -2/+2 | |
| 2011-08-23 | Zero locals with initializers that may break or terminate. Closes #787 | Brian Anderson | -1/+41 | |
| 2011-08-23 | Add kind-checking for assign-op, copy, ret, be, fail exprs. Fix caught ↵ | Graydon Hoare | -6/+20 | |
| kinding-violations in rustc and libstd. | ||||
| 2011-08-23 | Recheck the while loop contition after continuing. Closes #825 | Brian Anderson | -4/+4 | |
| 2011-08-23 | Fix pretty-printing of istr literals. Issue #855 | Brian Anderson | -2/+13 | |
| 2011-08-22 | Teach rustc to append istrs. Issue #855 | Brian Anderson | -7/+23 | |
| 2011-08-22 | Teach rustc to add istrs. Issue #855 | Brian Anderson | -0/+10 | |
| 2011-08-22 | Encode the istr shape correctly. Issue #855 | Brian Anderson | -2/+7 | |
| 2011-08-22 | Fix ivec self-append. Closes #816 | Brian Anderson | -0/+6 | |
| 2011-08-22 | Create correct drop glue for istrs. Issue #855 | Brian Anderson | -0/+4 | |
| 2011-08-22 | Translate istr literals. Issue #855 | Brian Anderson | -55/+24 | |
| 2011-08-22 | Extract trans_ivec::alloc_with_heap from trans_ivec::trans_ivec | Brian Anderson | -9/+32 | |
| Need this for building istrs | ||||
| 2011-08-22 | Move trans::ivec to middle::trans_ivec | Brian Anderson | -691/+705 | |
| 2011-08-22 | Move trans_ivec into the ivec module | Brian Anderson | -95/+93 | |
| 2011-08-22 | Move functions from syntax::ast to syntax::ast_util | Brian Anderson | -314/+358 | |
| This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer | ||||
| 2011-08-22 | Remove ast::spawn_dom | Brian Anderson | -2/+0 | |
| 2011-08-22 | Implement pattern guards | Marijn Haverbeke | -29/+80 | |
| The syntax is alt x { mypat where mycond { ... } } The condition may refer to any of the variables bound by the pattern. When a guard fails, pattern-matching continues with the next pattern. Closes #857 | ||||
| 2011-08-22 | Fix bug introduced by 1a45a84e73a92e8a | Marijn Haverbeke | -0/+1 | |
| 2011-08-22 | Start using copy glue to copy bits that may contain ivecs | Marijn Haverbeke | -26/+43 | |
| This is not currently necessary, but will be, when I land the new ivec representation. | ||||
| 2011-08-22 | Write a type_structurally_contains, use it to rewrite has_dynamic_size | Marijn Haverbeke | -35/+29 | |
| (I'll be using this for type-needs-copy-glue in the near future.) | ||||
| 2011-08-22 | Remove silly restriction on passing type params by alias | Marijn Haverbeke | -12/+2 | |
| Since they are now passed by pointer, this is no longer a problem | ||||
| 2011-08-22 | Replace &ty::t with ty::t throughout the compiler | Marijn Haverbeke | -151/+151 | |
| Type handles are uints, passing them by reference only causes unnecessary spilling. | ||||
| 2011-08-22 | Do not check for self-assign unless dest is initialized | Marijn Haverbeke | -93/+92 | |
| Also, give copy_val and move_val a more sane return type. | ||||
| 2011-08-22 | Write call_copy_glue | Marijn Haverbeke | -1/+40 | |
| 2011-08-22 | Add skeleton of copy glue that actually copies | Marijn Haverbeke | -16/+79 | |
| 2011-08-22 | Rename copy_glue back to take_glue | Marijn Haverbeke | -26/+26 | |
| 2011-08-22 | Drop arguments on the caller side, not the callee | Marijn 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-22 | Pass structural types by pointer, not by value | Marijn 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-20 | rustc: Introduce ABI versioning so we can change value representations ↵ | Patrick Walton | -6/+20 | |
| without breaking the compiler | ||||
| 2011-08-20 | Stop parsing ~[] vector syntax | Brian Anderson | -8/+0 | |
| 2011-08-20 | Stop parsing .() indexes | Brian Anderson | -7/+0 | |
| 2011-08-20 | Reformat | Brian 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-19 | rustc: Unconditionally zero out all GC-relevant types for now | Patrick Walton | -0/+5 | |
| 2011-08-19 | Pretty-print new index syntax | Brian Anderson | -3/+2 | |
| 2011-08-19 | Parse x[y] as indexes | Brian Anderson | -0/+7 | |
| 2011-08-19 | Getting rid of superfluous log statement. | Lindsey Kuper | -2/+0 | |
| 2011-08-19 | Fix polymorphic iterators. Closes #829. | Michael Sullivan | -3/+12 | |
| 2011-08-19 | Pretty-print constrained types correctly | Brian Anderson | -1/+6 | |
| 2011-08-19 | Pretty-print parens around more things that need disambiguation | Brian Anderson | -7/+17 | |
| Ridiculous stuff like (ret 0) == (log "error") | ||||
| 2011-08-19 | Teach the pretty-printer to disambiguate 'if ret { }' et. al | Brian Anderson | -3/+15 | |
| 2011-08-19 | Do better at preserving blank lines during pretty-printing | Brian Anderson | -1/+5 | |
| 2011-08-19 | Don't pretty-print extra blank lines after anon object methods | Brian Anderson | -2/+5 | |
