about summary refs log tree commit diff
path: root/src/rt
AgeCommit message (Collapse)AuthorLines
2013-05-18auto merge of #6577 : brson/rust/io-upstream, r=pcwaltonbors-20/+52
r? This is all of my scheduler work on #4419 from the last 3 weeks or so. I've had a few failed pull requests so far but I think the problems are ironed out. * TCP * The beginnings of runtime embedding APIs * Porting various corners of core to be compatible with both schedulers * libuv timer bindings * Further refinement of I/O error handling, including a new, incomplete, `read_error` condition * Incomplete refactoring to make tasks work without coroutines and user-space scheduling * Implementations of Reader/Writer extension methods * Implementations of the most important part of core::comm I'm particularly happy with how easy the [comm types on top of the scheduler](https://github.com/brson/rust/blob/io-upstream/src/libcore/rt/comm.rs). Note that these implementations do not use pipes. If anything here needs careful review though it's this code. This branch passes 95% of the run-pass tests (with `TESTARGS=--newrt`) In the next week I'll probably spend some time adding preliminary multithreading and seeing how close we are to removing the old runtime.
2013-05-17auto merge of #6249 : crabtw/rust/arm, r=brsonbors-0/+11
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-15rt: Rename sched_key to rt_keyBrian Anderson-8/+8
It is more general-purpose than holding scheduler pointers
2013-05-15core::rt: Add uv timer bindingsBrian Anderson-1/+1
2013-05-15core::rt: Initialize loggingBrian Anderson-1/+5
2013-05-15core: Use a global lock instead of runtime lock for os::getenv, etc. #4726Brian Anderson-1/+20
2013-05-15core:rt: A few micro-optsBrian Anderson-11/+7
2013-05-14core::rt: Register stacks with valgrind. #6428Brian Anderson-0/+13
2013-05-14core::rt: 0 is a valid TLS keyBrian Anderson-2/+2
2013-05-13Correct #[always_inline] -> #[inline(always)] and __attribute((...)) -> ↵Luqman Aden-1/+1
__attribute__((...)).
2013-05-10auto merge of #6358 : crabtw/rust/mips-segstk, r=brsonbors-6/+102
I changed ```RED_ZONE_SIZE``` to ```RZ_MAC_32``` because of stack canary failure. Here is a LLVM patch for MIPS segmented stacks. http://people.cs.nctu.edu.tw/~jyyou/rust/mips-segstk.patch Current test results ``` failures: rand::tests::test_rng_seeded_custom_seed2 run::tests::test_forced_destroy_actually_kills run::tests::test_unforced_destroy_actually_kills time::tests::run_tests uv_ll::test::test_uv_ll_struct_size_addrinfo uv_ll::test::test_uv_ll_struct_size_uv_timer_t segfaults: rt::io::option::test::test_option_writer_error rt::local_services::test::unwind rt::sched::test_swap_tasks_then stackwalk::test_simple stackwalk::test_simple_deep ```
2013-05-09auto merge of #6345 : seanmoon/rust/fix-typos, r=sanxiynbors-2/+2
Hi there, Really enjoying Rust. Noticed a few typos so I searched around for a few more--here's some fixes. Ran `make check` and got `summary of 24 test runs: 4868 passed; 0 failed; 330 ignored`. Thanks! Sean
2013-05-09improve MIPS backend and implement segmented stacksJyun-Yan You-6/+102
2013-05-09Fix typosSean Moon-2/+2
2013-05-08auto merge of #6323 : brson/rust/nullary, r=thestingerbors-8/+0
There's no need to delegate to C to call the Rust main function.
2013-05-08auto merge of #6307 : brson/rust/rng2, r=brsonbors-60/+59
Closes #6280
2013-05-07rt: Remove rust_call_nullary_fnBrian Anderson-8/+0
There's no need to delegate to C to call the Rust main function.
2013-05-07rt: Eliminate the dependency on rust_kernel from rust_rngBrian Anderson-34/+36
2013-05-07rt: Move win32_require out of the rust_kernel typeBrian Anderson-26/+23
This is only used on rust_rng, which I am trying to extricate from the kernel.
2013-05-07When autoborrowing a fn in trans, adjust the type of the datum to be `&fn`.Niko Matsakis-9/+2
Fixes #6141.
2013-05-07preliminary Linux ARM supportJyun-Yan You-0/+11
2013-05-06add rust_take_task_borrow_list and rust_set_task_borrow_list to rustrt.def.inNiko Matsakis-0/+2
2013-05-05Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freezeNiko Matsakis-241/+178
Conflicts: src/libcore/core.rc src/libcore/hashmap.rs src/libcore/num/f32.rs src/libcore/num/f64.rs src/libcore/num/float.rs src/libcore/num/int-template.rs src/libcore/num/num.rs src/libcore/num/strconv.rs src/libcore/num/uint-template.rs src/libcore/ops.rs src/libcore/os.rs src/libcore/prelude.rs src/libcore/rt/mod.rs src/libcore/unstable/lang.rs src/librustc/driver/session.rs src/librustc/middle/astencode.rs src/librustc/middle/borrowck/check_loans.rs src/librustc/middle/borrowck/gather_loans.rs src/librustc/middle/borrowck/loan.rs src/librustc/middle/borrowck/preserve.rs src/librustc/middle/liveness.rs src/librustc/middle/mem_categorization.rs src/librustc/middle/region.rs src/librustc/middle/trans/base.rs src/librustc/middle/trans/inline.rs src/librustc/middle/trans/reachable.rs src/librustc/middle/typeck/check/_match.rs src/librustc/middle/typeck/check/regionck.rs src/librustc/util/ppaux.rs src/libstd/arena.rs src/libstd/ebml.rs src/libstd/json.rs src/libstd/serialize.rs src/libstd/std.rc src/libsyntax/ast_map.rs src/libsyntax/parse/parser.rs src/test/compile-fail/borrowck-uniq-via-box.rs src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs src/test/run-pass/borrowck-nested-calls.rs
2013-05-04auto merge of #6234 : yichoi/rust/glob-dummy-pull, r=thestingerbors-2/+39
transitional patch to resolve compile/link failure on android after #6161 landed, I've encountered below errors since android does not support glob in libc. /opt/ndk_standalone/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/yichoi/rust_work/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/arm-linux-androideabi/lib/libcore-c3ca5d77d81b46c1-0.7-pre.so: error: undefined reference to 'glob' /opt/ndk_standalone/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/yichoi/rust_work/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/arm-linux-androideabi/lib/libcore-c3ca5d77d81b46c1-0.7-pre.so: error: undefined reference to 'globfre Since android does not have `glob.h`, `glob_t` definition comes from https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/vSH6MWPD0Vk #6100 should be resolved.
2013-05-05rt: rust_android_dummy.cpp fix for make tidyYoung-il Choi-1/+4
2013-05-04improve DEBUG_BORROW printoutsNiko Matsakis-0/+3
2013-05-04rt: glob, globfree dummy function for androidYoung-il Choi-2/+36
2013-05-03add gitattributes and fix whitespace issuesDaniel Micay-29/+3
2013-05-03Change borrow debugging so it is disabled by -ONiko Matsakis-3/+0
2013-05-02Merge remote-tracking branch 'brson/io' into incomingBrian Anderson-24/+114
Conflicts: mk/rt.mk src/libcore/run.rs
2013-05-02Convert most of rust_run_program.cpp to rust (issue #2674).gareth-186/+18
2013-05-02Add error if RED_ZONE_SIZE doesn't get definedJames Miller-0/+4
2013-05-01add an option to debug borrows (RUST_DEBUG_BORROW) so you canNiko Matsakis-0/+33
find out where the offending borrow occurred. This ... still needs some work.
2013-04-30Merge remote-tracking branch 'brson/io'Brian Anderson-24/+114
Conflicts: src/libcore/task/local_data_priv.rs
2013-04-28auto merge of #5646 : Aatch/rust/unwind-fix, r=brsonbors-41/+7
This fixes issue #5641
2013-04-27auto merge of #6081 : brson/rust/out-of-stack, r=thestingerbors-3/+3
People hit the recursion depth limit too often, it's not possible to unwind reliably from out-of-stack. Issues #3555, #3695
2013-04-26rt: Set the stack depth limit to 1GB. Abort on error.Brian Anderson-3/+3
People hit the recursion depth limit too often, it's not possible to unwind reliably from out-of-stack. Issues #3555, #3695
2013-04-26rt: use the [u]int[nn]_t types in the RNG.Huon Wilson-9/+14
This means that `ub4`s are always 4 bytes, rather than being 8 bytes on x64. (Suggested but not implemented by upstream: "Porting it to a 64-bit machine [...] may just need an adjustment of the definition of ub4")
2013-04-25rt: abort doesn't take an argumentBrian Anderson-1/+1
2013-04-25rt: pull upstream ISAAC code for consistency between 32/64 bit platformsHuon Wilson-18/+23
The "unsigned 4 byte" `ub4`s are actually 8 bytes on 64-bit platforms which mean that some bits > 2**32 were retained in calculations, these would then "reappear" after a shift and so the stream of random numbers would differ on 32 bit vs 64 bit platforms.
2013-04-24Remove rust_unwind.hJames Miller-41/+7
Adds the required definitions in the correct place.
2013-04-23Merge remote-tracking branch 'brson/io'Brian Anderson-24/+114
This also reverts some changes to TLS that were leaking memory. Conflicts: src/libcore/rt/uv/net.rs src/libcore/task/local_data_priv.rs src/libcore/unstable/lang.rs
2013-04-23Fix issue #5976 - HANDLE leaks and undefined/bad behavourgareth-14/+45
on windows.
2013-04-23Remove a stray new operator in rust_task.hAlex Crichton-6/+0
2013-04-22core::rt: Add unwinding to newsched tasksBrian Anderson-3/+37
2013-04-21core::rt: Add the local heap to newsched tasksBrian Anderson-6/+47
Reusing the existing boxed_region implementation from the runtime
2013-04-21rt: Don't make memory_region depend on rust_envBrian Anderson-14/+18
I am going to use memory_region and boxed_region as the local heap in the new scheduler, for now at least, and I don't have a rust_env available.
2013-04-21auto merge of #5887 : jdm/rust/stackbounds, r=brsonbors-0/+7
This is needed to allow GC to work in SpiderMonkey.
2013-04-21rt: Make the C stack segment accessible to runtime users.Josh Matthews-0/+7
2013-04-20core::rt: Use generated port numbers in testsBrian Anderson-1/+1