about summary refs log tree commit diff
path: root/src/rt
AgeCommit message (Collapse)AuthorLines
2013-07-12auto merge of #7734 : alexcrichton/rust/issue-3395, r=sanxiynbors-2/+2
Also ends up fixing one case in libstd. Closes #3395
2013-07-12auto merge of #7728 : bcully/rust/largestack64, r=cmrbors-2/+7
Just to get the ball rolling, this patch sets stacks to 4 MB on >32-bit architectures.
2013-07-11auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwaltonbors-9/+4
cc #6004 and #3273 This is a rewrite of TLS to get towards not requiring `@` when using task local storage. Most of the rewrite is straightforward, although there are two caveats: 1. Changing `local_set` to not require `@` is blocked on #7673 2. The code in `local_pop` is some of the most unsafe code I've written. A second set of eyes should definitely scrutinize it... The public-facing interface currently hasn't changed, although it will have to change because `local_data::get` cannot return `Option<T>`, nor can it return `Option<&T>` (the lifetime isn't known). This will have to be changed to be given a closure which yield `&T` (or as an Option). I didn't do this part of the api rewrite in this pull request as I figured that it could wait until when `@` is fully removed. This also doesn't deal with the issue of using something other than functions as keys, but I'm looking into using static slices (as mentioned in the issues).
2013-07-11Expand ctypes warnings to warn about *int/*uintAlex Crichton-2/+2
Also ends up fixing one case in libstd
2013-07-11Enable large stacks on 64-bit architecturesBrendan Cully-2/+7
2013-07-09auto merge of #7265 : brson/rust/io-upstream, r=brsonbors-40/+258
r? @graydon, @nikomatsakis, @pcwalton, or @catamorphism Sorry this is so huge, but it's been accumulating for about a month. There's lots of stuff here, mostly oriented toward enabling multithreaded scheduling and improving compatibility between the old and new runtimes. Adds task pinning so that we can create the 'platform thread' in servo. [Here](https://github.com/brson/rust/blob/e1555f9b5628af2b6c6ed344cad621399cb7684d/src/libstd/rt/mod.rs#L201) is the current runtime setup code. About half of this has already been reviewed.
2013-07-09std: Remove ThreadPerCore spawn mode. UnusedBrian Anderson-7/+0
2013-07-09Use purely an owned vector for storing TLS dataAlex Crichton-8/+3
2013-07-09rt: Make the old rand builtins work with newschedBrian Anderson-11/+5
2013-07-09std: Make os::set_exit_status work with newschedBrian Anderson-0/+17
2013-07-08Merge remote-tracking branch 'mozilla/master'Brian Anderson-1/+2
Conflicts: src/libextra/test.rs src/libstd/rt/global_heap.rs src/libstd/unstable/lang.rs src/libstd/vec.rs
2013-07-08Merge remote-tracking branch 'anasazi/io'Brian Anderson-0/+159
Conflicts: src/libstd/rt/test.rs
2013-07-08std::rt: Add a hack to allocate different test port ranges to different botsBrian Anderson-4/+4
2013-07-08Merge remote-tracking branch 'upstream/io' into ioEric Reed-96/+80
Conflicts: src/libstd/rt/uvio.rs
2013-07-08Address nits by @catamorphismNiko Matsakis-4/+0
2013-07-08This assert does not necessarily hold; sometimes we temporarily increase ↵Niko Matsakis-2/+2
ref-count
2013-07-03Add x64 windows to platform.mk and mingw64 header fixes.Luqman Aden-1/+2
2013-07-03Merge remote-tracking branch 'mozilla/master'Brian Anderson-97/+81
Conflicts: src/libextra/test.rs src/libstd/at_vec.rs src/libstd/cleanup.rs src/libstd/rt/comm.rs src/libstd/rt/global_heap.rs src/libstd/task/spawn.rs src/libstd/unstable/lang.rs src/libstd/vec.rs src/rt/rustrt.def.in src/test/run-pass/extern-pub.rs
2013-07-02Merge remote-tracking branch 'upstream/io' into ioEric Reed-0/+2
Conflicts: src/libstd/rt/test.rs src/rt/rustrt.def.in
2013-07-02IPv6 support for UDP and TCP.Eric Reed-0/+109
2013-07-01rt: Add global_args_lock functions to rustrt.def.inBrian Anderson-1/+3
2013-06-30vec: implement exchange vector reserve in RustDaniel Micay-8/+0
2013-06-30simplify the exchange allocatorDaniel Micay-24/+0
* stop using an atomic counter, this has a significant cost and valgrind will already catch these leaks * remove the extra layer of function calls * remove the assert of non-null in free, freeing null is well defined but throwing a failure from free will not be * stop initializing the `prev`/`next` pointers * abort on out-of-memory, failing won't necessarily work
2013-06-27auto merge of #7395 : yichoi/rust/android_dummy, r=brsonbors-0/+25
add android dummy functions which does not exist in boinic. after #7257, some mman related functions are needed for android.
2013-06-26rt: Release big stacks immediately after use to avoid holding on to them ↵Brian Anderson-47/+31
through yields This avoids the following pathological scenario that makes threadring OOM: 1) task calls C using fast_ffi, borrowing a big stack from the scheduler. 2) task returns from C and places the big stack on the task-local stack segment list 3) task calls further Rust functions that require growing the stack, and for this reuses the big stack 4) task yields, failing to return the big stack to the scheduler. 5) repeat 500+ times and OOM Conflicts: src/rt/rust_task.cpp
2013-06-26rt: add android dummy functions for mman relatedYoung-il Choi-0/+25
2013-06-25satisfy the formatting checkEric Reed-2/+2
2013-06-25Merge remote-tracking branch 'upstream/io' into ioEric Reed-49/+69
Conflicts: src/rt/rustrt.def.in
2013-06-25auto merge of #7254 : Blei/rust/intrinsic-overhaul, r=cmrbors-16/+10
This sets the `get_tydesc()` return type correctly and removes the intrinsic module. See #3730, #3475. Update: this now also removes the unused shape fields in tydescs.
2013-06-24std: Make box annihilator work with newschedBrian Anderson-1/+8
2013-06-24std: Rewrite vec_reserve_shared_actual in RustBrian Anderson-15/+10
2013-06-23Support foreign 'static mut' variables as wellAlex Crichton-1/+13
2013-06-23Remove unused TyDesc parameter from the glue functionsPhilipp Brüschweiler-2/+10
To remove the environment pointer, support for function pointers without an environment argument is needed (i.e. a fixed version of #6661).
2013-06-23Remove rust_call_tydesc_gluePhilipp Brüschweiler-10/+1
Towards #4812. Also includes some minor cleanups.
2013-06-23Remove unused shape fields from typedescsPhilipp Brüschweiler-8/+3
2013-06-21std: Make console log off/on controls work with newschedBrian Anderson-7/+18
2013-06-21std::rt: Support os::argsBrian Anderson-0/+19
2013-06-21auto merge of #7200 : yichoi/rust/fix_je_mac_cross, r=brsonbors-1/+2
while cross-compiling, ar in cross toolchains are required. linux is not sensitive so could not see errors.
2013-06-20Merge remote-tracking branch 'brson/io' into io-upstreamBrian Anderson-4/+18
Conflicts: src/rt/rust_builtin.cpp src/rt/rustrt.def.in
2013-06-21Remove all #[cfg(stage0)]-protected codeJames Miller-27/+0
New snapshot means this can all go. Also removes places that have comments that say they are workarounds for stage0 errors.
2013-06-19std::rt: Update GC metadata in initBrian Anderson-0/+6
2013-06-18std: Work around some failing 'run' tests when valgrinding. #7224Brian Anderson-0/+7
Under valgrind on 64->32 cross compiles the dynamic linker is emitting some error messages on stderr, which interferes with the tests that are checking stderr.
2013-06-17Merge remote-tracking branch 'upstream/io' into ioEric Reed-11/+44496
Conflicts: src/libstd/rt/uvio.rs
2013-06-17rt: fix jemalloc android cross-compile for macYoung-il Choi-1/+2
2013-06-16Merge remote-tracking branch 'brson/io'Brian Anderson-3/+11
Conflicts: src/libstd/rt/comm.rs src/libstd/rt/mod.rs src/libstd/rt/sched.rs src/libstd/rt/task.rs src/libstd/rt/test.rs src/libstd/rt/tube.rs src/libstd/rt/uv/uvio.rs src/libstd/rt/uvio.rs src/libstd/task/spawn.rs
2013-06-16Partial fix for #7158: Save EDX in morestack on x86-32Niko Matsakis-0/+2
2013-06-14Added a utility function to extract the udp handle from udp send requests.Eric Reed-0/+6
2013-06-13automated whitespace fixesDaniel Micay-1/+0
2013-06-13Corrected libuv UDP bindings.Eric Reed-1/+45
2013-06-12update jemalloc to 3.4.0Daniel Micay-2785/+2833