Brian Anderson
8d932160d9
rt: Remove box annihilator
2012-10-23 12:14:46 -07:00
Patrick Walton
f813f519a5
rt: Remove the cycle collector
2012-09-25 12:13:20 -07:00
Elliott Slaughter
3f0d207b32
gc: Add stack walker for new garbage collector.
...
Safe points are exported in a per-module list via the crate map. A C
runtime call walks the crate map at startup and aggregates the list of
safe points for the program.
Currently the GC doesn't actually deallocate memory on malloc and
free. Adding the GC at this stage is primarily of testing value.
The GC does attempt to clean up exchange heap and stack-allocated
resource on failure.
A result of this patch is that the user now needs to be careful about
what code they write in destructors, because the GC and/or failure
cleanup may need to call destructors. Specifically, calls to malloc
are considered unsafe and may result in infinite loops or segfaults.
2012-09-07 09:21:21 -07:00
Graydon Hoare
b769e29680
Compress metadata section. Seems a minor speed win, major space win.
2012-08-28 14:50:39 -07:00
Ben Blum
bdbad614ac
Remove rust_cond_lock and sys::condition (rename to little_lock)
2012-08-07 18:18:48 -04:00
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