-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Rollup of 11 pull requests #64164
Conversation
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>
Fix `window.hashchange is not a function` Closes rust-lang#63707.
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.
Fix const_err with `-(-0.0)` Fixes rust-lang#64059 r? @oli-obk
…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
@bors r+ p=11 rollup=never |
📌 Commit d43b9f3 has been approved by |
⌛ Testing commit d43b9f3 with merge 6f54a90439253d518fce0d45805ab51e5e89fd6e... |
💔 Test failed - checks-azure |
The job Click to expand the log.
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 |
Successful merges:
window.hashchange is not a function
#63774 (Fixwindow.hashchange is not a function
)-(-0.0)
#64063 (Fix const_err with-(-0.0)
)Failed merges:
r? @ghost