about summary refs log tree commit diff
path: root/src/rt
AgeCommit message (Collapse)AuthorLines
2013-04-15rt: Move test functions to rust_test_helpers.cppBrian Anderson-86/+105
2013-04-14add rust_dbg_extern_identity_TwoDoubles to prevent check-fast failureJyun-Yan You-0/+11
2013-04-10add unwind information on morestackILyoan-14/+19
2013-04-10rust morestack assembly for armILyoan-42/+60
Conflicts: src/rt/arch/arm/morestack.S
2013-04-05Fix various warnings, NOTEs, etcNiko Matsakis-1/+1
2013-04-04fix mac build and comment on stack size checkJyun-Yan You-0/+3
2013-04-04rt: improve mips backendJyun-Yan You-11/+25
2013-04-01rt/arch/arm: fix syntax used for noexec stackDaniel Micay-4/+4
2013-03-31mark the assembly object stacks as non-executableDaniel Micay-19/+91
Closes #5643 This also removes the need to pass noexecstack to gcc, but that wasn't actually working anymore.
2013-03-25auto merge of #5409 : brson/rust/rt, r=brsonbors-15/+100
r? There are a lot of commits here, but not all that much substance. Mostly just refactoring. I started sketching out the beginnings of a very simple I/O API in `core::rt::io` that represents I/O streams as a single `Stream` trait instead of `Reader` / `Writer` pairs. This seems to be the more common pattern (at least this is how the .NET BCL does it) and it seems to me that separate readers and writers would make duplex streams very awkward. Regardless, I don't intend to go very far down the I/O API design road without some mailing list discussion. I've also started on the uv bindings for file I/O but haven't gotten very far. Also hooked up the new scheduler to `rust_start` and the compiletest driver. 70% of run-pass test cases already pass, but I wouldn't read too much into that. I also split the direct, low-level uv bindings in two so that the scheduler can have its own set, leaving `std::net` on its own.
2013-03-25Merge remote-tracking branch 'brson/rt'Brian Anderson-15/+100
Conflicts: src/libcore/rt/context.rs src/libcore/rt/sched.rs src/libcore/rt/thread.rs src/libcore/rt/uv.rs
2013-03-25auto merge of #5424 : luqmana/rust/inline-rt, r=brsonbors-124/+217
As per #2521. Inlining seems to improve performance slightly: Inlined Not Inlined x86: 13.5482 14.4112 x86_64: 17.4712 18.0696 (Average of 5 runs timed with `time`) ```Rust fn foo() -> int { int::from_str(~"28098").unwrap() } fn main() { for 1000000.times { foo(); foo(); foo(); foo(); foo(); } } ``` All run on: Linux 3.2.0-0.bpo.4-amd64 #1 SMP Debian 3.2.35-2~bpo60+1 x86_64 GNU/Linux The MIPS and ARM bits I didn't inline since I'm not as familiar with them and I also can't test them. All green on try.
2013-03-21rt: Increase C_STACK_SIZE to 2MB to get JIT/rusti working again (dlopen ↵Zack Corr-1/+1
segfaults)
2013-03-19Rewrite arm/ccall.sILyoan-15/+10
2013-03-18core: Initialize global state lazily in the Scheduler ctorBrian Anderson-4/+13
I don't want any global one-time initalization functions because that will make embedding harder.
2013-03-18Add a way to run the test suite with the new schedulerBrian Anderson-15/+34
TESTARGS=--newrt make check-stage1-rpass Conflicts: src/rt/rustrt.def.in
2013-03-18core: Simplify uvll bindings and strip out currently-unused bitsBrian Anderson-0/+57
No more mapping uv structs to Rust structs
2013-03-18rt: Inline get_sp_limit/set_sp_limit/get_sp for x86.Luqman Aden-63/+45
2013-03-17rt: Inline get_sp_limit/set_sp_limit/get_sp for x86_64.Luqman Aden-64/+175
2013-03-17rt: don't save and restore xmm/regs in __morestack.Luqman Aden-19/+3
2013-03-16rt: Add RUST_DEBUG_MEM to rust_env to avoid racesBrian Anderson-2/+14
2013-03-14auto merge of #5364 : xenocons/rust/patch-1, r=z0w0bors-1/+1
2013-03-14updated from L to ull for easier mingw32 builds.xenocons-1/+1
2013-03-13Revamp foreign code not to consider the Rust modes. This requiresNiko Matsakis-7/+44
adjusting a few foreign functions that were declared with by-ref mode. This also allows us to remove by-val mode in the near future. With copy mode, though, we have to be careful because Rust will implicitly pass somethings by pointer but this may not be the C ABI rules. For example, rust will pass a struct Foo as a Foo*. So I added some code into the adapters to fix this (though the C ABI rules may put the pointer back, oh well). This patch also includes a lint mode for the use of by-ref mode in foreign functions as the semantics of this have changed.
2013-03-12Work around linkage bug cross-compiling from x86_64-apple-darwin to ↵Brian Anderson-0/+29
i686-apple-darwin The correct opendir/readdir to use appear to be the 64-bit versions called opendir$INODE64, etc. but for some reason I can't get them to link properly on i686. Putting them in librustrt and making gcc figure it out works. This mystery will have to wait for another day.
2013-03-11core: Add rt mod and add the new scheduler codeBrian Anderson-28/+69
2013-03-11rt/core: port os::list_dir to rust ref #4812Jeff Olson-70/+33
2013-03-11core: rt/core: impl os::env() in rust ref #4812Jeff Olson-31/+4
2013-03-11rt/core: impl os::getcwd() in rust ref #4812Jeff Olson-21/+0
2013-03-06Merge remote-tracking branch 'brson/cross7'Brian Anderson-2/+19
Conflicts: configure mk/rt.mk
2013-03-05mk: --android-cross-path to rustcYoung-il Choi-2/+7
2013-03-03rt: fix some bugs for MIPS targetJyun-Yan You-2/+23
2013-03-03rt: MIPS32 supportJyun-Yan You-0/+319
2013-03-02librustdoc: Remove `fn@`, `fn~`, and `fn&` from compiletest, fuzzer, ↵Patrick Walton-1/+1
rustdoc, and rt. rs=defun
2013-03-01auto merge of #5162 : brson/rust/fixmes, r=brsonbors-1/+1
2013-02-28rt: Comment out an assert in rust_kernel. #4711Brian Anderson-2/+5
2013-02-27Convert NOTEs to FIXMEsBrian Anderson-1/+1
2013-02-27rt: Make some runtime calls work outside of task contextBrian Anderson-8/+12
2013-02-27mk: rewrite make filesYoung-il Choi-0/+12
2013-02-21Put unique allocs in managed heap when they might contain managed boxes.Graydon Hoare-2/+4
2013-02-19rt: remove export of symbol removed in last commit, r=burningtreeGraydon Hoare-1/+0
2013-02-19rt: fix memory-unsafe random seed logic, r=valgrindcleanGraydon Hoare-49/+37
2013-02-16rm unused reserve_vec from rt (done in libcore)Daniel Micay-19/+0
2013-02-15rm unused hash table from the runtimeDaniel Micay-1256/+0
2013-02-14don't deplete RNG entropy when there is only one runnable taskChris Peterson-4/+4
2013-02-14reseed rust_rng after generating 32KBChris Peterson-5/+31
2013-02-14encapsulate isaac RNG in rust_rng structChris Peterson-23/+37
2013-02-14move isaac RNG utility functions to new rust_rng.cpp fileChris Peterson-60/+116
2013-02-14rt: rand.rs expects rust_next() to return uint32_t, not size_tChris Peterson-1/+1
2013-02-14auto merge of #4938 : thestinger/rust/no_zero, r=brsonbors-36/+8
I removed the unused wrappers methods named `calloc` because they relied on the malloc wrapper having a `bool zero = true` default parameter (which resulted in some accidental zeroing). Perhaps wrapping the actual calloc function would be useful, but I don't know of an existing use case that could use it so I just removed these. This gives an ~1% performance improvement for TreeMap, which does a lot of small allocations. Vectors use `realloc` which didn't zero before these changes so there's no measurable change in performance.