about summary refs log tree commit diff
path: root/src/libstd
AgeCommit message (Collapse)AuthorLines
2013-07-08auto merge of #7262 : nikomatsakis/rust/ref-bindings-in-irrefut-patterns, ↵bors-49/+159
r=catamorphism Correct treatment of irrefutable patterns. The old code was wrong in many, many ways. `ref` bindings didn't work, it sometimes copied when it should have moved, the borrow checker didn't even look at such patterns at all, we weren't consistent about preventing values with destructors from being pulled apart, etc. Fixes #3224. Fixes #3225. Fixes #3255. Fixes #6225. Fixes #6386. r? @catamorphism
2013-07-08auto merge of #7612 : thestinger/rust/utf8, r=huonwbors-22/+2
2013-07-08auto merge of #7608 : glinscott/rust/json_perf, r=pcwaltonbors-1/+2
Avoids the overhead of read_char for every character. Benchmark reading example.json 10 times from https://code.google.com/p/rapidjson/wiki/Performance Before: 2.55s After: 0.16s Regression testing is already done by isrustfastyet.
2013-07-08auto merge of #7577 : brson/rust/vers, r=cmrbors-1/+1
2013-07-08Correct merge errorsNiko Matsakis-1/+1
2013-07-08Correct illegal pattern in windows-only codeNiko Matsakis-2/+2
2013-07-08Correct merge failuresNiko Matsakis-3/+3
2013-07-08Address nits by @catamorphismNiko Matsakis-1/+1
2013-07-08Patch up some code that was using irrefutable patterns incorrectly.Niko Matsakis-9/+15
2013-07-08update ptr intrinsics and rewrite vec routines to be more correct.Niko Matsakis-40/+144
In particular, it is not valid to go around passing uninitialized or zero'd memory as arguments. Rust should generally be free to assume that the arguments it gets are valid input values, but the output of intrinsics::uninit() and intrinsics::init() are not (e.g., an @T is just null, leading to an error if we should try to increment the ref count).
2013-07-08Bump version numbers to 0.8-preBrian Anderson-1/+1
2013-07-08auto merge of #7604 : apasel422/rust/peek, r=huonwbors-0/+65
This can be useful for inserting debugging code at different steps in an iterator pipeline.
2013-07-08auto merge of #7605 : thestinger/rust/vec, r=Aatchbors-21/+33
This is work continued from the now landed #7495 and #7521 pulls. Removing the headers from unique vectors is another project, so I've separated the allocator.
2013-07-08remove headers from exchange allocationsDaniel Micay-3/+20
2013-07-08Merge pull request #7595 from thestinger/iteratorDaniel Micay-19/+19
remove some method resolve workarounds
2013-07-08add a temporary vector_exchange_malloc lang itemDaniel Micay-0/+8
2013-07-08vec: make vec_reserve_shared_actual privateDaniel Micay-20/+7
2013-07-07auto merge of #7497 : alexcrichton/rust/issue-7394, r=huonwbors-2/+8
2013-07-07remove some method resolve workaroundsDaniel Micay-19/+19
2013-07-07iterator: Add `IteratorUtil::peek_` methodAndrew Paseltiner-0/+65
2013-07-07auto merge of #7629 : thestinger/rust/rope, r=graydonbors-2/+1
It's broken/unmaintained and needs to be rewritten to avoid managed pointers and needless copies. A full rewrite is necessary and the API will need to be redone so it's not worth keeping this around (#7628). Closes #2236, #2744
2013-07-07auto merge of #7602 : blake2-ppc/rust/vec-pop-opt, r=cmrbors-36/+78
Implement methods `.pop_opt() -> Option<T>` and `.shift_opt() -> Option<T>` to allow retrieval of front/back of a vec in one operation without fail. .pop() and .shift() are changed to reuse the former two methods. Follows the naming of the previous method .head_opt()
2013-07-06auto merge of #7570 : kballard/rust/iterator-size-hint, r=thestingerbors-26/+138
Change the signature of Iterator.size_hint() to always have a lower bound. Implement .size_hint() on all remaining iterators (if it differs from the default).
2013-07-06remove extra::ropeDaniel Micay-2/+1
It's broken/unmaintained and needs to be rewritten to avoid managed pointers and needless copies. A full rewrite is necessary and the API will need to be redone so it's not worth keeping this around. Closes #2236, #2744
2013-07-06auto merge of #7194 : jensnockert/rust/endian, r=cmrbors-0/+14
They simply byte-swap an integer to a specific endian, like the hton* functions in C. These intrinsics are synthesized, so maybe they should be in another file. But since they are just a single line of code each, based on the bswap intrinsics and aren't really intended for public consumption I thought they would fit in the intrinsics file. The next step working on this could be to expose a trait / generic function for byteswapping.
2013-07-06Faster check for ascii-spaceGary Linscott-1/+2
Since ' ' is by far one of the most common characters, it is worthwhile to put it first, and short-circuit the rest of the function. On the same JSON benchmark, as the json_perf improvement, reading example.json 10 times from https://code.google.com/p/rapidjson/wiki/Performance. Before: 0.16s After: 0.11s
2013-07-05str: stop encoding invalid out-of-range `char`Daniel Micay-22/+2
2013-07-05vec: Add .shift_opt() -> Option<T>blake2-ppc-12/+40
Add a function to safely retrieve the first element of a ~[T], as Option<T>. Implement shift() using shift_opt(). Add tests for both .shift() and .shift_opt()
2013-07-05vec: Add .pop_opt() -> Option<T>blake2-ppc-24/+38
Add a function to safely retrieve the last element of a ~[T], as Option<T>. Implement pop() using pop_opt(); it benches the same as the old implementation when tested with optimization level 2.
2013-07-05Implement .size_hint() on the remaining Iterator adaptorsKevin Ballard-1/+118
Every iterator adaptor now has an implementation of .size_hint() that makes sense, except for when the default of (0, None) is correct.
2013-07-05Change signature of Iterator.size_hintKevin Ballard-27/+22
Remove the Option wrapper around the lower bound. None is semantically the same as Size(0), so there's no point in having a distinction.
2013-07-04auto merge of #7549 : sfackler/rust/docs, r=msullivanbors-1/+2
I'm leaving the Sized kind undocumented since it isn't fully implemented yet.
2013-07-03Merge pull request #7565 from Blei/fix-rev-size-hintDaniel Micay-1/+16
vec: Fix size_hint() of reverse iterators
2013-07-04Convert vec::{as_imm_buf, as_mut_buf} to methods.Huon Wilson-73/+78
2013-07-04Convert vec::windowed to an external iterator, and add an n-at-a-time chunk ↵Huon Wilson-45/+132
iterator.
2013-07-04Convert vec::{split, splitn, rsplit, rsplitn} to external iterators.Huon Wilson-263/+158
2013-07-04Remove standalone comparison functions in vec, make the trait impls better.Huon Wilson-155/+139
2013-07-04Remove vec::reversed, replaced by iterators.Huon Wilson-27/+3
2013-07-04Remove vec::{filter, filtered, filter_map, filter_mapped}, replaced by ↵Huon Wilson-218/+3
iterators.
2013-07-04Implement consuming iterators for ~[], remove vec::{consume, ↵Huon Wilson-133/+101
consume_reverse, map_consume}.
2013-07-03vec: Fix size_hint() of reverse iteratorsPhilipp Brüschweiler-1/+16
Fixes #7558
2013-07-03auto merge of #7523 : huonw/rust/uppercase-statics-lint, r=cmrbors-56/+70
Adds a lint for `static some_lowercase_name: uint = 1;`. Warning by default since it causes confusion, e.g. `static a: uint = 1; ... let a = 2;` => `error: only refutable patterns allowed here`.
2013-07-03auto merge of #7474 : Seldaek/rust/clean-iter, r=thestingerbors-313/+6
I think it's WIP - but I wanted to ask for feedback (/cc @thestinger) I had to move the impl of FromIter for vec into extra::iter because I don't think std can depend on extra, but that's a bit messed up. Similarly some FromIter uses are gone now, not sure if this is fixable or if I made a complete mess here..
2013-07-01Small documentation changesSteven Fackler-1/+2
I'm leaving the Sized kind undocumented since it isn't fully implemented yet.
2013-07-01auto merge of #7521 : thestinger/rust/vec, r=Aatchbors-21/+32
continued from #7495
2013-07-01rustc: add a lint to enforce uppercase statics.Huon Wilson-56/+70
2013-06-30auto merge of #7487 : huonw/rust/vec-kill, r=cmrbors-614/+276
Continuation of #7430. I haven't removed the `map` method, since the replacement `v.iter().transform(f).collect::<~[SomeType]>()` is a little ridiculous at the moment.
2013-06-30pass exchange_malloc an alignment, not a tydescDaniel Micay-7/+2
2013-06-30global_heap: inline get_box_size and align_toDaniel Micay-0/+2
2013-06-30vec: implement exchange vector reserve in RustDaniel Micay-12/+14