Commit Graph

46067 Commits

Author SHA1 Message Date
bors
ebc3a87fb4 Auto merge of #27500 - michaelwoerister:bring-gdb-pp-tests-back, r=alexcrichton
This test case has been removed a while ago because it allegedly was broken. But I don't think it is (at least I couldn't reproduce any failure on Linux). Let's give it another chance `:)`
2015-08-04 03:51:32 +00:00
Matt Friedman
f53ba18f43 remove unneeded integer suffixes from concurrency chapter 2015-08-03 19:48:14 -05:00
Eli Friedman
c40703f9b3 Fix link_section regression.
Fixes #27467.
2015-08-03 17:33:23 -07:00
Alex Crichton
5cccf3cd25 syntax: Implement #![no_core]
This commit is an implementation of [RFC 1184][rfc] which tweaks the behavior of
the `#![no_std]` attribute and adds a new `#![no_core]` attribute. The
`#![no_std]` attribute now injects `extern crate core` at the top of the crate
as well as the libcore prelude into all modules (in the same manner as the
standard library's prelude). The `#![no_core]` attribute disables both std and
core injection.

[rfc]: https://github.com/rust-lang/rfcs/pull/1184
2015-08-03 17:23:01 -07:00
bors
38517944f0 Auto merge of #26783 - eddyb:methrec, r=huonw
After #26694, the overloaded operator and "impl not known at method lookup time" cases started triggering the lint.
I've also added checks for overloaded autoderef and method calls via paths (i.e. `T::method()`).
All new 8 test cases did not trigger the lint before #26694.
r? @huonw
2015-08-03 23:47:02 +00:00
Eduard Burtescu
585f0e928b rustc_lint: handle more method calls in unconditional_recursion. 2015-08-04 01:17:56 +03:00
Eduard Burtescu
a34b0a4691 rustc: replace def::MethodProvenance with ty::ImplOrTraitItemContainer. 2015-08-04 01:16:53 +03:00
bors
ceded6adb3 Auto merge of #27210 - vadimcn:win64-eh-pers, r=alexcrichton
After this change, the only remaining symbol we are pulling from libgcc on Win64 is `__chkstk_ms` - the stack probing routine.
2015-08-03 22:12:46 +00:00
Steve Klabnik
b5a7827505 delete some old tests
These are for syntaxes that haven't existed for a long time.
2015-08-03 17:25:56 -04:00
Jonathan Hansford
c54df0e454 required -> used; you -> we 2015-08-03 21:37:15 +01:00
bors
d877e65404 Auto merge of #27134 - fhartwig:derive, r=huonw
Fixes #25022

This adapts the deriving mechanism to not repeat bounds for the same type parameter. To give an example: for the following code:

```rust
#[derive(Clone)]
pub struct FlatMap<I, U: IntoIterator, F> {
    iter: I,
    f: F,
    frontiter: Option<U::IntoIter>,
    backiter: Option<U::IntoIter>,
}
```
the latest nightly generates the following impl signature:

```rust
impl <I: ::std::clone::Clone,
      U: ::std::clone::Clone + IntoIterator,
      F: ::std::clone::Clone>
::std::clone::Clone for FlatMap<I, U, F> where
    I: ::std::clone::Clone,
    F: ::std::clone::Clone,
    U::IntoIter: ::std::clone::Clone,
    U::IntoIter: ::std::clone::Clone
```

With these changes, the signature changes to this:
```rust
impl <I, U: IntoIterator, F> ::std::clone::Clone for FlatMap<I, U, F> where
    I: ::std::clone::Clone,
    F: ::std::clone::Clone,
    U::IntoIter: ::std::clone::Clone
```
(Nothing in the body of the impl changes)
Note that the second impl is more permissive, as it doesn't have a `Clone` bound on `U` at all. There was a compile-fail test that failed due to this. I don't understand why we would want the old behaviour (and nobody on IRC could tell me either), so please tell me if there is a good reason that I missed.
2015-08-03 20:29:21 +00:00
Steve Klabnik
d7b93216cd small fix in RELEASES
this grammar isn't correct
2015-08-03 16:19:21 -04:00
Michael Woerister
354cf4b56b debuginfo: Bring back some GDB pretty printing autotests that are not actually broken. 2015-08-03 21:47:53 +02:00
Simonas Kazlauskas
c5d877977a Post merge changes to #27488 2015-08-03 21:52:20 +03:00
Alexis Beingessner
ca902dd8cb rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
bors
1fe32ca12c Auto merge of #27495 - tshepang:patch-6, r=Gankro 2015-08-03 16:51:28 +00:00
Guillaume Gomez
549de0d47a Update error comment 2015-08-03 16:50:18 +02:00
bors
76ba3f0dd9 Auto merge of #27488 - Gankro:uninit-docs, r=bluss
Inspired by https://github.com/rust-lang/rust/issues/27484
2015-08-03 14:16:52 +00:00
Tshepang Lekhonkhobe
8d331ba8c3 reference: follow idiom in this tiny snippet 2015-08-03 16:07:36 +02:00
Alexis Beingessner
5e6973ddc5 vastly expand on the mem::uninitialized docs 2015-08-03 06:55:14 -07:00
Jonathan Hansford
d9b1882248 Updated in response to review 2015-08-03 10:22:03 +01:00
Guillaume Gomez
d6f713be3f Improve E0423 error message 2015-08-03 10:43:13 +02:00
Vadim Chugunov
96d1db2b1a Fix compile errors for ARM. 2015-08-02 21:15:01 -07:00
bors
ea5cc76aac Auto merge of #27475 - AgostonSzepessy:master, r=alexcrichton 2015-08-03 01:03:50 +00:00
bors
2a309b7f55 Auto merge of #27476 - Manishearth:rollup, r=Manishearth
- Successful merges: #27464, #27473
- Failed merges:
2015-08-02 21:04:21 +00:00
Manish Goregaokar
d33cca9b9d Rollup merge of #27473 - brson:stddocs, r=Gankro
This removes some of the more casual language.

The only outright goofiness I couldn't bear to remove is "these modules are the bedrock upon which all of Rust is forged, and they have mighty names like `std::slice` and `std::cmp`", which I believe the greatest sentence I have ever created.
2015-08-03 02:33:53 +05:30
Manish Goregaokar
0860b29b6a Rollup merge of #27464 - killercup:patch-16, r=Gankro
Because Markdown.
2015-08-03 02:33:52 +05:30
Agoston Szepessy
74787b98ba Added error explanation for E0384. 2015-08-02 15:30:06 -04:00
bors
504eaa5929 Auto merge of #27305 - KieranHunt:master, r=steveklabnik
I found that the book had little information for `loop`s and `loop` label so I've added some.
2015-08-02 19:08:21 +00:00
Brian Anderson
ffa21217d2 std: Tighten up crate docs 2015-08-02 11:09:37 -07:00
Ulrik Sverdrup
7ebae85bb8 StrSearcher: Implement the full two way algorithm in reverse for rfind
Fix quadratic behavior in StrSearcher in reverse search with periodic
needles.

This commit adds the missing pieces for the "short period" case in
reverse search. The short case will show up when the needle is literally
periodic, for example "abababab".

Two way uses a "critical factorization" of the needle: x = u v.

Searching matches v first, if mismatch at character k, skip k forward.
Matching u, if mismatch, skip period(x) forward.

To avoid O(mn) behavior after mismatch in u, memorize the already
matched prefix.

The short period case requires that |u| < period(x).

For the reverse search we need to compute a different critical
factorization x = u' v' where |v'| < period(x), because we are searching
for the reversed needle. A short v' also benefits the algorithm in
general.

The reverse critical factorization is computed quickly by using the same
maximal suffix algorithm, but terminating as soon as we have a location
with local period equal to period(x).

This adds extra fields crit_pos_back and memory_back for the reverse
case. The new overhead for TwoWaySearcher::new is low, and additionally
I think the "short period" case is uncommon in many applications of
string search.

The maximal_suffix methods were updated in documentation and the
algorithms updated to not use !0 and wrapping add, variable left is now
1 larger, offset 1 smaller.

Use periodicity when computing byteset: in the periodic case, just
iterate over one period instead of the whole needle.

Example before (rfind) after (twoway_rfind) benchmark shows the removal
of quadratic behavior.

needle: "ab" * 100, haystack: ("bb" + "ab" * 100) * 100

```
test periodic::rfind           ... bench:   1,926,595 ns/iter (+/- 11,390) = 10 MB/s
test periodic::twoway_rfind    ... bench:      51,740 ns/iter (+/- 66) = 386 MB/s
```
2015-08-02 20:09:35 +02:00
Ulrik Sverdrup
c5a1d8c3db StrSearcher: Add tests for rfind(&str)
Add tests for .rfind(&str), using the reverse searcher case for
substring search.
2015-08-02 20:08:35 +02:00
bors
30ba0ee3bc Auto merge of #27469 - SimonSapin:patch-6, r=Gankro 2015-08-02 16:03:46 +00:00
Simon Sapin
7b2dd1fb28 Docs: clarify return value of std::io::Seek::seek 2015-08-02 14:15:00 +02:00
Pascal Hertleif
6e61783dce TRPL: Add Newline Before Headline
Because Markdown.
2015-08-02 12:32:14 +02:00
Vadim Chugunov
e493027984 When a nounwind function has a personality routine, LLVM messes up .seh directives (happens to rust_try in optimized builds). A workaround is to give rust_try the uwtable attribute.
Also, make sure that the dummy "load from null" instruction inserted by init_function() gets cleaned up.
2015-08-01 22:00:46 -07:00
bors
f7b3cd3337 Auto merge of #27205 - Gankro:travis-extreme, r=alexcrichton
Only `make -j4` takes ~50 mins
`make check` bumps it up to ~1hr 30min

Travis seems more than happy to let this happen. 

Time limits appear to be meaningless.

Similar to the previous PR, it's easy to tell how much your PR definitely builds by checking the current logs or just considering how long it's been building for.
2015-08-02 02:42:24 +00:00
bors
83b9deaf24 Auto merge of #27459 - da-kid:master, r=steveklabnik
Sorry :/
2015-08-01 22:23:22 +00:00
Jan Likar
91972ba5a6 Fix "Ignoring variants" in "Patterns" chapter
- Fix #26968 by noting the difference between ".." and "_" more explicitly

  - Change one of the examples to show the match-all behaviour of ".."

  - Merge "Ignoring variants" and "Ignoring bindings" sections into the latter
2015-08-01 22:04:23 +02:00
Kieran Hunt
a989ed8880 Adding an ignore annotation to an infinite loop so that it wont hang the tester. 2015-08-01 22:02:00 +02:00
Daniel Albert
3dfab40bbc Fix off-by-one error 2015-08-01 20:53:19 +02:00
mitaa
dcf7ac6f9a Fix and add tests regarding extern crate paths 2015-08-01 19:41:01 +02:00
Mickaël Salaün
b3df1e6b48 std: Allow to spawn a process as a session leader on UNIX 2015-08-01 19:28:00 +02:00
mitaa
2b4124684e Store and use crate-local paths to extern crates 2015-08-01 16:14:45 +02:00
bors
832e5a02cd Auto merge of #27453 - Manishearth:rollup, r=Manishearth
- Successful merges: #26982, #27305, #27419, #27423, #27426
- Failed merges:
2015-08-01 08:36:59 +00:00
Manish Goregaokar
ead9a6dacf Rollup merge of #27426 - FuGangqiang:master, r=alexcrichton 2015-08-01 14:05:52 +05:30
Manish Goregaokar
548d552c7e Rollup merge of #27423 - oli-obk:patch-1, r=Gankro 2015-08-01 14:05:52 +05:30
Manish Goregaokar
ae9abdf705 Rollup merge of #27419 - cpjreynolds:master, r=Gankro
Corrects formatting of bullet-ed sentences and changes 'pervasive use raw pointers' to 'pervasive use of raw pointers'.
2015-08-01 14:05:52 +05:30
Manish Goregaokar
21dd5e62a2 Rollup merge of #26982 - nham:orphan-explanations, r=Gankro
part of #24407 

I'm not sure whether I should be trying to explain the general rule in the E0210 explanation or just point people to the RFC. However, if we go with the latter option I think that the RFC will need to be revised slightly, since it is not quite as gentle as I would like.

Also, the link to RFC 1023 is not the correct one (it should be https://github.com/rust-lang/rfcs/blob/master/text/1023-rebalancing-coherence.md), but the correct one is too long. I'm aware of @michaelsproul's PR https://github.com/rust-lang/rust/pull/26290 from awhile back, but it doesn't seem to be working. Has there not been a new snapshot yet?
2015-08-01 12:31:23 +05:30
bors
f50518e05a Auto merge of #27447 - eefriedman:parser-cleanup, r=alexcrichton 2015-08-01 04:49:02 +00:00