Commit Graph

90641 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
53c0275882
Apply suggestions from code review
Co-Authored-By: RalfJung <post@ralfj.de>
2019-02-23 16:17:07 +01:00
gnzlbg
fcc0b3e398 Fix attribute check 2019-02-23 15:48:40 +01:00
gnzlbg
76403e5742 Use pattern to match attributes 2019-02-23 15:48:40 +01:00
gnzlbg
52ba07dbe6 Correct error message 2019-02-23 15:48:40 +01:00
gnzlbg
c4b46ace55 Implement ffi_returns_twice attribute 2019-02-23 15:48:40 +01:00
Matthew Jasper
7d01aa8a48 Type check coercions to pointer types 2019-02-23 14:25:03 +00:00
bors
7f19f161f2 Auto merge of #58669 - Centril:rollup, r=Centril
Rollup of 16 pull requests

Successful merges:

 - #58100 (Transition librustdoc to Rust 2018)
 - #58122 (RangeInclusive internal iteration performance improvement.)
 - #58199 (Add better error message for partial move)
 - #58227 (Updated RELEASES.md for 1.33.0)
 - #58353 (Check the Self-type of inherent associated constants)
 - #58453 (SGX target: fix panic = abort)
 - #58476 (Remove `LazyTokenStream`.)
 - #58526 (Special suggestion for illegal unicode curly quote pairs)
 - #58595 (Turn duration consts into associated consts)
 - #58609 (Allow Self::Module to be mutated.)
 - #58628 (Optimise vec![false; N] to zero-alloc)
 - #58643 (Don't generate minification variables if minification disabled)
 - #58648 (Update tests to account for cross-platform testing and miri.)
 - #58654 (Do not underflow after resetting unmatched braces count)
 - #58658 (Add expected/provided byte alignments to validation error message)
 - #58667 (Reduce Miri-related Code Repetition `like (n << amt) >> amt`)

Failed merges:

r? @ghost
2019-02-23 14:14:04 +00:00
bors
bcfb5e8ac3 Auto merge of #58655 - kennytm:download-docker-cache-with-timeout, r=alexcrichton
Added a connection timeout and speed threshold when downloading the Docker cache

This is an attempt to fix one possible cause of #56112. Similar to #52846, this changed the download docker-cache command to fail if it cannot connect or falls below 10 bytes/s after 30 seconds, so it could be retried sooner.
2019-02-23 11:32:10 +00:00
Paul Dicker
089524c31a Correct OpenOptions::security_qos_flags documentation 2019-02-23 12:17:48 +01:00
Wim Looman
61097bce0d Add debug-info to access variables from generator state 2019-02-23 12:13:39 +01:00
Paul Dicker
1a944b0d5b Remove pub(crate) from stderr_raw 2019-02-23 12:11:10 +01:00
Mazdak Farrokhzad
a36d1b9301
Rollup merge of #58667 - kenta7777:reduce-mir-code-repetition, r=petrochenkov
Reduce Miri-related Code Repetition `like (n << amt) >> amt`

