Commit Graph

108 Commits

Author SHA1 Message Date
Eric Holk dc718d97a6 Adding a lock/condition variable to libcore. 2012-06-19 10:31:12 -07:00
Michael Sullivan 88ec259cee Put type descriptors in strings created by the runtime. Progress on #2638. 2012-06-18 15:54:37 -07:00
Tim Chevalier 3e2006a570 Revert "Adding a lock/condition variable to libcore."
This reverts commit e394ebda37.
2012-06-16 15:34:15 -07:00
Eric Holk e394ebda37 Adding a lock/condition variable to libcore. 2012-06-15 22:00:24 -04:00
Michael Sullivan f99f2e8ce2 Update the build system to handle dependency on header files. Closes #2547. 2012-06-14 14:50:14 -07:00
Michael Sullivan 3a36ffe5ff Revert "Update the build system to handle dependency on header files. Closes #2547."
This reverts commit 31f4b63dff.
2012-06-13 18:37:07 -07:00
Michael Sullivan 31f4b63dff Update the build system to handle dependency on header files. Closes #2547. 2012-06-13 16:39:09 -07:00
Michael Sullivan f8afe107fa Minor makefile cleanup. 2012-06-13 16:39:09 -07:00
Patrick Walton 851fde879d rt: Add architecture-specific general-purpose register definitions
This will be used for stack crawling, which in turn will be used for GC and
unwinding.
2012-04-04 21:40:34 -07:00
Jon Morton 128a8b6ed5 remove rust_srv 2012-04-01 22:18:40 -05:00
Brian Anderson 609144f7a6 rt: Extract start_main_loop from rust_sched_loop to rust_sched_driver 2012-03-31 19:51:29 -07:00
Brian Anderson 218dd08469 rt: Introduce rust_sched_reaper
This just moves the responsibility for joining with scheduler threads
off to a worker thread. This will be needed when we allow tasks to be
scheduled on the main thread.
2012-03-31 19:51:29 -07:00
Brian Anderson 243790836a rt: Rename rust_task_thread to rust_sched_loop
This class no longer represents a thread; it just schedules tasks.
2012-03-31 19:51:29 -07:00
Brian Anderson 6bf8d19712 rt: Extract rust_sched_launcher from rust_task_thread
rust_sched_launcher is actually responsible for setting up the thread and
starting the loop. There will be other implementations that do not actually
set up a new thread, in order to support scheduling tasks on the main OS
thread.
2012-03-31 19:51:29 -07:00
Brian Anderson 3a7a408386 rt: Free all outstanding boxes at task death 2012-03-29 16:43:18 -07:00
Graydon Hoare bd0399863f Disable some advanced (post glibc-2.3) libuv features when building snaps. 2012-03-26 18:03:53 -07:00
Graydon Hoare 38f0a2e992 Typo. No idea why local build worked. 2012-03-21 18:45:28 -07:00
Graydon Hoare 251e52e0c5 Fix rt deps. Close #1449. 2012-03-21 18:40:32 -07:00
Brian Anderson 5d4bf75f56 rt: Convert rust_task_list to a typedef 2012-03-18 18:18:18 -07:00
Marijn Haverbeke 76d07f4056 Remove dynastack support from runtime
Issue #1982
2012-03-16 00:44:06 +01:00
Marijn Haverbeke 146b61189a Get rid of rust_crate_cache in the runtime
We are no longer generating dynamic tydescs or dicts.

