Commit Graph

65098 Commits

Author SHA1 Message Date
Felix S. Klock II 1d3bc4e90f Changed `Layout::from_size_align` to return `Option`.
Added `unwrap` calls in all the places where I can infer that the
conditions are met to avoid panic (or when the calling method itself
says it will panic in such a case).
2017-06-15 23:48:30 +02:00
Felix S. Klock II 066fafe206 Add API for `Alloc` trait.
Includes `alloc_zeroed` method that `RawVec` has come to depend on.

Exposed private `Layout::from_size_align` ctor to be `pub`, and added
explicit conditions for when it will panic (namely, when `align` is
not power-of-two, or if rounding up `size` to a multiple of `align`
overflows). Normalized all `Layout` construction to go through
`Layout::from_size_align`.

Addressed review feedback regarding `struct Layout` and zero-sized
layouts.

Restrict specification for `dealloc`, adding additional constraint
that the given alignment has to match that used to allocate the block.
(This is a maximally conservative constraint on the alignment. An open
question to resolve (before stabilization) is whether we can return to
a looser constraint such as the one previously specified.)

Split `fn realloc_in_place` into separate `fn grow_in_place` and `fn
shrink_in_place` methods, which have default impls that check against
usable_size for reuse. Make `realloc` default impl try `grow_in_place`
or `shrink_in_place` as appropriate before fallback on
alloc+copy+dealloc.

Drive-by: When reviewing calls to `padding_needed_for`, discovered
what I think was an over-conservative choice for its argument
alignment.  Namely, in `fn extend`, we automatically realign the whole
resulting layout to satisfy both old (self) and new alignments. When
the old alignment exceeds the new, this means we would insert
unnecessary padding. So I changed the code to pass in `next.align`
instead of `new_align` to `padding_needed_for`.

Replaced ref to `realloc_in_place` with `grow_in_place`/`shrink_in_place`.

Revised docs replacing my idiosyncratic style of `fn foo` with just
`foo` when referring to the function or method `foo`.

(Alpha-renamed `Allocator` to `Alloc`.)

Post-rebased, added `Debug` derive for `allocator::Excess` to satisfy
`missing_debug_implementations`.
2017-06-15 23:48:12 +02:00
Stepan Koltsov 0c26b5998d Fix condvar.wait(distant future) return immediately on OSX
Fixes issue #37440: `pthread_cond_timedwait` on macOS Sierra seems
to overflow `ts_sec` parameter and returns immediately. To work
around this problem patch rounds timeout down to approximately 1000
years.

Patch also fixes overflow when converting `u64` to `time_t`.
2017-06-15 21:20:02 +01:00
Stepan Koltsov ac96fd7787 Avoid allocations in Debug for os_str
Fixes #38879
2017-06-15 20:42:37 +01:00
Stepan Koltsov ea149b8571 Utf8Lossy type with chunks iterator and impl Display and Debug 2017-06-15 20:42:35 +01:00
Esteban Küber 8074a88787 Position span label correctly when it isn't last 2017-06-15 11:21:19 -07:00
Simonas Kazlauskas 406eddf5e1 Add a no-system-llvm compilecheck header 2017-06-15 19:11:55 +03:00
Esteban Küber ad260ffc88 Review comments
- generate error instead of warning
- remove `RewindPoint` and just keep a copy of `Parser` to rewind state.
- `dont_parse_generics: bool` -> `parse_generics: bool`
- remove `eat_lt`
- move error handling code to separate method
2017-06-15 08:45:24 -07:00
bors 258ae6dd9b Auto merge of #42648 - murarth:merge-alloc-collections, r=alexcrichton
Merge crate `collections` into `alloc`

This is a necessary step in order to merge #42565
2017-06-15 12:37:54 +00:00
Guillaume Gomez f720e972cf Add E0618 2017-06-15 14:00:58 +02:00
Ximin Luo 13b1a80505 Only run check-linkchecker when actually building docs
Otherwise the build fails, when running tests but not building docs, e.g.:
https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-3&stamp=1497403375&raw=0
2017-06-15 13:25:15 +02:00
Ximin Luo 62c245281c Ensure that disable-doc builds don't depend on doc targets 2017-06-15 13:24:08 +02:00
bors 16c27bf713 Auto merge of #42623 - VBChunguk:fix-older-urls, r=steveklabnik
Update older URLs pointing to the first edition of the Book

