Commit Graph

5557 Commits

Author SHA1 Message Date
Manish Goregaokar
dcc64d113c Rollup merge of #26974 - tshepang:trailing-comma, r=Gankro 2015-07-12 18:35:55 +05:30
William Throwe
218eb1277d Correct and clarify integer division rounding docs 2015-07-11 20:30:50 -04:00
bors
0c052199b9 Auto merge of #26913 - sfackler:tuple-debug, r=alexcrichton
This does change the Debug output for 1-tuples to `(foo)` instead of `(foo,)` but I don't think it's that big  of a deal.

r? @alexcrichton
2015-07-11 23:41:07 +00:00
Simonas Kazlauskas
7a90865db5 Implement RFC 1058 2015-07-12 00:47:56 +03:00
bors
d18eb74009 Auto merge of #26878 - Esption:master, r=pnkfelix
I noticed in docs, specifically http://doc.rust-lang.org/std/primitive.u8.html#method.is_power_of_two, that it was like this, and it was apparently in multiple places too.

Didn't change any occurrences through the cross-depo things. There's a lot in /src/llvm/ for instance, but I'm not confident on how to go about sending fixes for those, so this is just what's in the base rust depo.

r? @steveklabnik
2015-07-11 19:18:02 +00:00
Steven Fackler
b0ab164b80 Add trailing , for 1-tuples 2015-07-10 11:03:52 -08:00
bors
5b15923026 Auto merge of #26909 - rick68:patch-10, r=dotdash
fix typos
2015-07-09 12:57:17 +00:00
bors
9c3ba76389 Auto merge of #26885 - mvdnes:wrapping_div, r=alexcrichton
Resolves #26867
2015-07-09 07:13:14 +00:00
Steven Fackler
0bcbd16931 Change tuple Debug impls to use builders 2015-07-08 23:38:42 -07:00
bors
66b9277b13 Auto merge of #26884 - dotdash:fast, r=alexcrichton
Exploiting the fact that getting the length of the slices is known, we
can use a counted loop instead of iterators, which means that we only
need a single counter, instead of having to increment and check one
pointer for each iterator.

Benchmarks comparing vectors with 100,000 elements:

Before:

```
running 8 tests
test eq1_u8  ... bench:      66,757 ns/iter (+/- 113)
test eq2_u16 ... bench:     111,267 ns/iter (+/- 149)
test eq3_u32 ... bench:     126,282 ns/iter (+/- 111)
test eq4_u64 ... bench:     126,418 ns/iter (+/- 155)
test ne1_u8  ... bench:      88,990 ns/iter (+/- 161)
test ne2_u16 ... bench:      89,126 ns/iter (+/- 265)
test ne3_u32 ... bench:      96,901 ns/iter (+/- 92)
test ne4_u64 ... bench:      96,750 ns/iter (+/- 137)
```

After:

```
running 8 tests
test eq1_u8  ... bench:      46,413 ns/iter (+/- 521)
test eq2_u16 ... bench:      46,500 ns/iter (+/- 74)
test eq3_u32 ... bench:      50,059 ns/iter (+/- 92)
test eq4_u64 ... bench:      54,001 ns/iter (+/- 92)
test ne1_u8  ... bench:      47,595 ns/iter (+/- 53)
test ne2_u16 ... bench:      47,521 ns/iter (+/- 59)
test ne3_u32 ... bench:      44,889 ns/iter (+/- 74)
test ne4_u64 ... bench:      47,775 ns/iter (+/- 68)
```
2015-07-09 05:15:48 +00:00
Wei-Ming Yang
a15c3c5ef5 Update intrinsics.rs
fix typos
2015-07-09 12:09:54 +08:00
Esption
dad8cd19d3 'iff' for docs to 'if and only if' 2015-07-08 21:17:13 -05:00
Steve Klabnik
bd1033d738 Rollup merge of #26891 - steveklabnik:gh26552, r=huonw
Added a proper Unsafety header, as well as mentioning that
the pointer shouldn't be null.