Issue #1982
2012-03-16 00:44:06 +01:00
Jeff Olson d461637cc5 missing build file update for parent commit 2012-02-28 17:56:15 -08:00
Brian Anderson b2cfb7ef82 rt: Add rust_port_select function 2012-02-16 11:12:22 -08:00
Graydon Hoare 5fc2e9e9ab support a fast-make mode that avoids globbing into llvm and libuv 2012-02-10 12:07:11 -08:00
Brian Anderson 5d8d591ffc rt: Remove sync::yield and sync::sleep 2012-02-09 19:00:16 -08:00
Brian Anderson 421c8db144 rt: Move rust_thread to its own files 2012-02-09 19:00:16 -08:00
Brian Anderson e0d5b92b84 rt: Begin moving stack-building functions to rust_stack.cpp 2012-02-09 19:00:15 -08:00
Jyun-Yan You b778dac197 fix build on freebsd 2012-02-09 18:41:57 -08:00
Brian Anderson 8d881967a2 rt: Extract rust_scheduler from rust_task_thread 2012-02-03 23:48:12 -08:00
Brian Anderson f94339cc1c rt: Rename rust_scheduler to rust_task_thread 2012-02-03 23:48:12 -08:00
Marijn Haverbeke c1b075d042 Remove experimental GC code
It's been sitting unused long enough to have bitrotted completely.
2012-02-03 11:34:12 +01:00
Brian Anderson 7f2980b749 rt: Remove bitrotted tests 2012-02-02 18:10:24 -08:00
Graydon Hoare c485301d21 Update libuv. 2012-02-02 17:39:47 -08:00
Niko Matsakis 196d69beb2 make boxes self-describing (fixes #1493)" (take 2)
this will be used to generate a new snapshot.
2012-02-01 18:52:08 -08:00
Niko Matsakis 3116643806 Revert "make boxes self-describing (fixes #1493)" until a new
snapshot is prepared.
2012-02-01 18:50:19 -08:00
Niko Matsakis c36207bfb8 make boxes self-describing (fixes #1493) 2012-02-01 18:18:07 -08:00
Brian Anderson 5c89938544 rt: Remove rust_timer. Unused 2012-02-01 16:05:17 -08:00
Brian Anderson 07f8555b3e std: Add some hacks to use libuv 2012-01-22 20:06:58 -08:00
User Jyyou a59c4b1b47 freebsd support 2012-01-01 20:18:55 -08:00
Brian Anderson 4699b6865f build: Use llvm-mc as our assembler
LLVM's assembler understands .cfi pseudo-ops on the mac, which we need in
order to generate frames that can be DWARF-unwound
2011-12-10 18:51:21 -08:00
Austin Seipp b513a5a500 Make valgrind usage more consistent and less error prone.
I was still having issues with the build system somehow getting confused
as to which set of valgrind headers to use when compiling rt.

This commit moves all the valgrind headers into their own directory
under rt and makes the usage more consistent. The compiler is now passed
the -DNVALGRIND flag when valgrind is not installed, as opposed to
passing -DHAVE_VALGRIND.

We also pass -I src/rt to the compiler when building rt so you can more
easily import what you want. I also cleaned up some erroneous #includes
along the way.

It should be safe to always just import the local valgrind headers and use
them without question. NVALGRIND turns the operations to no-ops when it
is active, and the build and tests run cleanly with or without.
2011-12-06 01:15:29 -06:00
Brian Anderson 7476a39e47 stdlib: Implement some preliminary libuv bindings
std::uv is intended to be low-level, exactly mirroring the C API.
Difficult to continue the implementation now without scheduler
improvements.
2011-12-01 10:24:21 -08:00
Brian Anderson b2fd6121c0 build: Pass -fPIC to the libuv build 2011-12-01 10:24:21 -08:00
Niko Matsakis 9c00c62b08 fix makefiles, add option to ignore changes in makefiles 2011-11-29 12:51:09 -08:00
Brian Anderson cd91c6d065 rt: Build __morestack as a static library and copy it to the right places 2011-11-28 18:01:42 -08:00
Brian Anderson e075412a92 build: Stop linking morestack.S to rt
__morestack has to be linked statically. The odd calling convention on x86_64
results in the arguments to __morestack (r10 & r11) being clobbered by the
dynamic linker. gcc links all the __morestack functions statically.
2011-11-28 16:37:29 -08:00
Brian Anderson 6bdf347418 rt: Make __morestack (without unwinding) work on 32-bit linux 2011-11-22 18:02:10 -08:00
Brian Anderson d624e523c9 rt: Make stack growth code build on Linux 2011-11-17 10:53:06 -08:00
Patrick Walton e6c3c4e48c rt: More work on morestack 2011-11-17 10:52:59 -08:00
Brian Anderson 02cebbb9f1 Revert "rt: More work on morestack"
This reverts commit 68aff2ad6d.
2011-11-16 18:49:19 -08:00