summary refs log tree commit diff
path: root/src/libstd/rt
AgeCommit message (Collapse)AuthorLines
2013-08-27librustc: Fix problem with cross-crate reexported static methods.Patrick Walton-5/+13
2013-08-27libstd: Fix merge fallout.Patrick Walton-5/+5
2013-08-27librustc: Stop calling `each_path` in coherence.Patrick Walton-3/+3
10% win or so for small crates.
2013-08-27librustc: Ensure that type parameters are in the right positions in paths.Patrick Walton-96/+124
This removes the stacking of type parameters that occurs when invoking trait methods, and fixes all places in the standard library that were relying on it. It is somewhat awkward in places; I think we'll probably want something like the `Foo::<for T>::new()` syntax.
2013-08-27librustc: Remove `&const` and `*const` from the language.Patrick Walton-17/+19
They are still present as part of the borrow check.
2013-08-27auto merge of #8790 : huonw/rust/unsafearc, r=thestingerbors-20/+20
`UnsafeAtomicRcBox` &rarr; `UnsafeArc` (#7674), and `AtomicRcBoxData` &rarr; `ArcData` to reflect this. Also, the inner pointer of `UnsafeArc` is now `*mut ArcData`, which avoids some transmutes to `~`: i.e. less chance of mistakes.
2013-08-27Rename UnsafeAtomicRcBox to UnsafeArc. Fixes #7674.Huon Wilson-20/+20
2013-08-27Decrement unkillable counter before failingFlaper Fesp-1/+3
2013-08-27Don't make the runtime exit on illegal callsFlaper Fesp-1/+3
2013-08-26Support Win64 context switchingklutzy-7/+31
This patch saves and restores win64's nonvolatile registers. This patch also saves stack information of thread environment block (TEB), which is at %gs:0x08 and %gs:0x10.
2013-08-26std: Add Win64 supportklutzy-1/+8
Some extern blobs are duplicated without "stdcall" abi, since Win64 does not use any calling convention. (Giving any abi to them causes llvm producing wrong bytecode.)
2013-08-25auto merge of #8723 : anasazi/rust/temporary-unkillable-io, r=brsonbors-124/+165
Also added a home_for_io_with_sched variant to consolidate some cases. This is a temporary step to resolving #8674.
2013-08-24auto merge of #8607 : sfackler/rust/extensions, r=brsonbors-123/+122
The method names in std::rt::io::extensions::WriterByteConversions are the same as those in std::io::WriterUtils and a resolve error causes rustc to fail after trying to find an impl of io::Writer instead of trying to look for rt::io::Writer as well.
2013-08-24auto merge of #8740 : brson/rust/rt-opt, r=thestingerbors-189/+211
See #8599
2013-08-24std::rt: Enforce sanity a while longerBrian Anderson-1/+2
I'm not comfortable turning off rtassert! yet
2013-08-24std::rt: Remove an unnecessary allocation from the main sched loopBrian Anderson-11/+11
2013-08-24std: Convert the runtime TLS key to a Rust global to avoid FFIBrian Anderson-15/+17
2013-08-24std::rt: Remove metrics for perfBrian Anderson-115/+0
These aren't used for anything at the moment and cause some TLS hits on some perf-critical code paths. Will need to put better thought into it in the future.
2013-08-24std::rt: Reduce MessageQueue contentionBrian Anderson-12/+69
It's not a huge win but it does reduce the amount of time spent contesting the message queue when the schedulers are under load
2013-08-24std::rt: Reduce SleeperList contentionBrian Anderson-12/+44
This makes the lock much less contended. In the test I'm running the number of times it's contended goes from ~100000 down to ~1000.
2013-08-24std::rt: Remove extra boxes from MessageQueue and SleeperListBrian Anderson-7/+6
2013-08-24std::rt: Optimize TLS use in change_task_contextBrian Anderson-1/+25
2013-08-24std: More TLS micro-optimizationBrian Anderson-12/+31
2013-08-24auto merge of #8725 : bblum/rust/docs, r=graydonbors-1/+85
This documents how to use trait bounds in a (hopefully) user-friendly way, in the containers tutorial, and also documents the task watching implementation for runtime developers in kill.rs. r anybody
2013-08-23std: Convert some assert!s to rtassert!Brian Anderson-5/+6
2013-08-23Define cfg(rtopt) when optimizing. Turn off runtime sanity checksBrian Anderson-0/+3
Naturally, and sadly, turning off sanity checks in the runtime is a noticable performance win. The particular test I'm running goes from ~1.5 s to ~1.3s. Sanity checks are turned *on* when not optimizing, or when cfg includes `rtdebug` or `rtassert`.
2013-08-23std: Reduce TLS accessBrian Anderson-3/+2
2013-08-23rt: Remove old precise GC codeBrian Anderson-3/+0
2013-08-23rt: Remove exit_status helpersBrian Anderson-16/+5
2013-08-23rt: Memory regions are never synchronized nowBrian Anderson-5/+2
2013-08-23Document the task watching / exit code propagation implementation.Ben Blum-1/+85
2013-08-23Rename {Reader,Writer}ByteConversions methodsSteven Fackler-123/+122
The method names in std::rt::io::extensions::WriterByteConversions are the same as those in std::io::WriterUtils and a resolve error causes rustc to fail after trying to find an impl of io::Writer instead of trying to look for rt::io::Writer as well. Same goes for ReaderByteConversions.
2013-08-23auto merge of #8691 : anasazi/rust/fix-timer-interface, r=brsonbors-7/+2
Resolves #8687.
2013-08-23auto merge of #8677 : bblum/rust/scratch, r=alexcrichtonbors-6/+8
r anybody; there isn't anything complicated here
2013-08-22auto merge of #8596 : vadimcn/rust/master, r=alexcrichtonbors-2/+0
This resolves issue #908. Notable changes: - On Windows, LLVM integrated assembler emits bad stack unwind tables when segmented stacks are enabled. However, unwind info directives in the assembly output are correct, so we generate assembly first and then run it through an external assembler, just like it is already done for Android builds. - Linker is invoked via "g++" command instead of "gcc": g++ passes the appropriate magic parameters to the linker, which ensure correct registration of stack unwind tables in dynamic libraries.
2013-08-22Enabled unit tests in std and extra.Vadim Chugunov-2/+0
2013-08-22fix 32bit mac build errorJeff Olson-2/+2
2013-08-22make check appeasementJeff Olson-1/+2
2013-08-22std: put FileMode/Access->whence-mask in uvio, open/unlink as fns in file::Jeff Olson-100/+109
2013-08-22std: slight refactor on UvFilestream seek behavior, pre-seek-refactorJeff Olson-38/+34
2013-08-22std: all of the calls in rt::uv::file take a &LoopJeff Olson-44/+43
2013-08-22std: moved static file actions (open,unlink) to FsRequestJeff Olson-63/+63
2013-08-22std: reform fn sigs of FileDescriptor methods (better result signalling)Jeff Olson-42/+46
2013-08-22std: rename tmp file paths to go into ./tmp folder in builddirJeff Olson-10/+10
2013-08-22change FileDescriptor instance methods to use &mut selfJeff Olson-11/+11
2013-08-22std: more seek testsJeff Olson-1/+71
2013-08-22std: naive stdio print test in uvioJeff Olson-0/+20
2013-08-22std: UvFileStream implements HomingIO + .home_for_io() wrapper usageJeff Olson-39/+60
2013-08-22std: writing to stdout only works when using -1 offset..Jeff Olson-1/+1
2013-08-22std: lint appeasement for unused param in condition handlerJeff Olson-1/+1