summary refs log tree commit diff
path: root/src/rt/rust_upcall.cpp
AgeCommit message (Collapse)AuthorLines
2011-10-20Remove taskptr argument from upcallsMarijn Haverbeke-17/+21
Issue #466
2011-09-28rt: Add an upcall to allocate space on the C stack. This will be used for ↵Patrick Walton-0/+10
native calls on the C stack.
2011-09-27rt: Store the task in TLSPatrick Walton-1/+3
2011-09-26rt: Remove obsolete commentPatrick Walton-2/+0
2011-09-23rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruptionPatrick Walton-0/+5
2011-09-20rt: Zero out allocations so that the CC won't die if it happens to run while ↵Patrick Walton-0/+2
a box is being constructed. This is kind of unfortunate.
2011-09-20rt: Stub code for the cycle collectorPatrick Walton-0/+2
2011-09-20rt: Add an on-the-side GC chainPatrick Walton-0/+4
2011-09-20rt: Remove the GC alloc chainPatrick Walton-7/+4
2011-09-20rt: Remove #include "rust_box.h"Patrick Walton-1/+0
2011-09-20rt: Remove upcall_malloc_box and upcall_free_box; I don't think they'll be ↵Patrick Walton-37/+0
necessary after all
2011-09-19rt: Introduce a self-describing box representation and functions to create ↵Patrick Walton-0/+38
and free them
2011-09-15rt: Add libunwind.h support on Mac OS XPatrick Walton-1/+1
2011-09-11Add upcall_rust_personalityBrian Anderson-0/+22
This just wraps __gxx_personality_v0 with our upcall naming convention Issue #236
2011-09-09Get rid of some unused upcallsMarijn Haverbeke-45/+0
I guess these became obsolete when the communication stuff moved into the stdlib.
2011-09-09Remove unused logging upcalls from runtimeMarijn Haverbeke-22/+0
2011-09-07Refactor task failure a bitBrian Anderson-3/+0
Issue #236
2011-09-03Remove unused runtime functions. Issue #855Brian Anderson-4/+0
2011-09-02Remove estrs and evecs from runtime. Issue #855Brian Anderson-154/+22
2011-08-31rt: Make the dynamic stack self-describingPatrick Walton-3/+16
2011-08-29Make std::istr::push_byte efficientMarijn Haverbeke-2/+1
It used to allocate two (!) heap values per pushed byte. It now goes through a runtime function that simply grows the istr and writes the byte.
2011-08-29Factor vector reserve code in runtime into its own functionMarijn Haverbeke-14/+3
2011-08-29Implement non-internal ivecsMarijn Haverbeke-65/+19
Vectors are now similar to our old, pre-internal vectors, except that they are uniquely owned, not refcounted. Their name should probably change too, then. I've renamed them to vec in the runtime, will do so throughout the compiler later.
2011-08-25rustc: Add an extra flag to object tydescs so that shapes know how to find ↵Patrick Walton-2/+4
the captured subtydescs
2011-08-24Optimize += [x] into a simple push operationMarijn Haverbeke-0/+24
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-22Rename copy_glue back to take_glueMarijn Haverbeke-3/+3
2011-08-19rt: Remove rustboot's GC infrastructurePatrick Walton-15/+0
2011-08-19rt: Call maybe_gc on mallocsPatrick Walton-0/+3
2011-08-18Rename rust_vec to rust_evecBrian Anderson-14/+14
2011-08-18Rename some vec upcalls and trans functions from vec* to evec*Brian Anderson-2/+8
2011-08-18Remove upcall_new_vecBrian Anderson-18/+0
2011-08-17rustc: Use obstacks in lieu of dynamically-allocated frames only when the ↵Patrick Walton-1/+1
frame is actually dynamically-sized
2011-08-17Revert "rt: Use obstacks in lieu of dynamically-sized frames"Patrick Walton-1/+1
This reverts commit cc5fcfce89312042e52401eb883160ebf289235f.
2011-08-17rt: Use obstacks in lieu of dynamically-sized framesPatrick Walton-1/+1
2011-08-16rt: Implement obstacks, untested as of yetPatrick Walton-0/+22
2011-08-16Removing task, chan and port upcalls.Eric Holk-175/+0
2011-08-15Properly ref counting to fix valgrind issues on linux.Eric Holk-12/+16
2011-08-10rustc: Remove unused "trace" upcallsPatrick Walton-12/+0
2011-08-10rt: Shutdown gracefully on failureBrian Anderson-1/+1
When the kernel fails, kill all tasks and wait for the schedulers to stop instead of just exiting. I'm sure there are tons of lurking issues here but this is enough to fail without leaking (at least in the absence of cleanups).
2011-08-08Introduced task handles.unknown-11/+17
This is the new way to refer to tasks in rust-land. Currently all they do is serve as a key to look up the old rust_task structure. Ideally they won't be ref counted, but baby steps.
2011-08-05Atomic ref counting for chans.Eric Holk-0/+16
2011-08-05Basic async IO module using libuvRob Arnold-14/+1
2011-08-01Adding an intrinsic for recv.Eric Holk-2/+0
2011-08-01Added send and receive to comm library.Eric Holk-21/+3
2011-08-01Started working on a library-based comm system. Creating and deleting ports ↵Eric Holk-19/+12
work.
2011-07-29Lock the new task's scheduler when creating a taskBrian Anderson-1/+0
Previously we were locking the spawning task's scheduler. I couldn't see that that was protecting anything. The newborn_task list in the new task's scheduler though was unprotected from concurrent access. So now we're locking the new task's scheduler.
2011-07-29Removing proxies and message queues.Eric Holk-4/+2
2011-07-28Atomic reference counting for tasks.Eric Holk-22/+9
2011-07-28Adding upcalls to to ref() and deref() tasks. This is the first step towards ↵Eric Holk-0/+17
atomic reference counting of tasks.
2011-07-28Per-thread scheduling. Closes #682.Eric Holk-5/+5
Tasks are spawned on a random thread. Currently they stay there, but we should add task migration and load balancing in the future. This should drammatically improve our task performance benchmarks.