about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-07-08Don't unbox types in ty::is_binopable, do it on typeck side insteadMarijn Haverbeke-17/+4
Closes issue #631 Removes ty::strip_boxes entirely, since unboxing is now more complicated anyway.
2011-07-08Remove useless return value in typeck::check_decl_localMarijn Haverbeke-6/+2
2011-07-08Auto-bind generic functions when their value is taken in non-call contextMarijn Haverbeke-4/+28
trans::trans_lval will now autobind if the given expression was the name of a generic functions. Those callees (trans_call and trans_bind) that are interested in the generics information call trans_lval_gen now.
2011-07-08Avoid superfluous take/drop for temp values passes as argumentsMarijn Haverbeke-8/+16
2011-07-08Make for-each bodies close over their parent's iterbodyMarijn Haverbeke-6/+19
Closes issue #639
2011-07-07rustc: Check iter return types. Closes #638.Patrick Walton-0/+2
2011-07-07rustc: Fix long linePatrick Walton-1/+2
2011-07-07rustc: Make trans use interior vectorsPatrick Walton-781/+732
2011-07-07rustc: Remove all exterior vectors from the ASTPatrick Walton-70/+62
2011-07-07Fix a bug that was interfering with method overriding. Issue #543.Lindsey Kuper-23/+36
Previously, we were creating both a normal vtable entry and a forwarding function for overriding methods, when they should have just gotten a vtable entry. This patch fixes that.
2011-07-07Merge pull request #634 from robarnold/upstream-stablePatrick Walton-8/+39
Allocate ivecs out of the kernel pool
2011-07-07Rename encoder::ty_str to encoded_strBrian Anderson-4/+4
2011-07-07Don't expert def_to_str from metadata::encoderBrian Anderson-2/+1
2011-07-07Move tyencode::ty_str to metadata::encoderBrian Anderson-11/+16
2011-07-07Refactor tyencode::ty_str to not require a tyencode::ctxtBrian Anderson-10/+6
All users were constructing the context the same way.
2011-07-07Remove duplicate definition of def_to_str from middle::tyBrian Anderson-5/+1
2011-07-07Refactor a few things in the metadata moduleBrian Anderson-20/+20
Rename metadata::tags to metadata::common. Move some utility functions from metadata::encoder to metadata::common.
2011-07-07Rename hash_def_id to hash_node_idBrian Anderson-4/+4
2011-07-07Remove metadata::encoder's dependence on trans::node_id_typeBrian Anderson-9/+9
2011-07-07rustc: Change lots of AST nodes to use interior vectorsPatrick Walton-373/+400
2011-07-07Implement --lib --static.Rafael Ávila de Espíndola-8/+8
2011-07-07Use an early exit to reduce indentation.Rafael Ávila de Espíndola-72/+74
2011-07-07Command line changes for adding support for static libraries.Rafael Ávila de Espíndola-17/+19
2011-07-07Clean up trans_arg_exprMarijn Haverbeke-45/+25
As a preparation for implementing the temporary-move optimization for argument passing. The optimization itself isn't in yet, since it mysteriously corrupts memory.
2011-07-07Make moving of temporaries do the right thing, use it to optimizeMarijn Haverbeke-135/+174
This adds support for dropping cleanups for temporary values when they are moved somewhere else. It then adds wraps most copy operations (return, put in data structure, box, etc) in a way that will fall back to a move when it is safe. This saves a lot of taking/dropping, shaving over a megabyte off the stage2/rustc binary size. In some cases, most notably function returns, we could detect that the returned value is a local variable, and can thus be safely moved even though it is not a temporary. This will require putting some more information in lvals. I did not yet handle function arguments, since the logic for passing them looked too convoluted to touch. I'll probably try that in the near future, since it's bound to be a big win.
2011-07-07Improve handling of move and swap by alias checkerMarijn Haverbeke-10/+24
Closes issue #541. Closes issue #591
2011-07-06Allocate rust_ivec buffers out of the kernel poolRob Arnold-8/+39
The duplication of upcalls is due to the fact that the runtime is shared between stage0/rustc and stage1/rustc. Once snapshots are updated, they should be de-duplicated.
2011-07-06Tie the knot for self-calls inside extended objects. Closes #539.Lindsey Kuper-4/+8
2011-07-06Generate a main fn for test running. Issue #428Brian Anderson-18/+80
2011-07-06Fix a pointer bug.Lindsey Kuper-3/+2
2011-07-06Add span information to create_vtbl and friends.Lindsey Kuper-18/+14
2011-07-06Comments and cleanup.Lindsey Kuper-2/+4
2011-07-06rustc: Make constraint args in the AST interior vectorsPatrick Walton-3/+4
2011-07-06rustc: Move AST constraints to interior vectorsPatrick Walton-16/+17
2011-07-06rustc: Migrate core AST types to interior vectorsPatrick Walton-12/+32
2011-07-06rustc: Make AST tuple types use interior vectorsPatrick Walton-9/+5
2011-07-06rustc: Make meta items into interior vectorsPatrick Walton-66/+90
2011-07-06rustc: Move crate directives over to interior vectorsPatrick Walton-13/+12
2011-07-06rustc: Convert attribute in the AST to interior vectorsPatrick Walton-75/+75
2011-07-06rustc: Make AST paths use interior vectorsPatrick Walton-43/+71
2011-07-06rustc: Move middle::tstate::collect_locals over to interior vectorsPatrick Walton-9/+9
2011-07-06rustc: Remove unused or seldom-used imports from ↵Patrick Walton-8/+1
middle::tstate::{bitvectors, ck}
2011-07-06rustc: Remove some unused references to std::vec from tstate::ann and ↵Patrick Walton-6/+1
tstate::auxiliary
2011-07-06rustc: Move middle::tstate::auxiliary and middle::tstate::bitvectors over to ↵Patrick Walton-123/+131
interior vectors
2011-07-06rustc: Move tstate::annotate over to interior vectorsPatrick Walton-12/+12
2011-07-06rustc: Convert bind_params_in_type() to use interior vectorsPatrick Walton-6/+9
2011-07-06rustc: Migrate tag variants to interior vectorsPatrick Walton-37/+35
2011-07-06rustc: Make object methods into interior vectorsPatrick Walton-45/+49
2011-07-06Begin adding unit testing infrastructure to the compilerBrian Anderson-4/+58
Add a --test flag and a pass for transforming the AST to generate a test harness. Issue #428
2011-07-06Swap the expected/actual for typechecking fields of updated recordsBrian Anderson-2/+2
In 'rec(a = b with c)', if a exists in c then the expected type for b is the type of c.