Commit Graph

91 Commits

Author SHA1 Message Date
Graydon Hoare 336a4df778 Remove 'Nop.' comments, add emacs lines, remove obsolete file. 2011-07-13 14:03:18 -07:00
Graydon Hoare 49116adbe9 Fix compile-command lines in rt. 2011-07-13 13:51:20 -07:00
Graydon Hoare 2e2951305d Remove obsolete nargs counts from runtime. 2011-07-13 13:43:35 -07:00
Graydon Hoare 01fc165517 Attempt to correct buggy win32 timer code (causing tinderbox failures). 2011-07-13 12:25:36 -07:00
Patrick Walton a9b77a5011 rt: Remove the locks around upcall_shared_malloc and upcall_shared_free 2011-07-12 11:53:45 -07:00
Patrick Walton 7efb942639 rt: Remove the now-unused upcall_ivec_resize and upcall_ivec_spill, which allocated from the wrong heap 2011-07-10 01:30:45 -07:00
Eric Holk 8acadb17c2 Work on debugging race conditions.
Ports and channels have been moved to the kernel pool, since they've
been known to outlive their associated task. This probably isn't the
right thing to do, the life cycle needs fixed instead.

Some refactorying in memory_region.cpp. Added a helper function to
increment and decrement the allocation counter. This makes it easier
to switch between atomic and non-atomic increments. Using atomic
increments for now, although this still does not fix the problem.
2011-07-07 18:22:27 -07:00
Eric Holk a0f45f4456 Removing most of the locks in rust_upcall.cpp and elsewhere. 2011-07-07 18:22:27 -07:00
Rob Arnold f6117173c9 Allocate rust_ivec buffers out of the kernel pool
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-06 20:41:24 -07:00
Patrick Walton 91eb63eaee rt: Add a stack check to upcall_get_type_desc 2011-07-06 15:07:04 -07:00
Rob Arnold 73cc624e8e Move the channel destroy code into rust_chan.
This lets native code more easily destroy channels since directly deleting a
channel is not always the right way to destroy it.
2011-07-01 16:59:10 -07:00
Rob Arnold 09921cf86f Move channel cloning logic into a method on rust_chan.
This will allow us to more easily clone channels from native code.
2011-07-01 16:59:10 -07:00
Patrick Walton be50cdd24a rt: Add room for the new fill slot when resizing interior vectors 2011-06-30 11:35:05 -07:00
Graydon Hoare c796a8f24d Re-enable tidy (it was broken) and fix various non-tidy things. 2011-06-29 15:14:55 -07:00
Patrick Walton a2ce532337 rt: Remove the lock around upcall_vec_append. Add a test case. Closes #156. 2011-06-29 10:33:51 -07:00
Patrick Walton 74f8eb51ae rustc: Move duplicate_heap_parts to copy glue; add a test case 2011-06-28 17:59:30 -07:00
Patrick Walton dfcfef41df rustc: Rename take glue to copy glue 2011-06-28 16:52:59 -07:00
Eric Holk 866ee6ecb4 Re-enabling some tests. 2011-06-28 16:12:34 -07:00
Eric Holk 657e5a2bd5 Renamed what's left of rust_dom to rust_scheduler 2011-06-28 16:12:33 -07:00
Eric Holk 49a8cb34d2 Removed dom_owned, splitting things between task_owned and kernel_owned. Had to re-xfail a few tests brson recently un-xfailed. 2011-06-28 16:12:33 -07:00
Eric Holk f6f945fed5 Moved thread management to rust_kernel. 2011-06-28 16:12:33 -07:00
Eric Holk c6d8324830 There is only one domain per kernel now. 2011-06-28 16:12:33 -07:00
Michael Sullivan 99b4fff4d2 Properly handle the case where src==dst but we have to allocate a new vector. 2011-06-27 12:34:45 -07:00
Michael Sullivan 8ad7f3b56b Properly handle the case where src==dst in upcall_vec_append. 2011-06-27 12:34:44 -07:00
Graydon Hoare bc9fa31618 A little tidying in rt. 2011-06-27 10:08:57 -07:00
Eric Holk 681c063ec0 Conservatively serialize nearly all upcalls. Successfuly ran make check with RUST_THREADS=8, so we're probably fairly safe now. In the future we can relax the synchronization to get better performance. 2011-06-27 09:58:39 -07:00
Eric Holk 6367bcf427 Fixed a few concurrency bugs. Still not perfect, but overall it seems much more reliable. 2011-06-27 09:58:39 -07:00
Eric Holk a2dcd08cc2 Added string duplication to deep_copy. Closes #520. 2011-06-20 13:47:02 -07:00
Eric Holk 6ed6791df4 Removing dead upcall_join. Closes #509. 2011-06-16 12:23:13 -07:00
Michael Sullivan bd8f6097a7 Get rid of old vec_append glue. 2011-06-16 11:58:29 -07:00
Eric Holk 67360ae618 Fixed a problem where spawn arguments were getting lost again. Also, fixed up stack alignment, which closes #496 2011-06-15 18:16:59 -07:00
Eric Holk c4f9bd9470 Re-enabled join. 2011-06-15 18:16:59 -07:00
Patrick Walton ac743cfcb0 Merge pull request #490 from msullivan/fix_vec_append
Move the implementation of vec_append from llvm assembly to a regular upcall
2011-06-14 18:32:04 -07:00
Patrick Walton c6be352f73 rustc: Implement on-heap resizing for interior vectors 2011-06-14 18:23:13 -07:00
Michael Sullivan 95def699f1 Implement upcall_vec_append and use it for vector append. 2011-06-14 15:35:09 -07:00
Patrick Walton 355c417267 rustc: Add some interior vector spill code, untested as of yet 2011-06-13 19:27:04 -07:00
Patrick Walton c3bf7d07e9 rustc: Implement simple interior vector append translation 2011-06-13 18:57:25 -07:00
Eric Holk d1857d30fc This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Eric Holk 8cfc388d40 Switched calling conventions so that spawn with multiple arguments works. 2011-05-27 15:20:58 -07:00
Eric Holk d49998f0ed Switching over to wrappers for spawning functions of multiple arguments. Doesn't quite work yet. 2011-05-27 15:20:58 -07:00
Graydon Hoare 79c9e13073 More delicious dead code removal from runtime, upcalls. 2011-05-26 18:21:02 -07:00
Rafael Ávila de Espíndola f9946c9748 Dead code. 2011-05-24 19:39:30 -04:00
Rafael Ávila de Espíndola 40a3923fca Dead code. 2011-05-24 19:29:46 -04:00
Rafael Ávila de Espíndola 395940f7e3 Dead code elimination. 2011-05-24 19:07:30 -04:00
Rafael Ávila de Espíndola fe90159b86 "constant propagate" rust_new_exit_task_glue to its only use. 2011-05-24 15:51:22 -04:00
Eric Holk 0de27ce8bd Translated start_task, but it fails on spp == align_down(spp) 2011-05-20 16:51:09 -07:00
Eric Holk d01948cd07 Called the new_task upcall. There are refcount issues though. 2011-05-20 16:51:08 -07:00
Marijn Haverbeke c750c520e3 Remove rustboot-related logging hacks
(Also, feel free to start adding logging to your code. Really. It's fast.)
2011-05-19 19:33:32 +02:00
Rafael Ávila de Espíndola d108bfe2ee Remove a bit more dead code. 2011-05-18 14:02:53 -04:00
Rafael Ávila de Espíndola cebc9b359d Remove dead rustboot code. 2011-05-18 13:48:57 -04:00