-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 9 pull requests #47984
Rollup of 9 pull requests #47984
Commits on Jan 30, 2018
-
Includes rust-lang/book#1088 and rust-lang/book@62210e3
Configuration menu - View commit details
-
Copy full SHA for 112feb9 - Browse repository at this point
Copy the full SHA 112feb9View commit details -
Configuration menu - View commit details
-
Copy full SHA for c83566e - Browse repository at this point
Copy the full SHA c83566eView commit details -
Configuration menu - View commit details
-
Copy full SHA for b9f7564 - Browse repository at this point
Copy the full SHA b9f7564View commit details -
Configuration menu - View commit details
-
Copy full SHA for a99b5db - Browse repository at this point
Copy the full SHA a99b5dbView commit details
Commits on Jan 31, 2018
-
wherein the parens lint keeps its own counsel re args in nested macros
In rust-lang#46980 ("in which the unused-parens lint..." (14982db)), the unused-parens lint was made to check function and method arguments, which it previously did not (seemingly due to oversight rather than willful design). However, in rust-lang#47775 and discussion thereon, user–developers of Geal/nom and graphql-rust/juniper reported that the lint was seemingly erroneously triggering on certain complex macros in those projects. While this doesn't seem like a bug in the lint in the particular strict sense that the expanded code would, in fact, contain unncecessary parentheses, it also doesn't seem like the sort of thing macro authors should have to think about: the spirit of the unused-parens lint is to prevent needless clutter in code, not to give macro authors extra heartache in the handling of token trees. We propose the expediency of declining to lint unused parentheses in function or method args inside of nested expansions: we believe that this should eliminate the petty, troublesome lint warnings reported in the issue, without forgoing the benefits of the lint in simpler macros. It seemed like too much duplicated code for the `Call` and `MethodCall` match arms to duplicate the nested-macro check in addition to each having their own `for` loop, so this occasioned a slight refactor so that the function and method cases could share code—hopefully the overall intent is at least no less clear to the gentle reader. This is concerning rust-lang#47775.
Configuration menu - View commit details
-
Copy full SHA for 5985b0b - Browse repository at this point
Copy the full SHA 5985b0bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6284b20 - Browse repository at this point
Copy the full SHA 6284b20View commit details -
Configuration menu - View commit details
-
Copy full SHA for e2de8de - Browse repository at this point
Copy the full SHA e2de8deView commit details -
Use a range to identify SIGSEGV in stack guards
Previously, the `guard::init()` and `guard::current()` functions were returning a `usize` address representing the top of the stack guard, respectively for the main thread and for spawned threads. The `SIGSEGV` handler on `unix` targets checked if a fault was within one page below that address, if so reporting it as a stack overflow. Now `unix` targets report a `Range<usize>` representing the guard memory, so it can cover arbitrary guard sizes. Non-`unix` targets which always return `None` for guards now do so with `Option<!>`, so they don't pay any overhead. For `linux-gnu` in particular, the previous guard upper-bound was `stackaddr + guardsize`, as the protected memory was *inside* the stack. This was a glibc bug, and starting from 2.27 they are moving the guard *past* the end of the stack. However, there's no simple way for us to know where the guard page actually lies, so now we declare it as the whole range of `stackaddr ± guardsize`, and any fault therein will be called a stack overflow. This fixes rust-lang#47863.
Configuration menu - View commit details
-
Copy full SHA for 55b54a9 - Browse repository at this point
Copy the full SHA 55b54a9View commit details
Commits on Feb 2, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 1fe0a8b - Browse repository at this point
Copy the full SHA 1fe0a8bView commit details -
Configuration menu - View commit details
-
Copy full SHA for ba78382 - Browse repository at this point
Copy the full SHA ba78382View commit details -
Configuration menu - View commit details
-
Copy full SHA for 45e63ae - Browse repository at this point
Copy the full SHA 45e63aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 91e3678 - Browse repository at this point
Copy the full SHA 91e3678View commit details -
Configuration menu - View commit details
-
Copy full SHA for f56ebc5 - Browse repository at this point
Copy the full SHA f56ebc5View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa84cc4 - Browse repository at this point
Copy the full SHA fa84cc4View commit details -
Configuration menu - View commit details
-
Copy full SHA for ee8b4ca - Browse repository at this point
Copy the full SHA ee8b4caView commit details
Commits on Feb 3, 2018
-
Configuration menu - View commit details
-
Copy full SHA for cc68afb - Browse repository at this point
Copy the full SHA cc68afbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6b35d81 - Browse repository at this point
Copy the full SHA 6b35d81View commit details -
Configuration menu - View commit details
-
Copy full SHA for abb162c - Browse repository at this point
Copy the full SHA abb162cView commit details -
Configuration menu - View commit details
-
Copy full SHA for d597da3 - Browse repository at this point
Copy the full SHA d597da3View commit details -
Rollup merge of rust-lang#47753 - steveklabnik:update-book, r=alexcri…
…chton Update book This PR does two things: 1. update the book to include rust-lang/book#1088 2. update to mdbook 0.1 Both of these things are big changes, so I want to land them now, well before the next branch, so we can kick the tires. ------------------------------ Locally, I'm seeing some weirdness around the reference and this: ![image](https://user-images.githubusercontent.com/27786/35411917-8dcbb31a-01e8-11e8-8c30-0bd280d93b9d.png) Putting this PR up so others can try and build and see if it reproduces for them.
Configuration menu - View commit details
-
Copy full SHA for feeeedc - Browse repository at this point
Copy the full SHA feeeedcView commit details -
Rollup merge of rust-lang#47862 - GuillaumeGomez:const-evaluation-ice…
…, r=eddyb Fix const evaluation ICE in rustdoc Fixes rust-lang#47860. r? @eddyb
Configuration menu - View commit details
-
Copy full SHA for 867f0b8 - Browse repository at this point
Copy the full SHA 867f0b8View commit details -
Rollup merge of rust-lang#47877 - spastorino:lifetime-bounds-in-copy,…
… r=nikomatsakis Do not ignore lifetime bounds in Copy impls cc rust-lang#29149 r? @nikomatsakis
Configuration menu - View commit details
-
Copy full SHA for c2d590f - Browse repository at this point
Copy the full SHA c2d590fView commit details -
Rollup merge of rust-lang#47896 - zackmdavis:and_the_case_of_the_nece…
…ssary_unnecessary_parens, r=nikomatsakis decline to lint technically-unnecessary parens in function or method arguments inside of nested macros In rust-lang#46980 ("in which the unused-parens lint..." (14982db)), the unused-parens lint was made to check function and method arguments, which it previously did not (seemingly due to oversight rather than willful design). However, in rust-lang#47775 and discussion thereon, user–developers of Geal/nom and graphql-rust/juniper reported that the lint was seemingly erroneously triggering on certain complex macros in those projects. While this doesn't seem like a bug in the lint in the particular strict sense that the expanded code would, in fact, contain unncecessary parentheses, it also doesn't seem like the sort of thing macro authors should have to think about: the spirit of the unused-parens lint is to prevent needless clutter in code, not to give macro authors extra heartache in the handling of token trees. We propose the expediency of declining to lint unused parentheses in function or method args inside of nested expansions: we believe that this should eliminate the petty, troublesome lint warnings reported in the issue, without forgoing the benefits of the lint in simpler macros. It seemed like too much duplicated code for the `Call` and `MethodCall` match arms to duplicate the nested-macro check in addition to each having their own `for` loop, so this occasioned a slight refactor so that the function and method cases could share code—hopefully the overall intent is at least no less clear to the gentle reader. This is concerning rust-lang#47775.
Configuration menu - View commit details
-
Copy full SHA for 1b92783 - Browse repository at this point
Copy the full SHA 1b92783View commit details -
Rollup merge of rust-lang#47912 - cuviper:glibc-stack-guard, r=alexcr…
…ichton Use a range to identify SIGSEGV in stack guards Previously, the `guard::init()` and `guard::current()` functions were returning a `usize` address representing the top of the stack guard, respectively for the main thread and for spawned threads. The `SIGSEGV` handler on `unix` targets checked if a fault was within one page below that address, if so reporting it as a stack overflow. Now `unix` targets report a `Range<usize>` representing the guard memory, so it can cover arbitrary guard sizes. Non-`unix` targets which always return `None` for guards now do so with `Option<!>`, so they don't pay any overhead. For `linux-gnu` in particular, the previous guard upper-bound was `stackaddr + guardsize`, as the protected memory was *inside* the stack. This was a glibc bug, and starting from 2.27 they are moving the guard *past* the end of the stack. However, there's no simple way for us to know where the guard page actually lies, so now we declare it as the whole range of `stackaddr ± guardsize`, and any fault therein will be called a stack overflow. This fixes rust-lang#47863.
Configuration menu - View commit details
-
Copy full SHA for eb3b870 - Browse repository at this point
Copy the full SHA eb3b870View commit details -
Rollup merge of rust-lang#47944 - oberien:unboundediterator-trustedle…
…n, r=bluss Implement TrustedLen for Take<Repeat> and Take<RangeFrom> This will allow optimization of simple `repeat(x).take(n).collect()` iterators, which are currently not vectorized and have capacity checks. This will only support a few aggregates on `Repeat` and `RangeFrom`, which might be enough for simple cases, but doesn't optimize more complex ones. Namely, Cycle, StepBy, Filter, FilterMap, Peekable, SkipWhile, Skip, FlatMap, Fuse and Inspect are not marked `TrustedLen` when the inner iterator is infinite. Previous discussion can be found in rust-lang#47082 r? @alexcrichton
Configuration menu - View commit details
-
Copy full SHA for 4655895 - Browse repository at this point
Copy the full SHA 4655895View commit details -
Rollup merge of rust-lang#47947 - goodmanjonathan:stabilize_match_beg…
…inning_vert, r=petrochenkov Stabilize feature(match_beginning_vert) With this feature stabilized, match expressions can optionally have a `|` at the beginning of each arm. Reference PR: rust-lang/reference#231 Closes rust-lang#44101
Configuration menu - View commit details
-
Copy full SHA for ee3e9ac - Browse repository at this point
Copy the full SHA ee3e9acView commit details -
Rollup merge of rust-lang#47978 - eddyb:iu, r=kennytm
ui tests: diff from old (expected) to new (actual) instead of backwards. Previously `actual` was "old" and `expected` was "new" which resulted in `+` before `-`. AFAIK all diff tools put `-` before `+`, which made the previous behavior *very confusing*. r? @nikomatsakis
Configuration menu - View commit details
-
Copy full SHA for b1bab59 - Browse repository at this point
Copy the full SHA b1bab59View commit details -
Rollup merge of rust-lang#47958 - frewsxcv:frewsxcv-try-clone, r=aidanhs
Clarify shared file handler behavior of File::try_clone. Fixes rust-lang#46578.
Configuration menu - View commit details
-
Copy full SHA for ec010ae - Browse repository at this point
Copy the full SHA ec010aeView commit details