This Pull Request fixes a part of [#49937](https://github.com/rust-lang/rust/issues/49937).
2019-02-23 09:25:39 +01:00
Mazdak Farrokhzad
d038fb2a88
Rollup merge of #58658 - pmccarter:align_msg, r=matthewjasper
Add expected/provided byte alignments to validation error message

Fixes #58617
2019-02-23 09:25:37 +01:00
Mazdak Farrokhzad
2db0e489bc
Rollup merge of #58654 - estebank:underflow, r=nikomatsakis
Do not underflow after resetting unmatched braces count

Fix #58638.

r? @oli-obk
2019-02-23 09:25:36 +01:00
Mazdak Farrokhzad
c2ad75e364
Rollup merge of #58648 - pnkfelix:issue-23926-update-tests, r=nikomatsakis
Update tests to account for cross-platform testing and miri.

Fix #23926
2019-02-23 09:25:34 +01:00
Mazdak Farrokhzad
69cb908849
Rollup merge of #58643 - GuillaumeGomez:extra-variables, r=Manishearth
Don't generate minification variables if minification disabled

If the minification is disabled, there is no sense having those variables.

r? @QuietMisdreavus
2019-02-23 09:25:33 +01:00
Mazdak Farrokhzad
93bfa92a3d
Rollup merge of #58628 - RReverser:optimise-vec-false, r=oli-obk
Optimise vec![false; N] to zero-alloc

Nowadays booleans have a well-defined representation, so there is no reason not to optimise their allocation.
2019-02-23 09:25:32 +01:00
Mazdak Farrokhzad
8ccda2438e
Rollup merge of #58609 - gabi-250:mutable-refs, r=oli-obk
Allow Self::Module to be mutated.

This only changes `&Self::Module` to `&mut Self::Module` in a couple of places.

`codegen_allocator` and `write_metadata` from `ExtraBackendMethods` mutate the underlying LLVM module. As such, it makes sense for these two functions to receive a mutable reference to the module (as opposed to an immutable one).

I am trying to implement `codegen_allocator` for my backend, and I need to be able to mutate `Self::Module`:
f66e4697ae/src/librustc_codegen_ssa/traits/backend.rs (L41)
Modifying the module in `codegen_allocator`/`write_metadata` is not a problem for the LLVM backend, because [ModuleLlvm](https://github.com/rust-lang/rust/blob/master/src/librustc_codegen_llvm/lib.rs#L357) contains a raw pointer to the underlying LLVM module, so it can easily be mutated through FFI calls.

I am trying to avoid interior mutability and `unsafe` as much as I can. What do you think? Does this change make sense, or is there a reason why this should stay the way it is?
2019-02-23 09:25:30 +01:00
Mazdak Farrokhzad
73e661a0a5
Rollup merge of #58595 - stjepang:make-duration-consts-associated, r=oli-obk
Turn duration consts into associated consts

As suggested in https://github.com/rust-lang/rust/issues/57391#issuecomment-459658236, I'm moving `Duration` constants (`SECOND`, `MILLISECOND` and so on; currently behind unstable `duration_constants` feature) into the `impl Duration` block.

cc @frewsxcv @SimonSapin
2019-02-23 09:25:29 +01:00
Mazdak Farrokhzad
18dd2d2fbe
Rollup merge of #58526 - pmccarter:master, r=estebank
Special suggestion for illegal unicode curly quote pairs

Fixes #58436

Did not end up expanding the error message span to include the full string literal since I figured the start of the token was the issue, while the help suggestion span would include up to the closing quotation mark.

The look ahead logic does not affect the reader position, not sure if that is an issue (if eg it should still continue to parse after the closing quote without erroring out).
2019-02-23 09:25:27 +01:00
Mazdak Farrokhzad
585d4d29d9
Rollup merge of #58476 - nnethercote:rm-LazyTokenStream, r=petrochenkov
Remove `LazyTokenStream`.

`LazyTokenStream` was added in #40939. Perhaps it was an effective optimization then, but no longer. This PR removes it, making the code both simpler and faster.

r? @alexcrichton
2019-02-23 09:25:26 +01:00
Mazdak Farrokhzad
4f99061874
Rollup merge of #58453 - jethrogb:jb/sgx-panic-abort, r=nagisa
SGX target: fix panic = abort

What is the difference between `no_mangle` and `rustc_std_internal_symbol`?
2019-02-23 09:25:24 +01:00
Mazdak Farrokhzad
3688643293
Rollup merge of #58353 - matthewjasper:typeck-pattern-constants, r=arielb1
Check the Self-type of inherent associated constants

r? @arielb1
2019-02-23 09:25:23 +01:00
Mazdak Farrokhzad
abd6f503fe
Rollup merge of #58227 - Aaronepower:master, r=Centril
Updated RELEASES.md for 1.33.0

[Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md)

r? @Mark-Simulacrum

cc @rust-lang/release
2019-02-23 09:25:19 +01:00
Mazdak Farrokhzad
1d6657dd0a
Rollup merge of #58199 - clintfred:partial-move-err-msg, r=estebank
Add better error message for partial move

closes #56657

r? @davidtwco
2019-02-23 09:25:17 +01:00
Mazdak Farrokhzad
f19bec89d7
Rollup merge of #58122 - matthieu-m:range_incl_perf, r=dtolnay
RangeInclusive internal iteration performance improvement.

Specialize `Iterator::try_fold` and `DoubleEndedIterator::try_rfold` to improve code generation in all internal iteration scenarios.

This changes brings the performance of internal iteration with `RangeInclusive` on par with the performance of iteration with `Range`:

 - Single conditional jump in hot loop,
 - Unrolling and vectorization,
 - And even Closed Form substitution.

Unfortunately, it only applies to internal iteration. Despite various attempts at stream-lining the implementation of `next` and `next_back`, LLVM has stubbornly refused to optimize external iteration appropriately, leaving me with a choice between:

 - The current implementation, for which Closed Form substitution is performed, but which uses 2 conditional jumps in the hot loop when optimization fail.
 - An implementation using a `is_done` boolean, which uses 1 conditional jump in the hot loop when optimization fail, allowing unrolling and vectorization, but for which Closed Form substitution fails.

In the absence of any conclusive evidence as to which usecase matters most, and with no assurance that the lack of Closed Form substitution is not indicative of other optimizations being foiled, there is no way
to pick one implementation over the other, and thus I defer to the statu quo as far as `next` and `next_back` are concerned.
2019-02-23 09:25:12 +01:00
Mazdak Farrokhzad
c49da5bfe5
Rollup merge of #58100 - h-michael:librustdoc-2018, r=Centril
Transition librustdoc to Rust 2018

#58099
2019-02-23 09:25:11 +01:00
Hirokazu Hata
1fe87df104 Fix tidy check errors 2019-02-23 17:02:57 +09:00
Hirokazu Hata
1932d7a52d Transition librustdoc to 2018 edition 2019-02-23 16:40:07 +09:00
kenta7777
42d5cf868c reduce an mir code repetition like (n << amt) >> amt 2019-02-23 10:07:09 +09:00
Hoàng Đức Hiếu
7cfddfb4e4 Improve parsing diagnostic for negative supertrait bounds 2019-02-23 07:58:16 +07:00
Patrick McCarter
d0c110f2c6 #58658 bless after line split for tidy 2019-02-22 19:23:03 -05:00
Patrick McCarter
5952c610a7 tidy line length override #58617 2019-02-22 17:07:13 -05:00
Ralf Jung
aa4a9b0827 make MaybeUninit Copy 2019-02-22 23:06:03 +01:00
Ralf Jung
d10366fe27 avoid unnecessary use of MaybeUninit::get_ref, and expand comment on the others 2019-02-22 23:05:58 +01:00
Ralf Jung
084ee7a875 examples for MaybeUninit::zeroed 2019-02-22 22:37:54 +01:00
Ralf Jung
48aa59e74d examples for as[_mut]_ptr 2019-02-22 22:37:54 +01:00
Ralf Jung
10f511daa0 misc tweaks 2019-02-22 22:37:54 +01:00
Ralf Jung
dc570fb3f2 also add examples to MaybeUninit::into_initialized 2019-02-22 22:37:54 +01:00
Ralf Jung
13ffbee173 Add MaybeUninit::read_uninitialized
Also remove a no-longer accurate comments
2019-02-22 22:37:50 +01:00
Eric Huss
d5484cffb5 Update cargo 2019-02-22 13:36:41 -08:00
Patrick McCarter
8ee1c0708a Change byte align message wording #58617 2019-02-22 16:36:39 -05:00
bors
082c86175f Auto merge of #58644 - Centril:rollup, r=Centril
Rollup of 17 pull requests

Successful merges:

 - #57656 (Deprecate the unstable Vec::resize_default)
 - #58059 (deprecate before_exec in favor of unsafe pre_exec)
 - #58064 (override `VecDeque::try_rfold`, also update iterator)
 - #58198 (Suggest removing parentheses surrounding lifetimes)
 - #58431 (fix overlapping references in BTree)
 - #58555 (Add a note about 2018e if someone uses `try {` in 2015e)
 - #58588 (remove a bit of dead code)
 - #58589 (cleanup macro after 2018 transition)
 - #58591 (Dedup a rustdoc diagnostic construction)
 - #58600 (fix small documentation typo)
 - #58601 (Search for target_triple.json only if builtin target not found)
 - #58606 (Docs: put Future trait into spotlight)
 - #58607 (Fixes #58586: Make E0505 erronous example fail for the 2018 edition)
 - #58615 (miri: explain why we use static alignment in ref-to-place conversion)
 - #58620 (introduce benchmarks of BTreeSet.intersection)
 - #58621 (Update miri links)
 - #58632 (Make std feature list sorted)

Failed merges:

r? @ghost
2019-02-22 21:32:15 +00:00
Patrick McCarter
5f27a25cf4 Invalid byte alignment expected/provided in message #58617 2019-02-22 15:49:07 -05:00
Esteban Küber
cc1cd83657 Do not underflow after resetting unmatched braces count
Fix #58638.
2019-02-22 11:52:03 -08:00
kennytm
ee07b15a3c
Added a connection timeout and speed threshold when downloading the Docker cache 2019-02-23 03:25:14 +08:00
Mazdak Farrokhzad
fda51c2fbd Update RELEASES.md 2019-02-22 17:50:18 +01:00
Felix S. Klock II
4f89846377 Fix #57979 by allowing a legitimate type error to take precedence over an ICE. 2019-02-22 16:21:44 +01:00
Felix S. Klock II
b72ba0559c Switch from error patterns to //~ ERROR markers.
AFAICT, we do not have the same const-eval issues that we used to when
rust-lang/rust#23926 was filed. (Probably because of the switch to
miri for const-evaluation.)
2019-02-22 16:07:15 +01:00
Felix S. Klock II
e555854f9d Make target pointer-width specific variants of (very old) huge-array-simple.rs test.
(and now unignore the test since it shouldn't break tests of
cross-compiles anymore.)
2019-02-22 15:13:07 +01:00