Fixes #26552
2015-07-08 10:34:27 -04:00
Steve Klabnik
80f269259c Fix up unsafe section of slice::from_raw_parts
Added a proper Unsafety header, as well as mentioning that
the pointer shouldn't be null.

Fixes #26552
2015-07-08 13:04:41 -04:00
Steve Klabnik
6c52903891 Make mention of alternate flags in std::fmt traits
https://www.reddit.com/r/rust/comments/3ceaui/psa_produces_prettyprinted_debug_output/
2015-07-08 12:40:54 -04:00
Mathijs van de Nes
a89b3ea3fc Use wrapping_div call and correct the feature name 2015-07-08 15:44:50 +02:00
Mathijs van de Nes
e333a57a19 Implement Div for Wrapping<T>
Resolves #26867
2015-07-08 15:02:18 +02:00
Björn Steinbrink
9f4d5b4be1 Improve PartialEq for slices
Exploiting the fact that getting the length of the slices is known, we
can use a counted loop instead of iterators, which means that we only
need a single counter, instead of having to increment and check one
pointer for each iterator.

Benchmarks comparing vectors with 100,000 elements:

Before:

```
running 8 tests
test eq1_u8  ... bench:      66,757 ns/iter (+/- 113)
test eq2_u16 ... bench:     111,267 ns/iter (+/- 149)
test eq3_u32 ... bench:     126,282 ns/iter (+/- 111)
test eq4_u64 ... bench:     126,418 ns/iter (+/- 155)
test ne1_u8  ... bench:      88,990 ns/iter (+/- 161)
test ne2_u16 ... bench:      89,126 ns/iter (+/- 265)
test ne3_u32 ... bench:      96,901 ns/iter (+/- 92)
test ne4_u64 ... bench:      96,750 ns/iter (+/- 137)
```

After:

```
running 8 tests
test eq1_u8  ... bench:      46,413 ns/iter (+/- 521)
test eq2_u16 ... bench:      46,500 ns/iter (+/- 74)
test eq3_u32 ... bench:      50,059 ns/iter (+/- 92)
test eq4_u64 ... bench:      54,001 ns/iter (+/- 92)
test ne1_u8  ... bench:      47,595 ns/iter (+/- 53)
test ne2_u16 ... bench:      47,521 ns/iter (+/- 59)
test ne3_u32 ... bench:      44,889 ns/iter (+/- 74)
test ne4_u64 ... bench:      47,775 ns/iter (+/- 68)
```
2015-07-08 14:49:55 +02:00
Esption
492f33a267 Fixed some occurrences of 'if' being spelled 'iff' 2015-07-08 05:29:03 -05:00
Steve Klabnik
3a6cd649b4 Significantly improve formatter trait docs
Each formatting trait now has an example of implementation, as well as a
fuller description of what it's supposed to output.

It also contains a link to the module-level documentation which

Fixes #25765
2015-07-06 17:26:59 -04:00
bors
5d3b0f1f6b Auto merge of #26473 - Eljay:missing_docs, r=alexcrichton
Fixes #24249

I've tagged all items that were missing docs to allow them to compile for now, the ones in core/num should probably be documented at least.

This is also a breaking change for any crates using `#[deny(missing_docs)]` that have undocumented constants, not sure there is any way to avoid this without making it a separate lint?
2015-07-05 20:37:26 +00:00
Tshepang Lekhonkhobe
65591595a0 option: obey idiom of leaving behind a trailing comma in match blocks 2015-07-05 20:27:13 +02:00
Ulrik Sverdrup
e68934277f Add missing #[inline] to min_value/max_value on integers
Spotted a compiled function call to num::usize::min_value, I'd prefer
the 0 to be inlined.
2015-07-04 22:54:59 +02:00
Ulrik Sverdrup
0da69969d1 core: Use memcmp in is_prefix_of / is_suffix_of
The basic str equality in core::str calls memcmp, re-use the same
function in StrSearcher's is_prefix_of, is_suffix_of.
2015-07-04 15:10:20 +02:00
bors
f027bdc1c8 Auto merge of #26378 - arielb1:unused-mut, r=pnkfelix
This makes it somewhat more aggressive, so this is kind-of a [breaking-change] for these compiling with `#[deny(unused_mut)]`.

