| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2011-08-26 | Pass stuff to take_ty, free_ty, and drop_ty by address, even when immediate | Marijn Haverbeke | -39/+29 | |
| The glue-calling will spill the values again anyway. This should prevent a lot of load/spill junk in the output. It is also necessary to be able to have unique vecs be immediate values (take must know the actual address to be able to duplicate). | ||||
| 2011-08-26 | Revert "Use typestate constraints for trans_be" | Tim Chevalier | -11/+4 | |
| This reverts commit 1b60bba141c54f374d3378aa229c756d4a8f7f3d. (Need a snapshot first) | ||||
| 2011-08-26 | Use typestate constraints for trans_be | Tim Chevalier | -4/+11 | |
| trans_be now has a precondition that its expression argument is a call expr. Obviously this code may be going away soon, but I wanted to exercise typestate somehow and this was an easy one :-) | ||||
| 2011-08-26 | Let typestate constraints mention pattern-bound vars | Tim Chevalier | -5/+10 | |
| 2011-08-25 | Support unchecked blocks | Tim Chevalier | -1/+6 | |
| This patch supports the syntax unchecked { ... } to disable purity checking within a block. Presumably it will only be used within a declared "pure fn". However, there is no checking that it doesn't occur elsewhere, and it would be harmless for it to do so. I went with Lindsey's suggestion for the syntax, but it's subject to change. This allows you to write code that uses predicates that call arbitrary Rust functions, but you must declare your intentions by wrapping it in an unchecked { ... } block. The test case run-pass/unchecked-predicates.rs demonstrates how to do that. | ||||
| 2011-08-25 | Allow pure fns to have any return type | Tim Chevalier | -13/+13 | |
| 2011-08-25 | rt: Remember the number of captured type descriptors for objects in the type ↵ | Patrick Walton | -1/+4 | |
| descriptor crate cache | ||||
| 2011-08-25 | Move ast::pat_id_map to ast::util | Brian Anderson | -3/+3 | |
| 2011-08-25 | rustc: Add an extra flag to object tydescs so that shapes know how to find ↵ | Patrick Walton | -62/+88 | |
| the captured subtydescs | ||||
| 2011-08-24 | Revert "Back out copy-glue" | Marijn Haverbeke | -5/+107 | |
| 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 | -107/+5 | |
| 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 | -675/+1146 | |
| 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/+53 | |
| 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 | 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 | -0/+14 | |
| kinding-violations in rustc and libstd. | ||||
| 2011-08-23 | Recheck the while loop contition after continuing. Closes #825 | Brian Anderson | -4/+4 | |
| 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/+704 | |
| 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 | -61/+88 | |
| This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer | ||||
| 2011-08-22 | Implement pattern guards | Marijn Haverbeke | -26/+62 | |
| 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 | -143/+143 | |
| 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 | -12/+76 | |
| 2011-08-22 | Rename copy_glue back to take_glue | Marijn Haverbeke | -25/+25 | |
| 2011-08-22 | Drop arguments on the caller side, not the callee | Marijn Haverbeke | -129/+109 | |
| 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/+18 | |
| without breaking the compiler | ||||
| 2011-08-20 | Reformat | Brian Anderson | -2903/+2830 | |
| 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 | Fix polymorphic iterators. Closes #829. | Michael Sullivan | -3/+12 | |
| 2011-08-19 | Use move semantics when returning a local var | Marijn Haverbeke | -1/+13 | |
| (Since the variable won't be used after return anyway.) | ||||
| 2011-08-19 | Temporary work-around for issue #843 | Marijn Haverbeke | -2/+3 | |
| 2011-08-19 | Revert "Disable warnings for unused function arguments. Temporary hack." | Tim Chevalier | -6/+1 | |
| This reverts commit 1ec2211a98aac3f4444301f44eba608d2df818c1. | ||||
| 2011-08-19 | Disable warnings for unused function arguments. Temporary hack. | Tim Chevalier | -1/+6 | |
