Skip to content
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 7 pull requests #65530

Closed
wants to merge 27 commits into from
Closed

Conversation

Centril
Copy link
Contributor

@Centril Centril commented Oct 17, 2019

Successful merges:

Failed merges:

r? @ghost

tmiasko and others added 27 commits October 8, 2019 12:20
Instead of instaling OCaml bindings in a location where installation
will not fail, don't build them in the first place.
Co-Authored-By: Mark Rousskov <[email protected]>
…i-obk

[const-prop] Handle remaining MIR Rvalue cases

r? @oli-obk
Prefer statx on linux if available

This PR make `metadata`-related functions try to invoke `statx` first on Linux if available,
making `std::fs::Metadata::created` work on Linux with `statx` supported.

It follows the discussion in rust-lang#61386 , and will fix rust-lang#59743

The implementation of this PR is simply converting `struct statx` into `struct stat64` with
extra fields for `btime` if `statx` succeeds, since other fields are not currently used.

---

I also did a separated benchmark for `fs::metadata`, `stat64`, `statx`, and `statx` with conversion to `stat64`.
It shows that `statx` with conversion is even more faster than pure `statx`.
I think it's due to `sizeof stat64 == 114` but `sizeof statx == 256`.

Anyway, the bare implementation of `statx` with conversion is only about 0.2% slower than the original impl (`stat64`-family).
With heap-allocation counted (~8.5% of total cost), the difference between `stat` and `statx` (with or without conversion) is just nothing.

Therefore, I think it is not urgent to use bare `struct statx` as underlying representation now.
There is no need to break `std::os::linux::fs::MetadataExt::as_raw_stat` (rust-lang#61386 (comment))

[Separated bare benchmarks](https://gist.github.com/oxalica/c4073ecb202c599fe41b7f15f86dc79c):
```
metadata_ok             time:   [529.41 ns 529.77 ns 530.19 ns]
metadata_err            time:   [538.71 ns 539.39 ns 540.35 ns]
stat64_ok               time:   [484.32 ns 484.53 ns 484.75 ns]
stat64_err              time:   [481.77 ns 482.00 ns 482.24 ns]
statx_ok                time:   [488.07 ns 488.35 ns 488.62 ns]
statx_err               time:   [487.74 ns 488.00 ns 488.27 ns]
statx_cvt_ok            time:   [485.05 ns 485.28 ns 485.53 ns]
statx_cvt_err           time:   [485.23 ns 485.45 ns 485.67 ns]
```

r? @alexcrichton
Disable Go and OCaml bindings when building LLVM

Instead of instaling OCaml bindings in a location where installation
will not fail, don't build them in the first place.
…-E0575, r=kinnison

Add long error explanation for E0575

Part of rust-lang#61137.
…komatsakis

Add more coherence tests

I've wrote the missing test cases listed in [this google doc](https://docs.google.com/spreadsheets/d/1WlroTEXE6qxxGvEOhICkUpqguYZP9YOZEvnmEtSNtM0/edit#gid=0)

> The other thing that might be useful is to rename the existing tests so they all fit the new naming scheme we were using.

I'm not entirely sure how to do this. If everything from the google sheet is covered could I just remove the remaining tests in `src/test/ui/coherence` or is there something in there that should remain?

cc rust-lang#63599

r? @nikomatsakis
properly document panics in div_euclid and rem_euclid

For signed numbers, document that `div_euclid` and `rem_euclid` panic not just when `rhs` is 0, but also when the division overflows.

For unsigned numbers, document that `div_euclid` and `rem_euclid` panic when `rhs` is 0.
…r=simulacrum

add option to ping llvm ice-breakers to triagebot
@Centril
Copy link
Contributor Author

Centril commented Oct 17, 2019

@bors r+ p=7 rollup=never

@bors
Copy link
Contributor

bors commented Oct 17, 2019

📌 Commit 825f2d0 has been approved by Centril

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Oct 17, 2019
@bors
Copy link
Contributor

bors commented Oct 17, 2019

⌛ Testing commit 825f2d0 with merge b42bef7a0671f10d4733c2dc13da13983ed44eec...

@rust-highfive
Copy link
Collaborator

The job dist-various-2 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-10-18T00:03:37.1647126Z [RUSTC-TIMING] hashbrown test:false 0.885
2019-10-18T00:03:40.1143946Z error[E0308]: mismatched types
2019-10-18T00:03:40.1145467Z    --> src/libstd/sys/unix/fs.rs:313:34
2019-10-18T00:03:40.1146207Z     |
2019-10-18T00:03:40.1146980Z 313 |                         tv_nsec: ext.stx_btime.tv_nsec as libc::c_long,
2019-10-18T00:03:40.1148117Z     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i64, found i32
2019-10-18T00:03:40.5030154Z error: aborting due to previous error
2019-10-18T00:03:40.5030369Z 
2019-10-18T00:03:40.5030953Z For more information about this error, try `rustc --explain E0308`.
2019-10-18T00:03:40.5766619Z [RUSTC-TIMING] std test:false 3.408
---
2019-10-18T00:03:40.5917443Z == clock drift check ==
2019-10-18T00:03:40.5943356Z   local time: Fri Oct 18 00:03:40 UTC 2019
2019-10-18T00:03:40.8761373Z   network time: Fri, 18 Oct 2019 00:03:40 GMT
2019-10-18T00:03:40.8765347Z == end clock drift check ==
2019-10-18T00:03:43.3162891Z ##[error]Bash exited with code '1'.
2019-10-18T00:03:43.3224023Z ##[section]Starting: Upload CPU usage statistics
2019-10-18T00:03:43.3232327Z ==============================================================================
2019-10-18T00:03:43.3232448Z Task         : Bash
2019-10-18T00:03:43.3232537Z Description  : Run a Bash script on macOS, Linux, or Windows

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors
Copy link
Contributor

bors commented Oct 18, 2019

💔 Test failed - checks-azure

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 18, 2019
@Centril Centril closed this Oct 18, 2019
@Centril Centril deleted the rollup-d7qax7z branch October 18, 2019 00:07
@Centril Centril added the rollup A PR which is a rollup label Oct 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants