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 11 pull requests #64164

Closed
wants to merge 37 commits into from
Closed

Conversation

Centril
Copy link
Contributor

@Centril Centril commented Sep 5, 2019

Successful merges:

Failed merges:

r? @ghost

fmckeogh and others added 30 commits August 21, 2019 09:13
This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures.
LLDB's expression parser can't unambiguously resolve local variables in
some cases, as described in rust-lang#47938. Work around this by using names that
don't shadow direct submodules of `core`.
PR rust-lang#63580 broke miri's ability to run the run-pass test suite with MIR
optimizations enabled. The issue was that we weren't properly handling
the substs and DefId associated with a Promoted value. This didn't break
anything in rustc because in rustc this code runs before the Inliner
pass which is where the DefId and substs can diverge from their initial
values. It broke Miri though because it ran this code again after
running the optimization pass.
That way, we don't loose the jointness info
They are only used by rustc_lexer, and are not needed elsewhere.

So we move the relevant definitions into rustc_lexer (while the actual
unicode data comes from the unicode-xid crate) and make the rest of
the compiler use it.
On the call site, `rustc_lexer::is_whitespace` reads much better than
`character_properties::is_whitespace`.
We never allowed the warnings, only made them not denied.
Use unicode-xid crate instead of libcore

This PR proposes to remove `char::is_xid_start` and `char::is_xid_continue` functions from `libcore` and use `unicode_xid` crate from crates.io (note that this crate is already present in rust-lang/rust's Cargo.lock).

Reasons to do this:

* removing rustc-binary-specific stuff from libcore
* making sure that, across the ecosystem, there's a single definition of what rust identifier is (`unicode-xid` has almost 10 million downs, as a `proc_macro2` dependency)
* making it easier to share `rustc_lexer` crate with rust-analyzer: no need to `#[cfg]` if we are building as a part of the compiler

Reasons not to do this:

* increased maintenance burden: we'll need to upgrade unicode version both in libcore and in unicode-xid. However, this shouldn't be a too heavy burden: just running `./unicode.py` after new unicode version. I (@matklad) am ready to be a t-compiler side maintainer of unicode-xid. Moreover, given that xid-unicode is an important dependency of syn, *someone* needs to maintain it anyway.
* xid-unicode implementation is significantly slower. It uses a more compact table with binary search, instead of a trie. However, this shouldn't matter in practice, because we have fast-path for ascii anyway, and code size savings is a plus. Moreover, in rust-lang#59706 not using libcore turned out to be *faster*, presumably beacause checking for whitespace with match is even faster.

<details>

<summary>old description</summary>

Followup to rust-lang#59706

r? @eddyb

Note that this doesn't actually remove tables from libcore, to avoid conflict with rust-lang#62641.

cc unicode-rs/unicode-xid#11

</details>
Account for doc comments coming from proc macros without spans

Fix rust-lang#63821.
…mertj

libstd fuchsia fixes

This fixes two bugs in libstd on Fuchsia:

- `zx_time_t` was changed to an `i64`, but this never made it into libstd
- When spawning processes where any of the stdio were null, libstd attempts to open `/dev/null`, which doesn't exist on Fuchsia

r? @cramertj
…crichton

Fix unlock ordering in SGX synchronization primitives

Avoid holding spinlocks during usercalls. This should avoid deadlocks in certain pathological scheduling cases.

cc @mzohreva @parthsane

r? @alexcrichton
…nkov

use TokenStream rather than &[TokenTree] for built-in macros

That way, we don't loose the jointness info
…joshtriplett

Add x86_64-linux-kernel target

This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures.

I wasn't totally sure about what the best name for this was.

There's one open question on whether we should use the LLVM generic x86_64-elf target, or the same one used for the Linux userspace.

r? @joshtriplett
…050, r=alexcrichton

Rename test locals to work around LLDB bug

LLDB's expression parser can't unambiguously resolve local variables in
some cases, as described in rust-lang#47938. Work around this by using names that
don't shadow direct submodules of `core`.

Closes rust-lang#64050.
…crichton

Ensure edition lints and internal lints are enabled with deny-warnings=false

Previously we only passed the deny command line flags if deny-warnings was enabled, but now we either pass -W... or -D... for each of the flags as appropriate.

This is also a breaking change to x.py as it changes `--warnings=allow` to `--warnings=warn` which is what that flag actually did; we don't have an allow warnings mode.
…oli-obk

Fix const eval bug breaking run-pass tests in Miri

PR rust-lang#63580 broke miri's ability to run the run-pass test suite with MIR
optimizations enabled. The issue was that we weren't properly handling
the substs and DefId associated with a Promoted value. This didn't break
anything in rustc because in rustc this code runs before the Inliner
pass which is where the DefId and substs can diverge from their initial
values. It broke Miri though because it ran this code again after
running the optimization pass.

r? @oli-obk
cc @RalfJung
@Centril
Copy link
Contributor Author

Centril commented Sep 5, 2019

@bors r+ p=11 rollup=never

@bors
Copy link
Contributor

bors commented Sep 5, 2019

📌 Commit d43b9f3 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 Sep 5, 2019
@bors
Copy link
Contributor

bors commented Sep 5, 2019

⌛ Testing commit d43b9f3 with merge 6f54a90439253d518fce0d45805ab51e5e89fd6e...

@bors
Copy link
Contributor

bors commented Sep 5, 2019

💔 Test failed - checks-azure

@rust-highfive
Copy link
Collaborator

The job dist-various-2 of your PR failed (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-09-05T07:19:37.8904587Z [RUSTC-TIMING] panic_unwind test:false 0.260
2019-09-05T07:19:38.5787455Z [RUSTC-TIMING] hashbrown test:false 0.866
2019-09-05T07:19:57.6687338Z error: linking with `rust-lld` failed: exit code: 1
2019-09-05T07:19:57.6688606Z   |
2019-09-05T07:19:57.6692913Z   = note: "rust-lld" "-flavor" "gnu" "--build-id" "--eh-frame-hdr" "--hash-style=gnu" "-z" "rodynamic" "--dynamic-linker=ld.so.1" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-fuchsia/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-fuchsia/release/deps/std-18fbc03c077c11be.std.7pkhc7iw-cgu.0.rcgu.o" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-fuchsia/release/deps/libstd-18fbc03c077c11be.so" "--version-script=/tmp/rustcVsHW5X/list" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-fuchsia/release/deps/std-18fbc03c077c11be.3d2zvctenki9tp9b.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-fuchsia/release/deps/std-18fbc03c077c11be.4xzxw5c8ok9pskoe.rcgu.o" "-O1" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-fuchsia/release/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/release/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-fuchsia/release/build/compiler_builtins-7d3e5b1abddf868d/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-fuchsia/release/build/backtrace-sys-b8583d4026cb390c/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-fuchsia/lib" "-lzircon" "-lfdio" "-Bstatic" "--whole-archive" "/tmp/rustcVsHW5X/libpanic_unwind-57598bc416d1fec2.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/libbacktrace-5e4e44c3709a6ee9.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/librustc_demangle-7ba4493fedd92f7d.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/libhashbrown-9417bfef281cd46c.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/librustc_std_workspace_alloc-e6f7b9eede6e8679.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/libunwind-d883bd7771e20bde.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/libcfg_if-79b998edafa97e8e.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/liblibc-ff7fe28e2f588926.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/liballoc-947a4762c0c0a056.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/librustc_std_workspace_core-c1e8f3dd410d714d.rlib" "--no-whole-archive" "--whole-archive" "/tmp/rustcVsHW5X/libcore-84d107d4cc594f9f.rlib" "--no-whole-archive" "/tmp/rustcVsHW5X/libcompiler_builtins-7d898751eaf69b01.rlib" "-Bdynamic" "-lunwind" "-lc" "-lfdio" "-shared"
2019-09-05T07:19:57.6695206Z   = note: rust-lld: error: unable to find library -lzircon
2019-09-05T07:19:57.6696226Z           rust-lld: error: unable to find library -lfdio
2019-09-05T07:19:57.6696887Z           rust-lld: error: unable to find library -lunwind
2019-09-05T07:19:57.6697450Z           rust-lld: error: unable to find library -lc
2019-09-05T07:19:57.6697978Z           rust-lld: error: unable to find library -lfdio
2019-09-05T07:19:57.6702201Z 
2019-09-05T07:19:57.6734714Z error: aborting due to previous error
2019-09-05T07:19:57.6738504Z 
2019-09-05T07:19:57.6949150Z [RUSTC-TIMING] std test:false 19.112
---
2019-09-05T07:19:57.7111991Z == clock drift check ==
2019-09-05T07:19:57.7133941Z   local time: Thu Sep  5 07:19:57 UTC 2019
2019-09-05T07:19:57.8687466Z   network time: Thu, 05 Sep 2019 07:19:57 GMT
2019-09-05T07:19:57.8691799Z == end clock drift check ==
2019-09-05T07:20:00.4132704Z ##[error]Bash exited with code '1'.
2019-09-05T07:20:00.4177499Z ##[section]Starting: Upload CPU usage statistics
2019-09-05T07:20:00.4183266Z ==============================================================================
2019-09-05T07:20:00.4183404Z Task         : Bash
2019-09-05T07:20:00.4183509Z 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 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 Sep 5, 2019
@Centril Centril closed this Sep 5, 2019
@Centril Centril deleted the rollup-vih960y branch September 5, 2019 07:32
@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.