about summary refs log tree commit diff
path: root/src/rt
AgeCommit message (Collapse)AuthorLines
2010-11-09Support a special const-value refcount, use it for const strings.Graydon Hoare-4/+20
2010-11-02First pass on splitting stratum and opacity off of effects. WIP.Graydon Hoare-1/+1
2010-10-28Cast NULL to uintptr_t when calling rust_task::start().Ralph Giles-1/+1
On gcc 4.5.1 (fedora 14 i686) rust_test_runtime.cpp fails to compile with the following error: rt/test/rust_test_runtime.cpp:57:61: error: passing NULL to non-pointer argument 3 of ‘void rust_task::start(uintptr_t, uintptr_t, uintptr_t, size_t)’ The explicit cast works around the error.
2010-10-20Add a virtual destructor to rust_thread in sync.h, to quiet the compilerPatrick Walton-0/+2
2010-10-11Use new and delete instead of alloca(). Should put out the burning tinderbox.Patrick Walton-2/+3
2010-10-11Try to print backtraces on failurePatrick Walton-17/+46
2010-10-05Use RTLD_GLOBAL when loading libraries. This is needed to get LLVM working ↵Patrick Walton-1/+1
on the Mac in rustc.
2010-09-30Fix bug in bind thunks failing top drop unbound args; add test and adjust ↵Graydon Hoare-0/+4
rustc to use bind again.
2010-09-29Patchwork of attempted fixes to effect system and gc system; eventually give ↵Graydon Hoare-6/+17
up and disable it entirely in the runtime. Will need extensive reworking.
2010-09-16Fixed deadlock caused by the message pump not being notified of new message ↵Michael Bebenita-5/+36
sends.
2010-09-10Cleanup, refactoring, and some runtime tests.Michael Bebenita-129/+275
2010-09-10Added lock_and_signal::signal_all(), and made the rust_kernel::join() use ↵Michael Bebenita-16/+31
wait instead of yield.
2010-09-08Fixed lost signal notifications.Michael Bebenita-2/+4
2010-09-08Cache task handles.Michael Bebenita-2/+8
2010-09-08Tidy up the sync dir, remove dead or mis-designed code in favour of OS ↵Graydon Hoare-345/+170
primitives, switch rust_kernel to use a lock/signal pair and wait rather than spin.
2010-09-08XFAIL many.rs since it crashes on win32, and add a time-slice sleep to the ↵Graydon Hoare-1/+24
kernel message loop to get tests to finish in a sane time.
2010-09-08Cleaned up locking in the kernel.Michael Bebenita-53/+54
2010-09-07Fixed race in the rust kernel.Michael Bebenita-19/+43
2010-09-07Lots of design changes around proxies and message passing. Made it so that ↵Michael Bebenita-410/+638
domains can only talk to other domains via handles, and with the help of the rust_kernel.
2010-09-07Started work on a framework for writing runtime tests, added some simple ↵Michael Bebenita-0/+180
test cases.
2010-09-07Small updates to util classes.Michael Bebenita-1/+24
2010-09-07Change signature of array_list::pop().Michael Bebenita-7/+22
2010-09-07Added "new" inline operators to memory regions.Michael Bebenita-0/+8
2010-09-07Added a .cpp file for rust_proxy to help avoid .h file dependencies in the ↵Michael Bebenita-0/+1
future.
2010-09-07Added a thread utility class to factor out operations on threads.Michael Bebenita-0/+64
2010-09-07Added a few utility classes, cleaned up the include order of .h files, and ↵Michael Bebenita-111/+246
started to make the Rust kernel own domain message queues rather than the Rust domains themselves.
2010-09-06Add a little pointer-cast helper to dbg.Roy Frostig-0/+13
2010-09-03When vec growth results in a newly allocated (extended) buffer, copy ↵Roy Frostig-9/+26
existing elements over via element-wise copy, not flat memcpy. Introduce new vec growth glue to achieve this.
2010-08-31Whitespace churn.Graydon Hoare-38/+63
2010-08-31Fix rust_vec constructor assertion failure caused by slow path of ↵Roy Frostig-2/+3
upcall_vec_grow. Add testcase.
2010-08-24Implemented an lock free queue based on this paper ↵Michael Bebenita-21/+294
http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf, the "lock free queue" we had before wasn't lock free at all.
2010-08-24Add support in dbg.debug_obj for printing the obj body.Roy Frostig-1/+7
2010-08-24Add std.dbg module for inspecting rust values in memory.Roy Frostig-0/+100
2010-08-20Disable task-growing logic for now until #151 is fixedPatrick Walton-1/+10
2010-08-19Make _io.buf_reader read more than 0 bytes at a time.Roy Frostig-2/+22
2010-08-17Added simple deadlock detection in the scheduler.Michael Bebenita-0/+28
2010-08-17Lots of changes around memory managment in the Runtime. Added memory regions ↵Michael Bebenita-124/+298
and fixed race caused by calling rust_srv::malloc() from multiple threads when sending messages.
2010-08-17Add a "special" rust_log flag to be used for debugging in cases where the ↵Michael Bebenita-0/+2
full log output prevents races from occurring.
2010-08-17Added labels to blocking conditions.Michael Bebenita-8/+13
2010-08-17Fixed deadlock by removing channel flushing.Michael Bebenita-32/+20
2010-08-17Made the lock_free_queue lock (temporarily, until fixed).Michael Bebenita-0/+7
2010-08-16Putting out the burning tree on Windows. Turns out you can completely starve ↵Michael Bebenita-5/+5
threads by not yielding on windows/vmware, really weird.
2010-08-16Un-xfailed working tests.Michael Bebenita-1/+2
2010-08-16Pulled rust_srv in its own file. Some cleanup, and added varargs to ↵Michael Bebenita-128/+164
assertion macros.
2010-08-12A little tidy-up that should have gone in with ↵Roy Frostig-2/+2
4e376852e709844d67f94430d9dc954d5be722b4.
2010-08-12Add vec debugging utility to _vec module.Roy Frostig-1/+20
2010-08-11Added support for task sleeping in the scheduler.Michael Bebenita-8/+127
2010-08-11Remove commented-out code that slipped in during last commit.Roy Frostig-16/+0
2010-08-11Ignore upcall_flush for channels that are disassociated from ports. This ↵Michael Bebenita-2/+16
makes task-comm-10 break a little less hard, but it still leaks because messages pending in the channel are never freed.
2010-08-11Made ref_count a word sized value.Michael Bebenita-1/+1