about summary refs log tree commit diff
path: root/src/libstd/unstable
AgeCommit message (Collapse)AuthorLines
2013-06-16Merge remote-tracking branch 'brson/io'Brian Anderson-2/+71
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-15auto merge of #7109 : bblum/rust/rwlocks, r=brsonbors-0/+6
r? @brson links to issues: #7065 the race that's fixed; #7066 the perf improvement I added. There are also some minor cleanup commits here. To measure the performance improvement from replacing the exclusive with an atomic uint, I edited the ```msgsend-ring-rw-arcs``` bench test to do a ```write_downgrade``` instead of just a ```write```, so that it stressed the code paths that accessed ```read_count```. (At first I was still using ```write``` and saw no performance difference whatsoever, whoooops.) The bench test measures how long it takes to send 1,000,000 messages by using rwarcs to emulate pipes. I also measured the performance difference imposed by the fix to the ```access_lock``` race (which involves taking an extra semaphore in the ```cond.wait()``` path). The net result is that fixing the race imposes a 4% to 5% slowdown, but doing the atomic uint optimization gives a 6% to 8% speedup. Note that this speedup will be most visible in read- or downgrade-heavy workloads. If an RWARC's only users are writers, the optimization doesn't matter. All the same, I think this more than justifies the extra complexity I mentioned in #7066. The raw numbers are: ``` with xadd read count before write_cond fix 4.18 to 4.26 us/message with write_cond fix 4.35 to 4.39 us/message with exclusive read count before write_cond fix 4.41 to 4.47 us/message with write_cond fix 4.65 to 4.76 us/message ```
2013-06-12Document unstable::atomics fetch_* return valuesBen Blum-0/+6
2013-06-12Prototyped a dynamic library facility interfaceSteven Stewart-Gallus-0/+207
2013-06-12std: remove substr & str::count_*, methodise char_len, implement slice_chars.Huon Wilson-4/+4
The confusing mixture of byte index and character count meant that every use of .substr was incorrect; replaced by slice_chars which only uses character indices. The old behaviour of `.substr(start, n)` can be emulated via `.slice_from(start).slice_chars(0, n)`.
2013-06-11auto merge of #7056 : alexcrichton/rust/issue-4727, r=catamorphismbors-22/+16
Closes #4727
2013-06-11Add a finally impl for `extern "Rust" fn()`Alex Crichton-22/+16
2013-06-11option: remove redundant old_iter implsDaniel Micay-6/+6
2013-06-10debugged a compiler ICE when merging local::borrow changes into the main io ↵toddaaro-2/+2
branch and modified the incoming new file lang.rs to be api-compatible
2013-06-10Tag a bunch of destructors that need mutable self with FIXME for #4330. ↵Ben Blum-0/+1
Close #4943.
2013-06-10std: convert str::reserve* to methods, and methodise str::push_*.Huon Wilson-3/+3
2013-06-10std: remove str::{len, slice, is_empty} in favour of methods.Huon Wilson-1/+1
2013-06-09std: add reverse vec iterators, replace vec::each*_reverse.Huon Wilson-1/+2
2013-06-05core: Make atomic methods publicBrian Anderson-31/+31
2013-06-05Made fns in the impls for the Atomic structs pubMatthijs Hofstra-31/+31
2013-06-04std::cell: Modernize constructorsPhilipp Brüschweiler-4/+4
Part of #3853
2013-06-01Remove all uses of `pub impl`. rs=stylePatrick Walton-7/+7
2013-05-30Remove unnecessary 'use' formsDaniel Farina-2/+1
Fix a laundry list of warnings involving unused imports that glutted up compilation output. There are more, but there seems to be some false positives (where 'remedy' appears to break the build), but this particular set of fixes seems safe.
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-30/+36
2013-05-29Merge remote-tracking branch 'brson/io' into incomingBrian Anderson-0/+69
Conflicts: src/libstd/rt/sched.rs
2013-05-28auto merge of #6740 : Aatch/rust/atomic-types, r=brsonbors-68/+118
This is a follow up to #6732. Makes everything a little more sound. r? @brson
2013-05-26add memset32/memset64Daniel Micay-0/+10
2013-05-26C++0x -> C++11Daniel Micay-1/+1
2013-05-26make the memcpy/memmove intrinsics higher-levelDaniel Micay-4/+17
This allows them to make use of the type's alignment, instead of being pessimistic and assuming it is only 1.
2013-05-26Add some documentationJames Miller-1/+25
2013-05-26Add AtomicOption typeJames Miller-33/+91
2013-05-26Make AtomicPtr use *mut, instead of ~James Miller-47/+15
2013-05-25Add basic atomic typesJames Miller-0/+344
2013-05-23optimize util::swap, &mut pointers never aliasDaniel Micay-1/+0
2013-05-23add memcpy intrinsic to mirror memmoveDaniel Micay-0/+7
2013-05-22libstd: Rename libcore to libstd and libstd to libextra; update makefiles.Patrick Walton-0/+2516
This only changes the directory names; it does not change the "real" metadata names.