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 6 pull requests #69846

Closed
wants to merge 37 commits into from
Closed

Conversation

Centril
Copy link
Contributor

@Centril Centril commented Mar 9, 2020

Successful merges:

Failed merges:

r? @ghost

12101111 and others added 30 commits March 3, 2020 16:17
Previously, attributes on 'if' expressions (e.g. #[attr] if true {})
were disallowed during parsing. This made it impossible for macros to
perform any custom handling of such attributes (e.g. stripping them
away), since a compilation error would be emitted before they ever had a
chance to run.

This PR permits attributes on 'if' expressions ('if-attrs' from here on).
Both built-in attributes (e.g. `#[allow]`, `#[cfg]`) are supported.

We still do *not* accept attributes on 'other parts' of an if-else
chain. That is, the following code snippet still fails to parse:

```rust
if true {} #[attr] else if false {} else #[attr] if false {} #[attr]
else {}
```
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
Additionally whenever possible match C API provided by the LLVM.
cuviper and others added 7 commits March 8, 2020 18:44
Although `stack_overflow::init` runs very early in the process, even
before `main`, there may already be signal handlers installed for things
like the address sanitizer. In that case, just leave it alone, and don't
bother trying to allocate our own signal stacks either.
…=Centril

Permit attributes on 'if' expressions

Previously, attributes on 'if' expressions (e.g. `#[attr] if true {}`)
were disallowed during parsing. This made it impossible for macros to
perform any custom handling of such attributes (e.g. stripping them
away), since a compilation error would be emitted before they ever had a
chance to run.

This PR permits attributes on 'if' expressions ('if-attrs' from here on).
Both built-in attributes (e.g. `#[allow]`, `#[cfg]`) and proc-macro attributes are supported.

We still do *not* accept attributes on 'other parts' of an if-else
chain. That is, the following code snippet still fails to parse:

```rust
if true {} #[attr] else if false {} else #[attr] if false {} #[attr]
else {}
```

Closes rust-lang#68618
…nison

Extend search

I realized that when looking for "struct:String" in the rustdoc search for example, the "in arguments" and "returned" tabs were always empty. After some investigation, I realized it was because we only provided the name, and not the type, making it impossible to pass the "type filtering" check.

To resolve this, I added the type alongside the name. Note for the future: we could improve this by instead only registering the path id and use the path dictionary directly. The only problem with that solution (which I already tested) is that it becomes complicated for types in other crates. It'd force us to handle both case with an id and a case with `(name, type)`. I found the current PR big enough to not want to provide it directly. However, I think this is definitely worth it to make it work this way in the future.

About the two tests I added: they don't have much interest except checking that we actually have something returned in the search in the cases of a type filtering with and without literal search.

I also had to update a bit the test script to add the new locally global (haha) variable I created (`NO_TYPE_FILTER`). I added this variable to make the code easier to read than just "-1".

r? @kinnison

cc @ollie27
…=nagisa,smaeul

 Don't use static crt by default when build proc-macro

Don't check value of `crt-static` when build proc-macro crates, since they are always built dynamically.
For more information, see rust-lang/cargo#7563 (comment)
I hope this will fix issues about compiling `proc_macro` crates on musl host without bring more issues.
Note: I can't test this on my musl host locally, because I encounter this issue when bootstraping from a beta snapshot.
Fix rust-lang/cargo#7563
unix: Don't override existing SIGSEGV/BUS handlers

Although `stack_overflow::init` runs very early in the process, even
before `main`, there may already be signal handlers installed for things
like the address sanitizer. In that case, just leave it alone, and don't
bother trying to allocate our own signal stacks either.

Fixes rust-lang#69524.
Ensure that validity only raises validity errors

For now, only as a debug-assertion (similar to const-prop detecting errors that allocate).

Now includes rust-lang#69646.
[Relative diff](RalfJung/rust@layout-visitor...RalfJung:validity-errors).

r? @oli-obk
librustc_codegen_llvm: Use slices in preference to 0-terminated strings

Additionally whenever possible match C API provided by the LLVM.
@Centril
Copy link
Contributor Author

Centril commented Mar 9, 2020

@bors r+ p=1001 rollup=never

@bors
Copy link
Contributor

bors commented Mar 9, 2020

📌 Commit 6cf5a14 has been approved by Centril

@bors
Copy link
Contributor

bors commented Mar 9, 2020

🌲 The tree is currently closed for pull requests below priority 1000, this pull request will be tested once the tree is reopened

@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 Mar 9, 2020
@Centril Centril added the rollup A PR which is a rollup label Mar 9, 2020
@bors
Copy link
Contributor

bors commented Mar 9, 2020

⌛ Testing commit 6cf5a14 with merge 1b40570...

bors added a commit that referenced this pull request Mar 9, 2020
Rollup of 6 pull requests

Successful merges:

 - #69201 (Permit attributes on 'if' expressions)
 - #69402 (Extend search)
 - #69519 ( Don't use static crt by default when build proc-macro)
 - #69685 (unix: Don't override existing SIGSEGV/BUS handlers)
 - #69762 (Ensure that validity only raises validity errors)
 - #69779 (librustc_codegen_llvm: Use slices in preference to 0-terminated strings)

Failed merges:

r? @ghost
@TimDiekmann
Copy link
Member

Is there a specific reason, why #69799 was left out (It's rollup=always)? In case this rollup fails, it is possible to include it as well? #69824 directly depends on it.

@rust-highfive
Copy link
Collaborator

The job dist-various-1 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.
2020-03-09T09:02:28.4920543Z 
2020-03-09T09:02:42.6614472Z [RUSTC-TIMING] std test:false 14.302
2020-03-09T09:02:42.6635156Z    Compiling rustc-std-workspace-std v1.99.0 (/checkout/src/tools/rustc-std-workspace-std)
2020-03-09T09:02:42.6638172Z    Compiling term v0.0.0 (/checkout/src/libterm)
2020-03-09T09:02:42.6787483Z error: extern location for std does not exist: /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/mips64-unknown-linux-muslabi64/release/deps/libstd-bd95e1e545976f16.so
2020-03-09T09:02:42.6788263Z 
2020-03-09T09:02:42.6847280Z error: extern location for std does not exist: /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/mips64-unknown-linux-muslabi64/release/deps/libstd-bd95e1e545976f16.so
2020-03-09T09:02:42.6895687Z error: aborting due to previous error
2020-03-09T09:02:42.6896418Z 
2020-03-09T09:02:42.6919228Z [RUSTC-TIMING] rustc_std_workspace_std test:false 0.024
2020-03-09T09:02:42.6920004Z error: could not compile `rustc-std-workspace-std`.
---
2020-03-09T09:02:42.8353610Z   local time: Mon Mar  9 09:02:42 UTC 2020
2020-03-09T09:02:43.3735691Z   network time: Mon, 09 Mar 2020 09:02:43 GMT
2020-03-09T09:02:43.3737256Z == end clock drift check ==
2020-03-09T09:02:45.0232556Z 
2020-03-09T09:02:45.0293610Z ##[error]Bash exited with code '1'.
2020-03-09T09:02:45.0350599Z ##[section]Starting: Checkout rust-lang/rust@auto to s
2020-03-09T09:02:45.0355131Z ==============================================================================
2020-03-09T09:02:45.0355488Z Task         : Get sources
2020-03-09T09:02:45.0355867Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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 @rust-lang/infra. (Feature Requests)

@bors
Copy link
Contributor

bors commented Mar 9, 2020

💔 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 Mar 9, 2020
@Centril Centril closed this Mar 9, 2020
@Centril Centril deleted the rollup-7j2v0dx branch March 9, 2020 09:18
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