r? @pnkfelix
2015-07-03 21:31:46 +00:00
Wei-Ming Yang
409fc2f605 Update atomic.rs
Remove the tagged attribute `stable` from all private functions
2015-07-04 03:24:25 +08:00
bors
d1e31f396c Auto merge of #26725 - tshepang:patch-2, r=bluss 2015-07-02 21:56:28 +00:00
Tshepang Lekhonkhobe
b643a0b679 doc: add missing space 2015-07-01 23:08:50 +02:00
Tshepang Lekhonkhobe
5976355b67 doc: there is just one trait in here
Also, the info is repeated in the following paragraph
2015-07-01 23:05:06 +02:00
bors
1fc0f68548 Auto merge of #26698 - alexcrichton:char-fmt, r=huonw
This recently regressed in #24689, and this updates the `Display` implementation
to take formatting flags into account.

Closes #26625
2015-07-01 03:35:46 +00:00
Alex Crichton
98566ea951 std: Fix formatting flags for chars
This recently regressed in #24689, and this updates the `Display` implementation
to take formatting flags into account.

Closes #26625
2015-06-30 19:26:03 -07:00
Ariel Ben-Yehuda
a18d9842ed Make the unused_mut lint smarter with respect to locals.
Fixes #26332
2015-07-01 00:12:12 +03:00
Steve Klabnik
08f9b98e57 Rollup merge of #26692 - steveklabnik:gh26620, r=alexcrichton
Fixes #26620
2015-06-30 15:37:45 -04:00
Steve Klabnik
8b81f76593 Make note of Ord's derive ordering
Fixes #26620
2015-06-30 19:37:34 -04:00
Steve Klabnik
26ff4714dd Rollup merge of #26678 - bluss:doc-fmt, r=steveklabnik
fmt: Update docs and mention :#? pretty-printing

Expose `:#?` well in the docs for fmt and Debug itself. Also update some out of date information and fix formatting in `std::fmt` docs.
2015-06-30 15:37:45 -04:00
bors
7fc0675f35 Auto merge of #26327 - bluss:two-way, r=aturon
Update substring search to use the Two Way algorithm

To improve our substring search performance, revive the two way searcher
and adapt it to the Pattern API.

Fixes #25483, a performance bug: that particular case now completes faster
in optimized rust than in ruby (but they share the same order of magnitude).

Many thanks to @gereeter who helped me understand the reverse case
better and wrote the comment explaining `next_back` in the code.

I had quickcheck to fuzz test forward and reverse searching thoroughly.

The two way searcher implements both forward and reverse search,
but not double ended search. The forward and reverse parts of the two
way searcher are completely independent.

The two way searcher algorithm has very small, constant space overhead,
requiring no dynamic allocation. Our implementation is relatively fast,
especially due to the `byteset` addition to the algorithm, which speeds
up many no-match cases.

A bad case for the two way algorithm is:

```
let haystack = (0..10_000).map(|_| "dac").collect::<String>();
let needle = (0..100).map(|_| "bac").collect::<String>());
```

For this particular case, two way is not much faster than the naive
implementation it replaces.
2015-06-30 18:09:51 +00:00
bors
0b703787ab Auto merge of #26664 - steveklabnik:gh26571, r=alexcrichton
This was pretty misleading, so let's improve.

Fixes #26571
2015-06-30 12:54:16 +00:00
Ulrik Sverdrup
516941b74f fmt: Update docs and mention :#? pretty-printing 2015-06-30 14:37:06 +02:00
Steve Klabnik
f758baa524 Improve doc for std::mem::drop
This was pretty misleading, so let's improve.