Fixes #42589.
2017-06-15 09:52:11 +00:00
Guillaume Gomez b6e9ed1e40 Use new macro instead 2017-06-15 10:33:46 +02:00
bors 119066ff2b Auto merge of #42625 - michaelwoerister:dep-node-debug, r=nikomatsakis
incr.comp.: Make DepNode's std::fmt::Debug implementation useful again.

With #42537 a regular `DepNode` only contains an opaque hash as its identifier. In most cases, this hash is actually a `DefPathHash` and we can reconstruct the `DefId` it came from via a table lookup --- and then use that to print something intelligible for debug outputs. For cases where we cannot reconstruct information from the DepNode's hash, this PR will cache a string representation of the `DepNode` in a side-table. This string is later used for debug outputs.

r? @nikomatsakis
2017-06-15 06:52:42 +00:00
Taylor Cramer c98ca953b0 Switch CrateNum queries to DefId 2017-06-14 22:49:07 -07:00
Esteban Küber 028b5f94e3 Report error for assignment in `if` condition
For code like `if x = 3 {}`, output:

```
error[E0308]: mismatched types
  --> $DIR/issue-17283.rs:25:8
   |
25 |     if x = x {
   |        ^^^^^
   |        |
   |        help: did you mean to compare equality? `x == x`
   |        expected bool, found ()
   |
   = note: expected type `bool`
              found type `()`
```
2017-06-14 22:09:32 -07:00
bors 0189cec5d4 Auto merge of #42665 - aidanhs:aphs-simplify-init-repos, r=Mark-Simulacrum
Use --depth to speed up pristine submodule cloning

In addition, remove all the unused cache stuff

r? @Mark-Simulacrum
2017-06-15 02:17:07 +00:00
Wonwoo Choi 65288f4026 Remove struct_field_attributes from the Unstable Book 2017-06-15 11:16:54 +09:00
Aidan Hobson Sayers d0c1e6480c Use --depth to speed up pristine submodule cloning
In addition, remove all the unused cache stuff
2017-06-15 00:31:39 +01:00
est31 130b67c296 Remove some more stubs 2017-06-15 01:02:52 +02:00
Mark Simulacrum 2619636a1a Correct note as to location of section. 2017-06-14 14:38:51 -06:00
Ariel Ben-Yehuda 7b9519a5d4 suppress trait errors that are implied by other errors
Instead of suppressing only trait errors that are "exact duplicates",
display only the "most high-level" error when there are multiple trait
errors with the same span that imply each-other.

e.g. when there are both `[closure]: Fn` and `[closure]: FnOnce`, omit
displaying the `[closure]: FnOnce` bound.
2017-06-14 23:33:47 +03:00
steveklabnik 15ace49d2e update book with redirect fixes
Fixes #42632
2017-06-14 15:48:43 -04:00
Simonas Kazlauskas ba6cf1d80a Re-implement float min/max in rust
See #42423
2017-06-14 21:58:17 +03:00
Wonwoo Choi 79f173ad21 Remove struct_field_attributes feature gate 2017-06-15 02:24:05 +09:00
Wonwoo Choi 3cb7825986 Update older URLs pointing to the first edition of the Book
`compiler-plugins.html` is moved into the Unstable Book.
Explanation is slightly modified to match the change.
2017-06-15 00:04:00 +09:00
bors 554c685b0b Auto merge of #42523 - clarcharr:refactor_ops, r=brson
Refactor ops.rs

This refactors ops.rs into several different modules internally, as the file has gotten quite big. None of these modules are actually exported, but this should make maintaining it much easier. I've avoided the ambition of exporting the modules because they can more easily be rearranged after this commit goes through, even though it'd be cool to potentially export the modules in the future.

I've separated the creation of each file into a separate commit so that this is easier to read.

Redone version of #42269 with the movement of `RangeArgument` moved.
2017-06-14 11:17:31 +00:00
bors dfa7e21e4e Auto merge of #42433 - marco-c:profiling, r=alexcrichton
Build instruction profiler runtime as part of compiler-rt

r? @alexcrichton

This is #38608 with some fixes.

