Skip to content

Update stdsimd #10

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

Open
wants to merge 1,552 commits into
base: master
Choose a base branch
from
Open

Update stdsimd #10

wants to merge 1,552 commits into from

Conversation

parched
Copy link
Owner

@parched parched commented Feb 24, 2019

No description provided.

nnethercote and others added 30 commits February 14, 2019 11:52
From 104 bytes to 72 bytes on x86-64. This slightly reduces instruction
counts.

Also add an assertion about the size.
Since `compiler_builtins` is being injected automatically, its docs
aren't masked. This commit masks the crate's docs if it's brought in as
an extern crate.
…stebank

suggestion-diagnostics: as_ref improve snippet

Improve the code snippet suggested in suggestion-diagnostics when
suggesting the use of as_ref.

Given:

```rust
fn test(x: &usize) {}
fn main() {
    Some(42).map(|x| test(x));
}
```

Suggest

```
  help: consider using `as_ref` instead: `as_ref().map`
```

Instead of

```
  help: consider using `as_ref` instead: `as_ref().`
```
…veklabnik

Convert old first edition links to current edition one

r? @steveklabnik
Update the future/task API

This change updates the future and task API as discussed in the stabilization RFC at rust-lang/rfcs#2592.

Changes:
- Replacing UnsafeWake with RawWaker and RawWakerVtable
- Removal of LocalWaker
- Removal of Arc-based Wake trait
…aelwoerister

Reduce the size of `hir::Expr`.

From 104 bytes to 72 bytes on x86-64. This slightly reduces instruction
counts.

Also add an assertion about the size.
Tweak "incompatible match arms" error

- Point at the body expression of the match arm with the type error.
- Point at the prior match arms explicitly stating the evaluated type.
- Point at the entire match expr in a secondary span, instead of primary.
- For type errors in the first match arm, the cause is outside of the
  match, treat as implicit block error to give a more appropriate error.

Fix rust-lang#46776, fix rust-lang#57206.
CC rust-lang#24157, rust-lang#38234.
Hidden suggestion support

Add way to hide suggestion snippet window from cli output to avoid cluttered spans that don't enhance understanding.

r? @pietroalbini CC @zackmdavis
Enable comparing fat pointers

Also refactor our binops a bit to make that happen more easily.

r? @oli-obk
Extract block to insert an intrinsic into its own function

r? @eddyb
Rollup of 8 pull requests

Successful merges:

 - rust-lang#57451 (suggestion-diagnostics: as_ref improve snippet)
 - rust-lang#57856 (Convert old first edition links to current edition one)
 - rust-lang#57992 (Update the future/task API)
 - rust-lang#58258 (Reduce the size of `hir::Expr`.)
 - rust-lang#58267 (Tweak "incompatible match arms" error)
 - rust-lang#58296 (Hidden suggestion support)
 - rust-lang#58301 (Enable comparing fat pointers)
 - rust-lang#58308 (Extract block to insert an intrinsic into its own function)

Failed merges:

r? @ghost
…s, r=michaelwoerister

Add more profiler events

- Adds Start\Stop events for time spent loading incremental query results from disk.

- Adds Start\Stop events for time spent blocked waiting for queries to complete (when parallel queries are enabled).

r? @michaelwoerister
… r=pnkfelix

Closure bounds fixes