Fixes #26571
2015-06-29 17:03:14 -04:00
Simonas Kazlauskas
08b21661c3 Refine Atomic*::compare_and_swap documentation
Namely:

* Change parameter `old` to read `current` so it is clearer what the argument refers to (originally
    suggested `expected`, but shot down by Steve);
* Add some formatting and fix some mistakes like referring to the method as `swap` rather than
  `compare_and_swap`.
2015-06-29 23:18:08 +03:00
Alex Crichton
8790958237 std: Avoid missing fns on i686-pc-windows-msvc
It turns out that the 32-bit toolchain for MSVC has many of these functions as
`static inline` functions in header files so there's not actually a symbol for
Rust to call. All of the implementations just cast floats to their 64-bit
variants and then cast back to 32-bit at the end, so the standard library now
takes this strategy.
2015-06-27 13:02:18 -07:00
bors
b36ae01946 Auto merge of #26609 - huonw:align, r=alexcrichton
These will first be deprecated in 1.2.0, not 1.1.0.
2015-06-27 13:02:17 +00:00
Huon Wilson
0f6d4aa786 core: fix deprecation since version of align_of_min.
These will first be deprecated in 1.2.0, not 1.1.0.
2015-06-26 15:00:31 -07:00
Ms2ger
532235be27 Use Box::into_raw rather than the deprecated boxed::into_raw in tests and documentation. 2015-06-26 22:29:40 +02:00
Huon Wilson
225b116829 Make align_of behave like min_align_of.
This removes a footgun, since it is a reasonable assumption to make that
pointers to `T` will be aligned to `align_of::<T>()`. This also matches
the behaviour of C/C++. `min_align_of` is now deprecated.

Closes #21611.
2015-06-24 17:00:43 -07:00
Ulrik Sverdrup
274bb24efd StrSearcher: Explicitly separate the long and short cases
This is needed to not drop performance, after the trait-based changes.
Force separate versions of the next method to be generated for the short
and long period cases.
2015-06-24 16:22:09 +02:00
Ulrik Sverdrup
71006bd654 StrSearcher: Use trait to specialize two way algorithm by case
Use a trait to be able to implement both the fast search that skips to
each match, and the slower search that emits `Reject` intervals
regularly. The latter is important for uses of `next_reject`.
2015-06-21 19:58:56 +02:00
Ulrik Sverdrup
a6dd2031a3 StrSearcher: Specialize is_prefix_of/is_suffix_of for &str 2015-06-21 19:58:56 +02:00
Ulrik Sverdrup
b890b7bbc7 StrSearcher: Update substring search to use the Two Way algorithm
To improve our substring search performance, revive the two way searcher
and adapt it to the Pattern API.

Fixes #25483, a performance bug: that particular case now completes faster
in optimized rust than in ruby (but they share the same order of magnitude).

Much thanks to @gereeter who helped me understand the reverse case
better and wrote the comment explaining `next_back` in the code.

I had quickcheck to fuzz test forward and reverse searching thoroughly.

The two way searcher implements both forward and reverse search,
but not double ended search. The forward and reverse parts of the two
way searcher are completely independent.

The two way searcher algorithm has very small, constant space overhead,
requiring no dynamic allocation. Our implementation is relatively fast,
especially due to the `byteset` addition to the algorithm, which speeds
up many no-match cases.

A bad case for the two way algorithm is:

```
let haystack = (0..10_000).map(|_| "dac").collect::<String>();
let needle = (0..100).map(|_| "bac").collect::<String>());
```

For this particular case, two way is not much faster than the naive
implementation it replaces.
2015-06-21 19:58:50 +02:00
Eljay
c0d485ce9a Temp fix for all constants that are missing docs. 2015-06-21 16:04:37 +01:00