1647 Commits

Author SHA1 Message Date
Simon Sapin
2ff42435c2 Deprecate String::from_str in favor of String::from
With the latter is provided by the `From` conversion trait, the former is now completely redundant. Their code is identical.
2015-06-07 22:36:58 +02:00
Tshepang Lekhonkhobe
0335a94a68 doc: improve some of str examples 2015-06-07 20:58:47 +02:00
Oliver 'ker' Schneider
ec078a033b change some statics to constants 2015-06-07 19:50:13 +02:00
bors
64d32b057e Auto merge of #26066 - steveklabnik:docs_on_a_plane, r=alexcrichton
When things get stabilized, they don't always have their docs updated to remove the gate.
2015-06-07 17:04:40 +00:00
Steve Klabnik
a3b19c8858 Remove many unneeded feature annotations in the docs
When things get stabilized, they don't always have their docs updated to remove the gate.
2015-06-06 18:58:35 -04:00
bors
98f6e40b6e Auto merge of #26050 - bluss:linked-list, r=Gankro
The recent bug that was found in LinkedList reminded me of some general cleanup
that's been waiting for some time.

- Use a loop from the front in Drop, it works just as well and without an unsafe block
- Change Rawlink methods to use `unsafe` in an idiomatic way. This does mean that
we need an unsafe block for each dereference of a raw link. Even then, the extent
of unsafe-critical code is even larger of course, since safety depends on the whole
data structure's integrity. This is a general problem we are aware of.
- Some cleanup just to try to decrease the amount of Rawlink handling.
2015-06-06 18:40:11 +00:00
Simon Sapin
7ac6b58237 Mark str::to_uppercase and str::to_lowercase as stable. 2015-06-06 20:37:23 +02:00
Ulrik Sverdrup
32037a5696 linked_list: Add Rawlink::from 2015-06-06 20:05:39 +02:00
Ulrik Sverdrup
16cefab795 linked_list: Add method Node::set_next 2015-06-06 20:05:39 +02:00
Ulrik Sverdrup
201852e56a linked_list: Cleanup code in split_off 2015-06-06 20:05:38 +02:00
Ulrik Sverdrup
289d5db409 linked_list: Use unsafe properly for Rawlink methods 2015-06-06 14:26:39 +02:00
Ulrik Sverdrup
a090e1f411 linked_list: Use a safe loop in Drop 2015-06-06 14:26:39 +02:00
Simon Sapin
f901086b0d Correctly map upper-case Sigma to lower-case in word-final position. Fix #26035. 2015-06-06 12:37:11 +02:00
bors
c78c0994b1 Auto merge of #26024 - Aatch:inline-as_bytes, r=Gankro
This wasn't marked inline, so wasn't being inlined cross-crate. It's
actually a no-op function, since it's a wrapper around `mem::transmute`.
Marking it inline means that programs calling it can see that it's a
no-op and act accordingly during optimisation.
2015-06-05 18:47:38 +00:00
James Miller
beadbfd194 Mark std::as_bytes as inline
This wasn't marked inline, so wasn't being inlined cross-crate. It's
actually a no-op function, since it's a wrapper around `mem::transmute`.
Marking it inline means that programs calling it can see that it's a
no-op and act accordingly during optimisation.
2015-06-05 13:53:55 +12:00
Alexis Beingessner
e12d3869e3 properly null out ptr in LinkedList::split_off - fixes #26020 2015-06-04 18:01:27 -07:00
bors
80d08a37b6 Auto merge of #25991 - Jexell:master, r=alexcrichton
Removed an unnecessary `transmute` and replaced some code with an equivalent method.
2015-06-04 06:08:42 +00:00
Jexell
7972a000e3 Update linked_list.rs
Removed an unnecessary `transmute` and replaced some code with an equivalent method.
2015-06-03 16:14:35 +01:00
bors
2c8d75d655 Auto merge of #25935 - wesleywiser:fix_libcollection_build_warnings, r=alexcrichton
Fixes a bunch of warnings that are generated during the stage0 build of libcollections.
2015-06-03 02:47:45 +00:00
Manish Goregaokar
a85150b58a Rollup merge of #25936 - tshepang:patch-2, r=alexcrichton 2015-06-02 11:14:08 +05:30
Wesley Wiser
99df38347b [libcollections] Fix unused import warnings during stage0 build 2015-06-01 19:43:18 -04:00
Tshepang Lekhonkhobe
3af8e14cd1 doc: make String::as_bytes example more simple 2015-06-01 00:26:11 +02:00
Tshepang Lekhonkhobe
aabff227d2 doc: be more clear/explicit that we got String type 2015-05-30 21:21:56 +02:00
bors
db1c761b7e Auto merge of #25838 - mbrubeck:doc-edit, r=steveklabnik
Fixes #25622. r? @steveklabnik
2015-05-29 10:13:05 +00:00
bors
efebe45cc0 Auto merge of #25856 - bluss:binary-heap-hole, r=Gankro
collections: Make BinaryHeap panic safe in sift_up / sift_down

Use a struct called Hole that keeps track of an invalid location
in the vector and fills the hole on drop.

I include a run-pass test that the current BinaryHeap fails, and the new
one passes.

NOTE: The BinaryHeap will still be inconsistent after a comparison fails. It will
not have the heap property. What we fix is just that elements will be valid
values.

This is actually a performance win -- the new code does not bother to write in `zeroed()`
values in the holes, it just leaves them as they were.

Net result is something like a 5% decrease in runtime for `BinaryHeap::from_vec`. This
can be further improved by using unchecked indexing (I confirmed it makes a difference,
not a surprise with the non-sequential access going on), but let's leave that for another PR.
Safety first 😉 

Fixes #25842
2015-05-28 20:16:08 +00:00
Ulrik Sverdrup
5249cbb7fa collections: Make BinaryHeap panic safe in sift_up / sift_down
Use a struct called Hole that keeps track of an invalid location
in the vector and fills the hole on drop.

I include a run-pass test that the current BinaryHeap fails, and the new
one passes.

Fixes #25842
2015-05-28 20:24:47 +02:00
Steve Klabnik
16a47c2d91 remove references to IoResult
This is now std::io::Result
2015-05-28 12:51:01 -04:00
Matt Brubeck
6c2b340fdc Improve docs for Vec::as_slice and as_mut_slice
Fixes #25622.
2015-05-27 12:37:29 -07:00
Eduard Burtescu
6e8e4f847c Remove #[cfg(stage0)] items. 2015-05-27 11:19:02 +03:00
Oliver Schneider
59820fcf61 Rollup merge of #25716 - steveklabnik:remove_bad_docs, r=Gankro 2015-05-23 19:03:20 +02:00
Oliver Schneider
0b70f27b64 Rollup merge of #25714 - brianquinlan:patch-1, r=huonw 2015-05-23 19:03:19 +02:00
bors
8bc80ba9fc Auto merge of #24847 - sfackler:debug-builders-stability, r=aturon
The `debug_builders` feature is up for 1.1 stabilization in #24028. This commit stabilizes the API as-is with no changes.

Some nits that @alexcrichton mentioned that may be worth discussing now if anyone cares:

* Should `debug_tuple_struct` and `DebugTupleStruct` be used instead of `debug_tuple` and `DebugTuple`? It's more typing but is a technically more correct name.
* `DebugStruct` and `DebugTuple` have `field` methods while `DebugSet`, `DebugMap` and `DebugList` have `entry` methods. Should we switch those to something else for consistency?

cc @alexcrichton @aturon
2015-05-23 09:36:56 +00:00
Steve Klabnik
0b1976c2c2 Don't mention outdated methods 2015-05-22 15:24:56 -04:00
Brian Quinlan
7389b0abc2 Make it clear that push is only amortized O(1) 2015-05-22 10:26:18 -07:00
bors
c575885e25 Auto merge of #25625 - bluss:doc-slice-order, r=Gankro
collections: Reorder slice methods to improve API docs

We have an evolutionary history whose traces are still visible in the
slice docs today.

Some heuristics:

* Group method and method_mut together
* Group method and method_by together
* Group by use case, here we have roughly:

  Basic interrogators (len)
  Mutation (swap)
  Iterators (iter)
  Segmentation (split)
  Searching (contains)
  Permutations (permutations)
  Misc (clone_from_slice)
2015-05-20 22:16:54 +00:00
Ulrik Sverdrup
77dcaa5c58 collections: Reorder slice methods to improve API docs
We have an evolutionary history whose traces are still visible in the
slice docs today.

Some heuristics:

* Group method and method_mut together
* Group method and method_by together
* Group by use case, here we have roughly:

  Basic interrogators (len)
  Mutation (swap)
  Iterators (iter)
  Segmentation (split)
  Searching (contains)
  Permutations (permutations)
  Misc (clone_from_slice)
2015-05-20 12:27:09 +02:00
bors
720735b943 Auto merge of #25588 - bluss:doc-string-from, r=alexcrichton
Use stable code in doc examples (libcollections)

Main task is to change from String::from_str to String::from in examples for String
(the latter constructor is stable). While I'm at it, also remove redundant feature flags,
fix some other instances of unstable code in examples (in examples for stable
methods), and remove some use of usize in examples too.
2015-05-20 06:03:58 +00:00
Steven Fackler
e161d5cf73 Stabilize debug builders for 1.2.0 2015-05-19 21:57:39 -07:00
Steve Klabnik
55da4c6975 Small fix for https://github.com/rust-lang/rust/pull/25611 2015-05-19 21:27:01 -04:00
Steve Klabnik
dd1c68e6a1 Rollup merge of #25611 - parir:patch-1, r=steveklabnik
r? @steveklabnik
2015-05-19 18:38:54 -04:00
parir
c9c474cb86 doc: add missing fences 2015-05-19 19:19:42 +02:00
Parker Moore
733e7eea5c fmt.rs: add note about lack of padding support for some types 2015-05-19 19:21:52 +07:00
bors
b301e02f37 Auto merge of #25548 - sfackler:debug-builders-by-ref, r=alexcrichton
Based on feedback from https://internals.rust-lang.org/t/final-comment-period-for-debug-builders-stabilization/2007/2
2015-05-19 05:39:29 +00:00
Ulrik Sverdrup
93701b399b collections: Clean up feature flags doc examples 2015-05-19 03:33:17 +02:00
Ulrik Sverdrup
4a53456628 collections: Avoid unstable code in examples for Vec 2015-05-19 03:33:17 +02:00
Ulrik Sverdrup
4e4374b7de collections: Avoid unstable code in examples for String
Prefer String::from over from_str; String::from_str is unstable while
String::from is stable. Promote the latter by using it in examples.

Simply migrating unstable function to the closest alternative.
2015-05-19 03:33:17 +02:00
bors
4daa62a55f Auto merge of #25230 - rayglover:patch-bitset, r=Gankro
Some modest running-time improvements to `std::collections::BitSet` on bit-sets of varying set-membership densities. This is work originally from [here](https://github.com/rayglover/alt_collections). (Benchmarks copied below)
```
std::collections::BitSet / alt_collections::BitSet

copy_dense         ... 3.08x
copy_sparse        ... 4.22x
count_dense        ... 11.01x
count_sparse       ... 8.11x
from_bytes         ... 1.47x
intersect_dense    ... 6.54x
intersect_sparse   ... 4.37x
union_dense        ... 5.53x
union_sparse       ... 5.60x
```

The exception is `from_bytes`, which I've left unaltered since the optimization is rather obscure.

Compiling with the cpu feature `popcnt` gave a further ~10% improvement on my machine, but this wasn't factored in to the benchmarks above.

Similar improvements could be made to `BitVec`, although that would probably require more substantial changes.

criticism welcome!
2015-05-18 19:54:24 +00:00
Steven Fackler
bd85983d05 Make debug builders take &mut self, add entries method
[breaking-change]
2015-05-17 17:33:29 -07:00
Mário Feroldi
ce8fb6c6c6 Fixed reserve_exact example
The same example for ``reverse`` were in the ``reserve_exact``'s example.
2015-05-16 20:59:20 -03:00
bors
d332aead90 Auto merge of #25434 - dotdash:gep, r=alexcrichton
Using regular pointer arithmetic to iterate collections of zero-sized types
doesn't work, because we'd get the same pointer all the time. Our
current solution is to convert the pointer to an integer, add an offset
and then convert back, but this inhibits certain optimizations.

What we should do instead is to convert the pointer to one that points
to an i8\*, and then use a LLVM GEP instructions without the inbounds
flag to perform the pointer arithmetic. This allows to generate pointers
that point outside allocated objects without causing UB (as long as you
don't dereference them), and it wraps around using two's complement,
i.e. it behaves exactly like the wrapping_* operations we're currently
using, with the added benefit of LLVM being able to better optimize the
resulting IR.
2015-05-16 19:17:30 +00:00