Still missing:
- [x] testing with profiler enabled on some builders (on which ones? Should I add the option to some of the already existing configurations, or create a new configuration?);
- [x] enabling distribution (on which builders?);
- [x] documentation.
2017-06-14 08:46:14 +00:00
Taylor Cramer 48356987c1 On-demandify extern_crate 2017-06-14 00:13:35 -07:00
Taylor Cramer b0f05d4bc5 On-demandify is_allocator and is_panic_runtime 2017-06-14 00:13:35 -07:00
Taylor Cramer 328c6c81bf on-demand dylib dependency formats 2017-06-14 00:13:33 -07:00
Taylor Cramer 532a08b947 Add CrateNum-taking ability to the provide macro 2017-06-14 00:12:59 -07:00
Murarth eadda7665e Merge crate `collections` into `alloc` 2017-06-13 23:37:34 -07:00
Taylor Cramer 9f710530a7 On-demand is_const_fn 2017-06-13 23:10:59 -07:00
est31 e69f9088a3 Don't require that stubs exist for features in the unstable book
Also, remove stubs.
2017-06-14 04:59:28 +02:00
est31 c2d59067fb Autogenerate stubs and the summary of the unstable book 2017-06-14 04:59:27 +02:00
est31 d810898751 Librarify tidy
Convert tidy into a library so that the data it creates
can be used by external tools.
2017-06-14 04:59:07 +02:00
Havvy edd3cd84fe Remove sometimes in std::io::Read doc
We use it immediately in the next sentence, and the word is filler.
2017-06-13 18:49:34 -07:00
bors e40ef964fe Auto merge of #42644 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #42408, #42428, #42496, #42597, #42636, #42638
- Failed merges: #42612
2017-06-14 00:40:10 +00:00
Nick Cameron 9a471606c0 Remove CSV format of save-analysis data 2017-06-14 10:45:59 +12:00
Marco A L Barbosa 9da77b3ec5 Disable wasm32 image 2017-06-13 19:14:15 -03:00
Corey Farwell 9242f22666 Rollup merge of #42638 - arthurpaimarnold:lexer_rule_for_octal, r=petrochenkov
Possible mistake in lexer rule for octal integer

Original rule allowed for digits 0-8, but octal is 0-7.

The compiler correctly prevents you from placing an 8 in an octal, so I'm assuming this is caught on a later stage. Still, shouldn't the lexer already catch this?
2017-06-13 17:15:04 -04:00
Corey Farwell d60b291c8f Rollup merge of #42636 - GuillaumeGomez:new-error-codes-next2, r=eddyb
Add E0617

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus
2017-06-13 17:15:03 -04:00
Corey Farwell 664ab45796 Rollup merge of #42597 - mark-buer:park_timeout_example_fix, r=alexcrichton
Capture elapsed duration in Thread::park_timeout example

`beginning_park.elapsed()` might return a larger value within the loop as compared to that checked in the loop conditional.
Since `Duration` arithmetic is checked, hitting such an edge case will cause a panic.
2017-06-13 17:15:02 -04:00
Corey Farwell 7463cf5faf Rollup merge of #42496 - Razaekel:feature/integer_max-min, r=BurntSushi
Add max and min to Ord

Pursuant to issue #25663, this PR adds max and min methods with default implementations to std::cmp::Ord. It also modifies std::cmp::max|min to internally alias to Ord::max|min, so that any overrides of the default implementations are automatically used by std::cmp::max|min.

Closes #25663
2017-06-13 17:15:00 -04:00
Corey Farwell 78d5d37235 Rollup merge of #42428 - scottmcm:str-get-overflow, r=sfackler
Add overflow checking for `str::get` with inclusive ranges

Fixes https://github.com/rust-lang/rust/issues/42401

Two commits here:

1. The first makes `str::index` just call `SliceIndex<str>::index`.  It's intended to have no behavior change, except where the two methods were inconsistent.
2. The second actually adds the overflow checking to `get(_mut)` (and tests for it)
2017-06-13 17:14:59 -04:00
Corey Farwell 02179bd251 Rollup merge of #42408 - bjorn3:patch-2, r=michaelwoerister
Add docs to librustc/hir/check_attr.rs

Also moved `check_attribute` up to ease reading.
2017-06-13 17:14:59 -04:00
Guillaume Gomez a5dc963974 Add E0617 2017-06-13 23:10:43 +02:00
Arthur Arnold c291e87dae changed upper bound digit in octal rule to 7 2017-06-13 17:08:12 -03:00