about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2011-11-18rt: Remove some stack-wasting macros from rust_task::yieldBrian Anderson-4/+1
2011-11-18intrinsics: Remove declaration of port_recvBrian Anderson-3/+0
2011-11-18rt: Remove fail calls from rust_task::yieldBrian Anderson-24/+25
2011-11-18rt: Remove unblock call from rust_task::yieldBrian Anderson-12/+27
2011-11-18rt: Remove a lock from task_start_wrapper that does nothingBrian Anderson-3/+0
2011-11-18rt: Replace two uses of yield with ctx->swapBrian Anderson-3/+2
These uses aren't really doing a full yield. They are just giving up control to the scheduler and will never return.
2011-11-18rt: Add comments to rust_task::yieldBrian Anderson-0/+1
2011-11-18rt: rust_task::conclude_failure doesn't need to call unblockBrian Anderson-2/+0
2011-11-18intrinsics: Eliminate recv intrinsicBrian Anderson-62/+102
This intrinsic existed just to get ahold of the return pointer. I replaced it with a call_with_retptr intrinsic that grabs the return pointer and passes it to another Rust function, thereby eliminating the need to call C functions on the Rust stack.
2011-11-18rt: Add FIXMEs about races in rust_taskBrian Anderson-1/+8
2011-11-18rt: Remove task::on_wakeup. UnusedBrian Anderson-19/+0
2011-11-18rt: Remove some unnecessary setting of rust_task::killedBrian Anderson-2/+0
The value of this variable doesn't matter after the task fails.
2011-11-18rt: Remove rust_task::yield. UnusedBrian Anderson-8/+0
2011-11-18rt: Add some comments about methods that run on the Rust stackBrian Anderson-0/+2
2011-11-18intrinsics: Remove the call to get_task from task_sleepBrian Anderson-16/+18
2011-11-18intrinsics: Add some commentsBrian Anderson-2/+4
2011-11-18intrinsics: Move the call to upcall_fail out of rust_intrinsic_castBrian Anderson-48/+12
2011-11-18Add tests for unsafe::reinterpret_castBrian Anderson-0/+14
2011-11-18rt: Remove size_of and align_of functions. Now written in RustBrian Anderson-18/+4
2011-11-18stdlib: Add tests for sys::size_of and sys::align_ofBrian Anderson-0/+45
2011-11-18stdlib: Add some useful fields to the definition of type_descBrian Anderson-3/+6
2011-11-18Add some comments to kind.rs and last_use.rsMarijn Haverbeke-0/+33
2011-11-18Make sure by-copy arguments take last-use into accountMarijn Haverbeke-1/+7
2011-11-18Register snapshot, finishing kind system transitionMarijn Haverbeke-0/+5
Closes #1177
2011-11-18Add some tests for new kind systemMarijn Haverbeke-73/+30
Issue #1177
2011-11-18Make sure trans translates record fields in the order they appear in codeMarijn Haverbeke-24/+25
This prevents surprising side-effect orders, and makes them easier for the other passes to deal with.
2011-11-18Make trans use last_use info to not actually generate copiesMarijn Haverbeke-25/+48
Issue #925
2011-11-18Update stdlib, compiler, and tests to new kind systemMarijn Haverbeke-476/+314
This involved adding 'copy' to more generics than I hoped, but an experiment with making it implicit showed that that way lies madness -- unless enforced, you will not remember to mark functions that don't copy as not requiring copyable kind. Issue #1177
2011-11-18Implement a last-use-of-local finding algorithmMarijn Haverbeke-6/+250
Issue #925
2011-11-18Properly check kinds in instantiation of genericsMarijn Haverbeke-286/+29
Issue #1177
2011-11-18Prevent alias pass from inserting implicit copies for noncopyable typesMarijn Haverbeke-6/+4
Issue #1177
2011-11-18Overhaul the kind-checking passMarijn Haverbeke-126/+189
Not really useful yet because missing last-use-of-local optimization. Also: instantiation of type parameters needs to be checked. Issue #1177
2011-11-18Make tag, resource and object constructors take their arguments by copyMarijn Haverbeke-40/+18
Doing something like some([1, 2, 3]) will now no longer create a temporary copy of the vector. It will also be easier for the kind checker to see that putting a resource into a data-structure constructor is safe.
2011-11-18Add a pass-by-copy parameter passing conventionMarijn Haverbeke-10/+36
This is intended to solve the problem of how to pass arguments to constructor functions -- you want to move in rvalues, but not have to explicitly copy stuff that is not an rvalue. The by-copy passing convention will ensure the callee gets its own copy of the value. For rvalues, it'll just pass off the value. For lvalues, it'll make a copy. Issue #1177
2011-11-18Register snapshotMarijn Haverbeke-0/+5
2011-11-18Preparation for kind system overhaulMarijn Haverbeke-58/+78
This goes before a snapshot, so that subsequenct patches can make the transition without breaking the build. Disables kind checking pass, makes parser accept both new and old-style kind annotation. Issue #1177
2011-11-17comparing/walking two pointers still aligns same as 1 ptrNiko Matsakis-1/+1
2011-11-17remove blank lineNiko Matsakis-1/+0
2011-11-17Re-enable cycle coll. on x86_64, seems to work better now.Niko Matsakis-3/+0
2011-11-17make ref cnts a long not an intNiko Matsakis-1/+2
2011-11-17add FIXME for issue #1184Niko Matsakis-0/+4
2011-11-17fix resource-genericNiko Matsakis-8/+5
2011-11-17Merge branch 'master' of github.com:graydon/rustNiko Matsakis-309/+155
2011-11-17Remove intrinsic_2 functionsBrian Anderson-189/+0
2011-11-17Register snapshotsBrian Anderson-0/+5
2011-11-17add an extra underscoreNiko Matsakis-1/+1
2011-11-17Stop using temporary intrinsic_2 functionsBrian Anderson-195/+225
2011-11-17Merge branch 'master' of github.com:graydon/rustNiko Matsakis-1/+5
2011-11-17rt: Remove debug printf in rust_startBrian Anderson-1/+0
2011-11-17remove compile-command from local variable blocksNiko Matsakis-106/+0