* Ensures that "nice region errors" are buffered so that they are sorted and migrated correctly.
* Propagates fewer constraints for closures (cc rust-lang#58178)
* Propagate constraints from closures more precisely (rust-lang#58127)

Closes rust-lang#58127

r? @nikomatsakis
Add an option to print the status of incremental tasks / dep nodes after running them

r? @michaelwoerister
Check user type annotations for range patterns.

Fixes rust-lang#58299.

This PR builds on the fix from rust-lang#58161 (which fixed miscompilation
caused by the introduction of `AscribeUserType` patterns for associated
constants) to start checking these patterns are well-formed for ranges
(previous fix just ignored them so that miscompilation wouldn't occur).

r? @arielb1
…haelwoerister

rustc: Implement incremental "fat" LTO

Currently the compiler will produce an error if both incremental
compilation and full fat LTO is requested. With recent changes and the
advent of incremental ThinLTO, however, all the hard work is already
done for us and it's actually not too bad to remove this error!

This commit updates the codegen backend to allow incremental full fat
LTO. The semantics are that the input modules to LTO are all produce
incrementally, but the final LTO step is always done unconditionally
regardless of whether the inputs changed or not. The only real
incremental win we could have here is if zero of the input modules
changed, but that's so rare it's unlikely to be worthwhile to implement
such a code path.

cc rust-lang#57968
cc rust-lang/cargo#6643
specify "upper camel case" in style lint

Also, fix an issue where internal upper case letters were converted to
lower case.

Fixes rust-lang#57319.
…ntril

Notify @topecongiro when the state of rustfmt has changed

I would like to get notified when the state of rustfmt has changed.
Context: I am currently a leader of the rustfmt working group.

cc @nrc do you still want to get notified?
Rollup of 7 pull requests

Successful merges:

 - rust-lang#58309 (Add more profiler events)
 - rust-lang#58347 (Closure bounds fixes)
 - rust-lang#58365 (Add an option to print the status of incremental tasks / dep nodes after running them)
 - rust-lang#58371 (Check user type annotations for range patterns.)
 - rust-lang#58378 (rustc: Implement incremental "fat" LTO)
 - rust-lang#58407 (specify "upper camel case" in style lint)
 - rust-lang#58449 (Notify @topecongiro when the state of rustfmt has changed)

Failed merges:

r? @ghost
phansch and others added 30 commits February 21, 2019 19:26
Miri has been moved to `rust-lang` a couple of days ago.
…turon

Re-implement leak check in terms of universes

This PR temporarily restores the leak-check, but implemented in terms of universes. This is not because the leak check behavior was necessarily **correct**, but because (a) we may want to have a transition period and because (b) we want to have more breathing room to work through the full implications of handling higher-ranked types correctly. Note that this PR builds atop rust-lang#58056.

Fixes rust-lang#58451
Fixes rust-lang#46989
Fixes rust-lang#57639

r? @aturon
cc @arielb1, @lqd

~~Temporary note: I've not finished running `./x.py test` locally -- I'm confident a lot of error messages in tests will need updating. I sort of expect them to revert to the older, (imo) less good error messages, which is mildly unfortunate. There might be a way to preserve the new error messages, not sure.~~
…atomic-integers, r=dtolnay

Destabilize fixed-width const defined atomic integers

With this PR version 1.34.0 onwards const declarations of atomic integers will be unstable.

* Closes rust-lang#58089
* Reverts partially: rust-lang#57425
improve Pin documentation

Incorporates a bunch of the documentation-related comments that came up when discussing `Pin` stabilization.

Cc @alexcrichton @withoutboats @cramertj @jonhoo

Fixes rust-lang#58130
…in-nll, r=pnkfelix

Erroneous loop diagnostic in nll

Closes rust-lang#53773

r? @nikomatsakis
This helps to avoid merge conflicts when concurrent PRs append
features to the end of the list.
Wrap write_bytes in a function. Move docs

This will allow us to add debug assertions.
See issue rust-lang#53871.
…r=SimonSapin

Deprecate the unstable Vec::resize_default

As a way to either get additional feedback to stabilize or help move nightly users off it.

Tracking issue: rust-lang#41758 (comment)

r? @SimonSapin
deprecate before_exec in favor of unsafe pre_exec

Fixes rust-lang#39575

As per the [lang team decision](rust-lang#39575 (comment)):

> The language team agreed that before_exec should be unsafe, and leaves the details of a transition plan to the libs team.

Cc @alexcrichton @rust-lang/libs how would you like to proceed?
override `VecDeque::try_rfold`, also update iterator

This keeps the slice based iteration and updates the iterator state after each slice. It also uses a loop to reduce the amount of code.

This uses unsafe code, so some thorough review would be appreciated. Cc @RalfJung
…s-surrounding-lifetimes, r=estebank

Suggest removing parentheses surrounding lifetimes

Fixes rust-lang#57386.

r? @estebank
fix overlapping references in BTree

This fixes two kinds of overlapping references in BTree (both found by running the BTree test suite in Miri).

In `into_slices_mut`, we did `k.into_key_slice_mut()` followed by `self.into_val_slice_mut()` (where `k` is a copy of `self`). Calling `into_val_slice_mut` calls `self.len()`, which creates a shared reference to `NodeHeader`, which unfortunately (due to padding) overlaps with the mutable reference returned by `into_key_slice_mut`.  Hence the key slice got (partially) invalidated.  The fix is to avoid creating an `&NodeHeader` after the first slice got created.

In the iterators, we used to first create the references that will be returned, and then perform the walk on the tree.  Walking the tree creates references (such as `&mut InternalNode`) that overlap with all of the keys and values stored in a pointer; in particular, they overlap with the references the iterator will later return. This is fixed by reordering the operations of walking the tree and obtaining the inner references.

The test suite still passes (and it passes in Miri now!), but there is a lot of code here that I do not understand...
Add a note about 2018e if someone uses `try {` in 2015e

Inspired by rust-lang#58491, where a `try_blocks` example was accidentally run in 2015, which of course produces a bunch of errors.

What's the philosophy about gating for this?  The keyword is stably a keyword in 2018, so I haven't gated it for now but am not mentioning what the keyword _does_.  Let me know if I should do differently.

Resolves rust-lang#53672
remove a bit of dead code

[Six years](rust-lang@5dc5efe) seem to be a long enough transition period 🤣
cleanup macro after 2018 transition

We can now use `?`
…ruction, r=GuillaumeGomez

Dedup a rustdoc diagnostic construction

None
…frewsxcv

fix small documentation typo

Thanks to @stjepang for catching my mistake.
Search for target_triple.json only if builtin target not found

Before this commit, if the builtin target was found, but an error
happened when instantiating it (e.g. validating the target
specification file failed, etc.), then we ignored those errors
and proceeded to try to find a `target_triple.json` file, and if
that failed, reported that as an error.

With this commit, if rustc is supposed to provide the builtin target,
and something fails while instantiating it, that error will
get properly propagated.

r? @oli-obk
… r=alexcrichton

Docs: put Future trait into spotlight

If a function returns a type that implements `Future`, there should be a small "i" symbol next to it indicating the return type implements an important trait.
…n, r=matthewjasper

Fixes rust-lang#58586: Make E0505 erronous example fail for the 2018 edition

The original example worked for 2015, but not the 2018 edition of Rust.

Borrowing the moved value after ownership is transferred seems required for 2018.

[this](rust-lang/rust@rust-lang:f66e469...gurgalex:b2a02c8#diff-4ca866aea4a6efecd732f1975faaad88R1564) line though is correct for 2018, but not for the 2015 edition.

Fix rust-lang#58586
…oli-obk

miri: explain why we use static alignment in ref-to-place conversion

@eddyb @oli-obk do you think this makes sense? Or should we use the run-time alignment (`align_of_val`)? I am a bit worried about custom DSTs, but that affects way more areas of Miri so I'd ignore them for now.

r? @oli-obk
…marks, r=KodrAus

introduce benchmarks of BTreeSet.intersection

16 tests combining 4 kinds of contents with different sizes exposing edge cases.
The ones with asymmetric sizes are addressed by rust-lang#58577.
The pos_vs_neg cases seems (are were meant to be) the same as the neg_vs_pos case (same thing, reverse order) but reality shows a surprsing 25% difference.
Update miri links

Miri has been moved to `rust-lang` a couple of days ago.
Make std feature list sorted

This helps to avoid merge conflicts when concurrent PRs append features to the end of the list.
Rollup of 17 pull requests

Successful merges:

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

Failed merges:

r? @ghost
…meout, r=alexcrichton

Added a connection timeout and speed threshold when downloading the Docker cache

This is an attempt to fix one possible cause of rust-lang#56112. Similar to rust-lang#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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.