Alex Crichton
66a07b0550
Run gyp_uv with CFG_PYTHON instead of directly
...
The syntax of the script requires python < 3, and so does our build system so we
can just use CFG_PYTHON to run the script. This prevents build failures where
`python` is actually python3 or later.
2013-08-28 02:17:13 -07:00
Alex Crichton
2ad05ae014
Fix various issues associated with building on windows
2013-08-27 20:46:43 -07:00
Alex Crichton
b89e1c000e
Implement process bindings to libuv
...
Closes #6436
2013-08-27 20:46:43 -07:00
Alex Crichton
ed204257a0
Upgrade libuv to the current master + our patches
...
There were two main differences with the old libuv and the master version:
1. The uv_last_error function is now gone. The error code returned by each
function is the "last error" so now a UvError is just a wrapper around a
c_int.
2. The repo no longer includes a makefile, and the build system has change.
According to the build directions on joyent/libuv, this now downloads a `gyp`
program into the `libuv/build` directory and builds using that. This
shouldn't add any dependences on autotools or anything like that.
Closes #8407
Closes #6567
Closes #6315
2013-08-27 20:46:17 -07:00
Brian Anderson
9cdfe1e603
rt: Remove rust_abi
2013-08-23 18:38:59 -07:00
Brian Anderson
0ee24437ce
rt: Remove rust_util.cpp
2013-08-23 18:38:59 -07:00
Brian Anderson
b72c43739d
rt: Remove old precise GC code
2013-08-23 18:38:59 -07:00
Brian Anderson
0a1baef4f5
rt: Remove timer
2013-08-23 18:38:56 -07:00
Brian Anderson
b3fa43f6e0
rt: Remove rust_exchange_alloc
2013-08-23 14:46:23 -07:00
bors
5034792c88
auto merge of #8584 : thestinger/rust/jemalloc, r=graydon
...
This reverts commit 371a316ec9
.
Closes #7217
2013-08-19 20:21:58 -07:00
Daniel Micay
0dceabda7f
Revert "Turn off jemalloc"
...
This reverts commit 371a316ec9
.
Closes #7217
2013-08-17 19:54:23 -04:00
Brian Anderson
da7d79dfbe
rt: Remove rust_stack
2013-08-16 13:24:25 -07:00
Brian Anderson
5923cc3745
rt: Remove rust_env
2013-08-16 13:24:24 -07:00
Brian Anderson
b75915d0ca
Remove the C++ runtime. Sayonara
2013-08-09 16:45:50 -07:00
Brian Anderson
371a316ec9
Turn off jemalloc
2013-06-18 12:03:14 -07:00
Young-il Choi
00ff170e7f
mk: arm support - disable tls of jemalloc on rt.mk
2013-06-13 11:48:22 +09:00
James Miller
cf536e013a
Pass the correct build flags to jemalloc
...
Apparently the standard --build and --host flags don't actually
_do_ anything. This re-uses the libuv flags, since they are the
same for getting jemalloc to cross-compile
2013-06-10 18:26:24 +12:00
Daniel Micay
a593d8f67c
pass correct flags to jemalloc for cross-compiling
2013-06-07 18:27:15 -04:00
bors
5d2cadbfea
auto merge of #6895 : cmr/rust/jemalloc, r=brson
2013-06-06 18:43:37 -07:00
Brian Anderson
f702b900d8
mk: Fix _RUST_STAGEX variables under cross compile. Fix incoming
2013-06-06 17:27:22 -07:00
Corey Richardson
2d635179f0
Windows fixes
2013-06-01 17:50:26 -04:00
Daniel Micay
933897c5f5
integrate jemalloc into the build
2013-06-01 11:31:44 -04:00
Tom Lee
e69e80938b
Define _RUST_STAGEN when building rustrt.
...
This lets us use #ifdefs to determine which stage of the build we happen
to be in, which is useful in the event we need to make changes to rustrt
that are incompatible with the code generated by stage0.
This should help pave the way to completing #6575 , which will likely
require changes to type signatures for spawn_fn & glue_fn in rustrt.
2013-05-24 00:30:01 -07:00
bors
d68c0279ea
auto merge of #6249 : crabtw/rust/arm, r=brson
...
It uses the private field of TCB head to store stack limit. I tested on my Raspberry PI. A simple hello world program ran without any problem. However, for a more complex program, it segfaulted as #6231 .
2013-05-17 18:19:27 -07:00
Young-il Choi
db38ab9ad9
mk: rt.mk regression patch for mingw32 after #6176
2013-05-07 15:26:55 +09:00
Jyun-Yan You
48b6262b38
preliminary Linux ARM support
2013-05-07 13:17:14 +08:00
Daniel Micay
86efd97a10
add gitattributes and fix whitespace issues
2013-05-03 20:01:42 -04:00
Daniel Micay
d6697e7027
pass along CFLAGS/LINK_FLAGS to libuv
...
Closes #6142
2013-05-01 22:13:33 -04:00
Brian Anderson
7cd681684f
rt: Move test functions to rust_test_helpers.cpp
2013-04-15 13:39:15 -07:00
Jyun-Yan You
99b156e78a
mk: mips toolchain config
2013-04-04 18:52:24 +08:00
bors
251d0c4557
auto merge of #5350 : yichoi/rust/pull-0313-2, r=graydon,pcwalton
...
FIX #5330
rename arm-unknown-android to arm-linux-androideabi
2013-03-19 17:06:55 -07:00
Young-il Choi
2657723cc5
mk: rt.mk ar desinated by target-triples
2013-03-14 02:26:09 +09:00
Young-il Choi
268faef63a
mk: target triple rename arm-unknown-android->arm-linux-androideabi
2013-03-13 09:21:12 +09:00
Brian Anderson
14e5a6e5f7
mk: Cleanup. Minor fixes
2013-03-06 22:37:52 -08:00
Young-il Choi
e971d0ce9f
mk: rt.mk fix for libuv cross compile
2013-03-04 13:49:01 +09:00
Young-il Choi
7714d52cd9
mk: cleanup - lib and executable suffix handling
2013-03-02 21:25:12 +09:00
Young-il Choi
26a5dc593c
mk: rewrite make files
2013-02-27 14:53:35 +09:00
Brian Anderson
15c0c35352
mk: Split target triples into bulid triple + host triples + target triples
...
For cross compiling to targets that don't want to build a compiler
2013-02-21 17:51:55 -08:00
Chris Peterson
f4320b6195
move isaac RNG utility functions to new rust_rng.cpp file
2013-02-14 22:30:27 -08:00
Jeff Olson
a74296a39f
build: ifdef for mingw/non-mingw builds
2013-02-10 11:51:05 -08:00
Jeff Olson
a38b16651f
build: tweak rt.mk, as per graydon.. CFLAGS had to stay
2013-02-10 11:51:05 -08:00
Jeff Olson
3a813e29b6
etc: rework of how libuv is integrated into the build
...
- thanks to work in libuv's upstream, we can call libuv's Makefile directly
with parameters, instead of descending in gyp-uv madness and generating
our own.
2013-02-10 11:51:05 -08:00
Brian Anderson
e43c5bdc6b
Rewrite the exchange allocator to work without an active scheduler. #4457
2013-02-06 14:27:36 -08:00
Brian Anderson
02fbd5a164
rt: Remove circular_buffer
2013-02-01 21:22:49 -08:00
Brian Anderson
4f6516969e
rt: Remove ports
2013-02-01 21:22:49 -08:00
Brian Anderson
53ec6c3f9b
rt: Remove shape code
2012-11-05 15:22:35 -08:00
Brian Anderson
1b0c6665d9
Merge remote-tracking branch 'brson/repl'
...
Conflicts:
mk/install.mk
src/rt/rustrt.def.in
2012-11-04 13:42:39 -08:00
Brian Anderson
799eb105b9
Use a linenoise with win32 support
2012-11-04 13:34:14 -08:00
Zack Corr
ea996556b9
rusti: Remove linenoise module, add to rt, remove core::rl
2012-10-30 11:08:36 +10:00
Zack Corr
4912428cb5
rusti: Add linenoise, wrap into core::rl and add rusti REPL tool
...
Add Brian Leibig to AUTHORS.txt for REPL contributions
2012-10-27 18:03:15 +10:00
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