about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-09-28rustc: Switch to cdecl for all calls. This is needed to make stack growth ↵Patrick Walton-35/+24
efficient, as I need to use eax and ecx in the function prologue and can't afford to stomp on incoming arguments.
2011-09-28Remove a few kludges that worked around issue #913Marijn Haverbeke-7/+2
2011-09-28Don't descend into functions from relax_precond_blockMarijn Haverbeke-11/+7
Closes #913
2011-09-28Get rid of might_not_init kludge in init_local.Marijn Haverbeke-43/+3
Initializing something is now safe wrt to cleanups (so the cleanup for the local is only registered after the initialization.)
2011-09-28Wait with registering cleanups for locals until after the init code ranMarijn Haverbeke-5/+4
Fixes a double-cleanup that was breaking unwind-tup.rs under valgrind.
2011-09-28Use DPS for assignment and local initializationMarijn Haverbeke-51/+56
Issue #667
2011-09-27Patch to error instead of crashing when parsing unmatched double quotesWade Mealing-0/+7
Patch to error and fail instead of using all available memory then crashing to detect the error condition of an unmatched double quote before the end of a file. I couldn't get it to show nice error messages, so this may not be the ideal fix. A test case for this situation has also been added.
2011-09-27Make it again possible to initialize resource locals via assignmentBrian Anderson-6/+10
Some special cases allow both 'let a <- my_resource(x)' and 'let a = my_resource(x)' to work as expected despite ostensibly being copies and moves.
2011-09-27Prevent copies of resources into various thingsBrian Anderson-0/+67
2011-09-27Add more comments about kind checking on local move initializersBrian Anderson-1/+3
2011-09-27Don't ever raise unique kinds of pinned kinds to shared (again)Brian Anderson-22/+12
So *resource, ~resource, [resource] are all pinned. This is counter to the design of the kind system, but this way is a much clearer path to type safety. Once we've established a good baseline with lots of tests, then we can try to make raising pinned kinds work.
2011-09-27Revert "Use DPS for assignment and local initialization"Brian Anderson-56/+51
This reverts commit b1b202d302d1e84886360f9c8f146b9562db5f23.
2011-09-27Fix lurking bug in matching of nilMarijn Haverbeke-6/+6
Which was somehow made visible by the DPS changes.
2011-09-27Use DPS for assignment and local initializationMarijn Haverbeke-51/+56
Issue #667
2011-09-27Safeguard against self-assignment for unique typesMarijn Haverbeke-4/+6
2011-09-27Move expr_unary to DPS styleMarijn Haverbeke-96/+90
Issue #667
2011-09-27Make trans_rec and trans_tup understand overwrite destsMarijn Haverbeke-45/+54
Issue #667
2011-09-27Move expr_binary into trans_expr_dpsMarijn Haverbeke-123/+115
Issue #667
2011-09-27Move expr_lit and expr_vec into trans_expr_dpsMarijn Haverbeke-32/+54
Issue #667
2011-09-27Move more non-value-returning things to trans_expr_dps.Marijn Haverbeke-87/+90
Issue #667
2011-09-26Enforce copy restrictions on let initializersBrian Anderson-1/+21
2011-09-26Distinguish #924Jesse Ruderman-1/+6
2011-09-26Prevent copying of uncopyable things via the copy opBrian Anderson-0/+1
2011-09-26Prevent copying of uncopyable things via compound assignment opsBrian Anderson-1/+4
2011-09-26Don't allow vectors of pinned kinds to be copiedBrian Anderson-0/+4
2011-09-26Don't allow copying of unique boxes of pinned kindsBrian Anderson-19/+32
Issue #409
2011-09-26Fix tags of unique boxesBrian Anderson-2/+5
Issue #409
2011-09-26Unique vectors and boxes of pinned are unique kinds. Closes #977Brian Anderson-12/+2
2011-09-26Construct records and tuples in-placeMarijn Haverbeke-58/+53
Issue #667 Now, {a: {b: 10, c: 20}, d: @30} will simply write the values in the right places, rather than creating intermediary records and then memmoving them. Cuts about a megabyte off the unoptimized compiler size.
2011-09-26Convert more expression types to use DPSMarijn Haverbeke-203/+218
expr_rec, expr_tup, most of the exprs that don't return anything. Make trans_ret almost trivial by using destination adaptors (trans_save_in, trans_by_ref). Issue #667
2011-09-26Add a workaround hack for issue #913Marijn Haverbeke-1/+3
I can't figure out what the real cause of this bug is, but I want to be able to use blocks inside loops again.
2011-09-25Refine notes in kind.rs some more. Add a fixme to ty.rs.Graydon Hoare-16/+41
Kinds are still pretty wobbly. See thread starting at https://mail.mozilla.org/pipermail/rust-dev/2011-September/000807.html
2011-09-26Make return-by-ref function headers pretty-print safelyMarijn Haverbeke-1/+1
Closes #972
2011-09-26Don't call trans_bind_thunk in an unreachable contextMarijn Haverbeke-0/+4
Closes #973
2011-09-26Make 'fail fail;' compile.Marijn Haverbeke-0/+4
Closes #972
2011-09-26Fix bug in mutability-checking passMarijn Haverbeke-10/+13
It wasn't properly handling function arguments.
2011-09-24Handle ~fail. Closes #968Brian Anderson-0/+7
2011-09-24Support non-immediates in trans_uniq::copy_valBrian Anderson-1/+1
Issue #409
2011-09-24Small refactors.Lindsey Kuper-34/+26
Factor out some shared code from the start of process_fwding_mthd and process_bkwding_mthd; get rid of unneeded temp variable.
2011-09-24Reduce and clarify abuse of 'pure' in internerJesse Ruderman-11/+12
2011-09-24Mark some fns as pure so type_is_unique_box doesn't need to be uncheckedJesse Ruderman-12/+10
2011-09-24Tweak the type allocated for unique pointersBrian Anderson-2/+4
Seems to be more correctish... Issue #409
2011-09-24Support non-immediates in unique-box type glueBrian Anderson-2/+4
Issue #409
2011-09-24Vectors containing pinned kinds become pinnedBrian Anderson-17/+16
Otherwise they could be copied
2011-09-24Unique pointers containing pinned kinds become pinnedBrian Anderson-1/+8
Issue #409
2011-09-23Add let destructuring for unique boxesBrian Anderson-0/+5
Issue #409
2011-09-23Add missing case for pat_uniq to syntax::visitBrian Anderson-0/+1
Issue #409
2011-09-23Begin to support pattern matching on unique boxesBrian Anderson-0/+62
Issue #409
2011-09-23Properly mark unreachable alt bodies as unreachableMarijn Haverbeke-0/+2
2011-09-23Make AddIncomingToPhi take single values rather than arraysMarijn Haverbeke-9/+7