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

Weekly cargo update #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Weekly cargo update #1

wants to merge 1 commit into from

Conversation

github-actions[bot]
Copy link

Automation to keep dependencies in Cargo.lock current.

The following is the output from cargo update:

    Removing ahash v0.7.4
    Removing ahash v0.8.2
      Adding ahash v0.7.6
      Adding ahash v0.8.3
    Removing aho-corasick v0.7.18
      Adding aho-corasick v0.7.20
      Adding aho-corasick v1.0.2
    Updating allocator-api2 v0.2.14 -> v0.2.15
    Updating ammonia v3.2.0 -> v3.3.0
      Adding android-tzdata v0.1.1
    Removing ansi_term v0.12.1
    Updating anstream v0.2.6 -> v0.3.2
    Updating anstyle v0.3.5 -> v1.0.1
    Updating anstyle-parse v0.1.1 -> v0.2.1
      Adding anstyle-query v1.0.0
    Updating anstyle-wincon v0.2.0 -> v1.0.1
    Updating anyhow v1.0.65 -> v1.0.71
    Updating arrayvec v0.7.0 -> v0.7.4
    Updating block-buffer v0.10.2 -> v0.10.4
    Updating bstr v1.3.0 -> v1.5.0
    Updating bytecount v0.6.2 -> v0.6.3
    Updating bytes v1.0.1 -> v1.4.0
    Updating camino v1.0.9 -> v1.1.4
    Updating chrono v0.4.24 -> v0.4.26
    Removing clap v3.2.20
    Removing clap v4.2.1
      Adding clap v3.2.25
      Adding clap v4.3.8
    Updating clap_builder v4.2.1 -> v4.3.8
    Updating clap_complete v4.0.7 -> v4.3.1
    Removing clap_derive v3.2.18
    Removing clap_derive v4.2.0
      Adding clap_derive v3.2.25
      Adding clap_derive v4.3.2
    Removing clap_lex v0.2.2
    Removing clap_lex v0.4.1
      Adding clap_lex v0.2.4
      Adding clap_lex v0.5.0
      Adding colorchoice v1.0.0
    Updating compiler_builtins v0.1.92 -> v0.1.93
    Updating compiletest_rs v0.10.0 -> v0.10.2
    Removing concolor-override v1.0.0
    Removing concolor-query v0.3.3
    Updating cpufeatures v0.2.5 -> v0.2.8
    Updating crossbeam-deque v0.8.2 -> v0.8.3
    Updating crossbeam-epoch v0.9.14 -> v0.9.15
    Updating crossbeam-utils v0.8.14 -> v0.8.16
    Updating ctrlc v3.3.1 -> v3.4.0
    Updating curl-sys v0.4.61+curl-8.0.1 -> v0.4.63+curl-8.1.2
    Updating derive-new v0.5.8 -> v0.5.9
    Updating digest v0.10.6 -> v0.10.7
    Updating dirs-sys v0.3.6 -> v0.3.7
    Updating displaydoc v0.2.3 -> v0.2.4
    Updating dissimilar v1.0.4 -> v1.0.6
    Updating dlmalloc v0.2.3 -> v0.2.4
    Updating either v1.6.0 -> v1.8.1
    Updating elasticlunr-rs v3.0.0 -> v3.0.2
    Updating env_logger v0.9.0 -> v0.9.3
      Adding equivalent v1.0.0
    Updating expect-test v1.4.0 -> v1.4.1
    Updating fastrand v1.8.0 -> v1.9.0
    Updating filetime v0.2.20 -> v0.2.21
    Updating flate2 v1.0.25 -> v1.0.26
    Updating form_urlencoded v1.0.1 -> v1.2.0
    Updating fs-err v2.8.1 -> v2.9.0
    Updating generic-array v0.14.4 -> v0.14.7
    Updating getrandom v0.2.8 -> v0.2.10
    Updating gimli v0.27.2 -> v0.27.3
    Updating glob v0.3.0 -> v0.3.1
    Updating handlebars v4.3.3 -> v4.3.7
    Updating hashbrown v0.13.1 -> v0.13.2
    Updating heck v0.4.0 -> v0.4.1
    Removing hermit-abi v0.3.0
      Adding hermit-abi v0.2.6
      Adding hermit-abi v0.3.1
    Updating hex v0.4.2 -> v0.4.3
    Updating humantime v2.0.1 -> v2.1.0
    Updating iana-time-zone v0.1.56 -> v0.1.57
    Updating idna v0.2.0 -> v0.4.0
    Updating if_chain v1.0.0 -> v1.0.2
      Adding indexmap v2.0.0
    Updating indoc v1.0.6 -> v1.0.9
    Updating io-lifetimes v1.0.3 -> v1.0.11
    Updating js-sys v0.3.61 -> v0.3.64
    Updating libloading v0.7.1 -> v0.7.4
    Updating libz-sys v1.1.8 -> v1.1.9
    Updating linked-hash-map v0.5.4 -> v0.5.6
    Updating linux-raw-sys v0.3.4 -> v0.3.8
    Updating lock_api v0.4.7 -> v0.4.10
    Updating log v0.4.14 -> v0.4.19
    Removing matches v0.1.8
    Updating md-5 v0.10.0 -> v0.10.5
    Updating mdbook v0.4.28 -> v0.4.30
    Updating measureme v10.1.0 -> v10.1.1
    Updating memmap2 v0.2.1 -> v0.2.3
    Removing memoffset v0.8.0
    Updating mime v0.3.16 -> v0.3.17
      Adding miniz_oxide v0.7.1
    Updating nom v7.1.0 -> v7.1.3
      Adding nu-ansi-term v0.46.0
    Removing num-integer v0.1.43
    Updating num-traits v0.2.12 -> v0.2.15
    Updating num_cpus v1.13.1 -> v1.15.0
    Updating object v0.30.1 -> v0.30.4
    Updating once_cell v1.17.1 -> v1.18.0
    Updating openssl-sys v0.9.87 -> v0.9.90
    Updating os_str_bytes v6.0.0 -> v6.5.1
      Adding overload v0.1.1
    Removing parking_lot_core v0.8.5
    Removing parking_lot_core v0.9.4
      Adding parking_lot_core v0.8.6
      Adding parking_lot_core v0.9.8
    Updating percent-encoding v2.1.0 -> v2.3.0
    Updating perf-event-open-sys v1.0.1 -> v3.0.0
    Updating pest v2.5.2 -> v2.7.0
    Updating pest_derive v2.5.2 -> v2.7.0
    Updating pest_generator v2.5.2 -> v2.7.0
    Updating pest_meta v2.5.2 -> v2.7.0
    Updating pin-project-lite v0.2.8 -> v0.2.9
    Updating pkg-config v0.3.25 -> v0.3.27
    Updating ppv-lite86 v0.2.8 -> v0.2.17
    Updating proc-macro-hack v0.5.19 -> v0.5.20+deprecated
    Updating proc-macro2 v1.0.56 -> v1.0.62
    Updating quote v1.0.26 -> v1.0.28
    Updating rand_chacha v0.3.0 -> v0.3.1
    Updating rayon v1.5.3 -> v1.7.0
    Updating rayon-core v1.9.3 -> v1.11.0
    Updating redox_syscall v0.2.10 -> v0.2.16
    Updating redox_users v0.4.0 -> v0.4.3
    Updating regex v1.5.6 -> v1.8.4
    Removing regex-syntax v0.6.26
    Removing regex-syntax v0.7.1
      Adding regex-syntax v0.6.29
      Adding regex-syntax v0.7.2
    Updating rustc-demangle v0.1.21 -> v0.1.23
    Updating rustix v0.37.7 -> v0.37.20
    Updating rustversion v1.0.5 -> v1.0.12
    Updating ryu v1.0.5 -> v1.0.13
    Updating schannel v0.1.19 -> v0.1.21
    Updating scoped-tls v1.0.0 -> v1.0.1
    Updating semver v1.0.12 -> v1.0.17
    Updating serde v1.0.160 -> v1.0.164
    Updating serde_derive v1.0.160 -> v1.0.164
    Updating serde_json v1.0.85 -> v1.0.99
    Updating serde_spanned v0.6.2 -> v0.6.3
    Updating sha2 v0.10.6 -> v0.10.7
    Updating sharded-slab v0.1.1 -> v0.1.4
    Updating shlex v1.0.0 -> v1.1.0
    Updating siphasher v0.3.3 -> v0.3.10
    Updating slab v0.4.2 -> v0.4.8
    Updating socket2 v0.4.1 -> v0.4.9
    Updating string_cache v0.8.3 -> v0.8.7
    Removing syn v1.0.102
    Removing syn v2.0.8
      Adding syn v1.0.109
      Adding syn v2.0.22
    Updating tempfile v3.5.0 -> v3.6.0
    Updating termcolor v1.1.3 -> v1.2.0
    Updating tester v0.9.0 -> v0.9.1
    Updating textwrap v0.15.0 -> v0.16.0
    Updating thread_local v1.1.4 -> v1.1.7
    Updating tinyvec_macros v0.1.0 -> v0.1.1
    Removing toml v0.5.7
    Removing toml v0.7.4
      Adding toml v0.5.11
      Adding toml v0.7.5
    Updating toml_datetime v0.6.2 -> v0.6.3
    Updating toml_edit v0.19.10 -> v0.19.11
    Updating tracing v0.1.35 -> v0.1.37
    Updating tracing-attributes v0.1.22 -> v0.1.26
    Updating tracing-core v0.1.28 -> v0.1.31
    Updating tracing-log v0.1.2 -> v0.1.3
    Updating tracing-subscriber v0.3.3 -> v0.3.17
    Updating tracing-tree v0.2.0 -> v0.2.3
    Updating ucd-parse v0.1.8 -> v0.1.10
    Updating unicode-bidi v0.3.4 -> v0.3.13
    Updating unicode-ident v1.0.5 -> v1.0.9
    Updating unicode-segmentation v1.10.0 -> v1.10.1
    Updating url v2.2.2 -> v2.4.0
    Updating utf-8 v0.7.5 -> v0.7.6
    Updating uuid v1.3.1 -> v1.3.4
    Updating vcpkg v0.2.10 -> v0.2.15
    Updating walkdir v2.3.2 -> v2.3.3
    Updating wasm-bindgen v0.2.84 -> v0.2.87
    Updating wasm-bindgen-backend v0.2.84 -> v0.2.87
    Updating wasm-bindgen-macro v0.2.84 -> v0.2.87
    Updating wasm-bindgen-macro-support v0.2.84 -> v0.2.87
    Updating wasm-bindgen-shared v0.2.84 -> v0.2.87
    Removing windows-sys v0.45.0
    Removing windows-targets v0.42.2
    Updating winnow v0.4.6 -> v0.4.7
    Updating writeable v0.5.1 -> v0.5.2
    Updating xattr v0.2.2 -> v0.2.3
    Updating yaml-rust v0.4.4 -> v0.4.5
    Updating yoke-derive v0.7.0 -> v0.7.1
    Updating zerofrom v0.1.1 -> v0.1.2
    Updating zerofrom-derive v0.1.1 -> v0.1.2
    Updating zerovec-derive v0.9.3 -> v0.9.4

    Removing ahash v0.7.4
    Removing ahash v0.8.2
      Adding ahash v0.7.6
      Adding ahash v0.8.3
    Removing aho-corasick v0.7.18
      Adding aho-corasick v0.7.20
      Adding aho-corasick v1.0.2
    Updating allocator-api2 v0.2.14 -> v0.2.15
    Updating ammonia v3.2.0 -> v3.3.0
      Adding android-tzdata v0.1.1
    Removing ansi_term v0.12.1
    Updating anstream v0.2.6 -> v0.3.2
    Updating anstyle v0.3.5 -> v1.0.1
    Updating anstyle-parse v0.1.1 -> v0.2.1
      Adding anstyle-query v1.0.0
    Updating anstyle-wincon v0.2.0 -> v1.0.1
    Updating anyhow v1.0.65 -> v1.0.71
    Updating arrayvec v0.7.0 -> v0.7.4
    Updating block-buffer v0.10.2 -> v0.10.4
    Updating bstr v1.3.0 -> v1.5.0
    Updating bytecount v0.6.2 -> v0.6.3
    Updating bytes v1.0.1 -> v1.4.0
    Updating camino v1.0.9 -> v1.1.4
    Updating chrono v0.4.24 -> v0.4.26
    Removing clap v3.2.20
    Removing clap v4.2.1
      Adding clap v3.2.25
      Adding clap v4.3.8
    Updating clap_builder v4.2.1 -> v4.3.8
    Updating clap_complete v4.0.7 -> v4.3.1
    Removing clap_derive v3.2.18
    Removing clap_derive v4.2.0
      Adding clap_derive v3.2.25
      Adding clap_derive v4.3.2
    Removing clap_lex v0.2.2
    Removing clap_lex v0.4.1
      Adding clap_lex v0.2.4
      Adding clap_lex v0.5.0
      Adding colorchoice v1.0.0
    Updating compiler_builtins v0.1.92 -> v0.1.93
    Updating compiletest_rs v0.10.0 -> v0.10.2
    Removing concolor-override v1.0.0
    Removing concolor-query v0.3.3
    Updating cpufeatures v0.2.5 -> v0.2.8
    Updating crossbeam-deque v0.8.2 -> v0.8.3
    Updating crossbeam-epoch v0.9.14 -> v0.9.15
    Updating crossbeam-utils v0.8.14 -> v0.8.16
    Updating ctrlc v3.3.1 -> v3.4.0
    Updating curl-sys v0.4.61+curl-8.0.1 -> v0.4.63+curl-8.1.2
    Updating derive-new v0.5.8 -> v0.5.9
    Updating digest v0.10.6 -> v0.10.7
    Updating dirs-sys v0.3.6 -> v0.3.7
    Updating displaydoc v0.2.3 -> v0.2.4
    Updating dissimilar v1.0.4 -> v1.0.6
    Updating dlmalloc v0.2.3 -> v0.2.4
    Updating either v1.6.0 -> v1.8.1
    Updating elasticlunr-rs v3.0.0 -> v3.0.2
    Updating env_logger v0.9.0 -> v0.9.3
      Adding equivalent v1.0.0
    Updating expect-test v1.4.0 -> v1.4.1
    Updating fastrand v1.8.0 -> v1.9.0
    Updating filetime v0.2.20 -> v0.2.21
    Updating flate2 v1.0.25 -> v1.0.26
    Updating form_urlencoded v1.0.1 -> v1.2.0
    Updating fs-err v2.8.1 -> v2.9.0
    Updating generic-array v0.14.4 -> v0.14.7
    Updating getrandom v0.2.8 -> v0.2.10
    Updating gimli v0.27.2 -> v0.27.3
    Updating glob v0.3.0 -> v0.3.1
    Updating handlebars v4.3.3 -> v4.3.7
    Updating hashbrown v0.13.1 -> v0.13.2
    Updating heck v0.4.0 -> v0.4.1
    Removing hermit-abi v0.3.0
      Adding hermit-abi v0.2.6
      Adding hermit-abi v0.3.1
    Updating hex v0.4.2 -> v0.4.3
    Updating humantime v2.0.1 -> v2.1.0
    Updating iana-time-zone v0.1.56 -> v0.1.57
    Updating idna v0.2.0 -> v0.4.0
    Updating if_chain v1.0.0 -> v1.0.2
      Adding indexmap v2.0.0
    Updating indoc v1.0.6 -> v1.0.9
    Updating io-lifetimes v1.0.3 -> v1.0.11
    Updating js-sys v0.3.61 -> v0.3.64
    Updating libloading v0.7.1 -> v0.7.4
    Updating libz-sys v1.1.8 -> v1.1.9
    Updating linked-hash-map v0.5.4 -> v0.5.6
    Updating linux-raw-sys v0.3.4 -> v0.3.8
    Updating lock_api v0.4.7 -> v0.4.10
    Updating log v0.4.14 -> v0.4.19
    Removing matches v0.1.8
    Updating md-5 v0.10.0 -> v0.10.5
    Updating mdbook v0.4.28 -> v0.4.30
    Updating measureme v10.1.0 -> v10.1.1
    Updating memmap2 v0.2.1 -> v0.2.3
    Removing memoffset v0.8.0
    Updating mime v0.3.16 -> v0.3.17
      Adding miniz_oxide v0.7.1
    Updating nom v7.1.0 -> v7.1.3
      Adding nu-ansi-term v0.46.0
    Removing num-integer v0.1.43
    Updating num-traits v0.2.12 -> v0.2.15
    Updating num_cpus v1.13.1 -> v1.15.0
    Updating object v0.30.1 -> v0.30.4
    Updating once_cell v1.17.1 -> v1.18.0
    Updating openssl-sys v0.9.87 -> v0.9.90
    Updating os_str_bytes v6.0.0 -> v6.5.1
      Adding overload v0.1.1
    Removing parking_lot_core v0.8.5
    Removing parking_lot_core v0.9.4
      Adding parking_lot_core v0.8.6
      Adding parking_lot_core v0.9.8
    Updating percent-encoding v2.1.0 -> v2.3.0
    Updating perf-event-open-sys v1.0.1 -> v3.0.0
    Updating pest v2.5.2 -> v2.7.0
    Updating pest_derive v2.5.2 -> v2.7.0
    Updating pest_generator v2.5.2 -> v2.7.0
    Updating pest_meta v2.5.2 -> v2.7.0
    Updating pin-project-lite v0.2.8 -> v0.2.9
    Updating pkg-config v0.3.25 -> v0.3.27
    Updating ppv-lite86 v0.2.8 -> v0.2.17
    Updating proc-macro-hack v0.5.19 -> v0.5.20+deprecated
    Updating proc-macro2 v1.0.56 -> v1.0.62
    Updating quote v1.0.26 -> v1.0.28
    Updating rand_chacha v0.3.0 -> v0.3.1
    Updating rayon v1.5.3 -> v1.7.0
    Updating rayon-core v1.9.3 -> v1.11.0
    Updating redox_syscall v0.2.10 -> v0.2.16
    Updating redox_users v0.4.0 -> v0.4.3
    Updating regex v1.5.6 -> v1.8.4
    Removing regex-syntax v0.6.26
    Removing regex-syntax v0.7.1
      Adding regex-syntax v0.6.29
      Adding regex-syntax v0.7.2
    Updating rustc-demangle v0.1.21 -> v0.1.23
    Updating rustix v0.37.7 -> v0.37.20
    Updating rustversion v1.0.5 -> v1.0.12
    Updating ryu v1.0.5 -> v1.0.13
    Updating schannel v0.1.19 -> v0.1.21
    Updating scoped-tls v1.0.0 -> v1.0.1
    Updating semver v1.0.12 -> v1.0.17
    Updating serde v1.0.160 -> v1.0.164
    Updating serde_derive v1.0.160 -> v1.0.164
    Updating serde_json v1.0.85 -> v1.0.99
    Updating serde_spanned v0.6.2 -> v0.6.3
    Updating sha2 v0.10.6 -> v0.10.7
    Updating sharded-slab v0.1.1 -> v0.1.4
    Updating shlex v1.0.0 -> v1.1.0
    Updating siphasher v0.3.3 -> v0.3.10
    Updating slab v0.4.2 -> v0.4.8
    Updating socket2 v0.4.1 -> v0.4.9
    Updating string_cache v0.8.3 -> v0.8.7
    Removing syn v1.0.102
    Removing syn v2.0.8
      Adding syn v1.0.109
      Adding syn v2.0.22
    Updating tempfile v3.5.0 -> v3.6.0
    Updating termcolor v1.1.3 -> v1.2.0
    Updating tester v0.9.0 -> v0.9.1
    Updating textwrap v0.15.0 -> v0.16.0
    Updating thread_local v1.1.4 -> v1.1.7
    Updating tinyvec_macros v0.1.0 -> v0.1.1
    Removing toml v0.5.7
    Removing toml v0.7.4
      Adding toml v0.5.11
      Adding toml v0.7.5
    Updating toml_datetime v0.6.2 -> v0.6.3
    Updating toml_edit v0.19.10 -> v0.19.11
    Updating tracing v0.1.35 -> v0.1.37
    Updating tracing-attributes v0.1.22 -> v0.1.26
    Updating tracing-core v0.1.28 -> v0.1.31
    Updating tracing-log v0.1.2 -> v0.1.3
    Updating tracing-subscriber v0.3.3 -> v0.3.17
    Updating tracing-tree v0.2.0 -> v0.2.3
    Updating ucd-parse v0.1.8 -> v0.1.10
    Updating unicode-bidi v0.3.4 -> v0.3.13
    Updating unicode-ident v1.0.5 -> v1.0.9
    Updating unicode-segmentation v1.10.0 -> v1.10.1
    Updating url v2.2.2 -> v2.4.0
    Updating utf-8 v0.7.5 -> v0.7.6
    Updating uuid v1.3.1 -> v1.3.4
    Updating vcpkg v0.2.10 -> v0.2.15
    Updating walkdir v2.3.2 -> v2.3.3
    Updating wasm-bindgen v0.2.84 -> v0.2.87
    Updating wasm-bindgen-backend v0.2.84 -> v0.2.87
    Updating wasm-bindgen-macro v0.2.84 -> v0.2.87
    Updating wasm-bindgen-macro-support v0.2.84 -> v0.2.87
    Updating wasm-bindgen-shared v0.2.84 -> v0.2.87
    Removing windows-sys v0.45.0
    Removing windows-targets v0.42.2
    Updating winnow v0.4.6 -> v0.4.7
    Updating writeable v0.5.1 -> v0.5.2
    Updating xattr v0.2.2 -> v0.2.3
    Updating yaml-rust v0.4.4 -> v0.4.5
    Updating yoke-derive v0.7.0 -> v0.7.1
    Updating zerofrom v0.1.1 -> v0.1.2
    Updating zerofrom-derive v0.1.1 -> v0.1.2
    Updating zerovec-derive v0.9.3 -> v0.9.4
nnethercote pushed a commit that referenced this pull request Sep 4, 2023
…=xFrednet

Fix tuple_array_conversions lint on nightly

```
changelog: ICE: [`tuple_array_conversions`]: Don't expect array length to always be usize
```

tl;dr: changed [`Const::eval_target_usize`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/consts.rs#L359) to [`Consts::try_eval_target_usize`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/consts.rs#L327) to get rid of ICE.

I have encountered a problem with clippy: it caught ICE when working with a codebase that uses a lot of nightly features.
Here's a (stripped) ICE info:

```
error: internal compiler error: /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/compiler/rustc_middle/src/ty/consts.rs:361:32: expected usize, got Const { ty: usize, kind: N/#1 }

thread 'rustc' panicked at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/compiler/rustc_errors/src/lib.rs:1635:9:
Box<dyn Any>
stack backtrace:
...
  16:        0x110b9c590 - rustc_middle[449edf845976488d]::util::bug::bug_fmt
  17:        0x102f76ae0 - clippy_lints[71754038dd04c2d2]::tuple_array_conversions::all_bindings_are_for_conv
...
```

I don't really know what's going on low-level-wise, but seems like this lin assumed that the length of the array can always be treated as `usize`, and *I assume* this doesn't play well with `feat(generic_const_exprs)`.

I wasn't able to build a minimal reproducible example, but locally this fix does resolve the issue.
nnethercote pushed a commit that referenced this pull request Sep 28, 2023
Make `TyKind::Adt`'s `Debug` impl be more pretty

Currently `{:?}` on `Ty` for a `TyKind::Adt` would print as `Adt(Foo, [])`. This PR changes it to be `Foo` when there are no generics or `Foo<T>`/`Foo<T, U>` when there _are_ generics. Example from debug log:
`├─0ms DEBUG rustc_hir_analysis::astconv return=Bar<T/#0, U/#1>`

I should have done this in my initial PR for a prettier TyKind: Debug impl but I thought I would need to be accessing generics_of to figure out where in the "path" the generics would have to go??? but no, adts literally only have a single place the generics can go (on the end). Feel a bit silly about this :)

r? `@oli-obk`
nnethercote pushed a commit that referenced this pull request Dec 6, 2023
Change prefetch to avoid deadlock

Was abled to reproduce the deadlock in rust-lang#118205 and created a coredump when it happen. When looking at the backtraces  I noticed that the prefetch of exported_symbols (Thread 17 frame 4) started after the "actual" exported_symbols (Thread 2 frame 18) but it also is working on some of the collect_crate_mono_items (Thread 17 frame12 ) that Thread 2 is blocked on resulting in a deadlock.

This PR results in less parallell work that can be done at the same time but from what I can find we do not call the query exported_symbols from multiple places in the same join call any more.

```
Thread 17 (Thread 0x7f87b6299700 (LWP 11370)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f87be5166a9 in <parking_lot::condvar::Condvar>::wait_until_internal () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#2  0x00007f87be12d854 in <rustc_query_system::query::job::QueryLatch>::wait_on () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#3  0x00007f87bd27d16f in rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::CrateNum, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#4  0x00007f87bd0b5b6a in rustc_query_impl::query_impl::exported_symbols::get_query_non_incr::__rust_end_short_backtrace () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#5  0x00007f87bdaebb0a in rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#1} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#6  0x00007f87bdae1509 in rayon_core::join::join_context::call_b::<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#1}, (), &[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>::{closure#0}::{closure#1}>::{closure#0}>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#7  0x00007f87bdae32ff in <rayon_core::job::StackJob<rayon_core::latch::SpinLatch, rayon_core::join::join_context::call_b<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#1}, (), &[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>::{closure#0}::{closure#1}>::{closure#0}>::{closure#0}, core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>> as rayon_core::job::Job>::execute () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#8  0x00007f87b8338823 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#9  0x00007f87bc2edbaf in rayon_core::join::join_context::<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#10 0x00007f87bc2ed313 in rayon_core::registry::in_worker::<rayon_core::join::join_context<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0}, ((), ())> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#11 0x00007f87bc2db2a4 in rayon::iter::plumbing::bridge_producer_consumer::helper::<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#12 0x00007f87bc2eead2 in <rayon_core::job::StackJob<rayon_core::latch::SpinLatch, rayon_core::join::join_context::call_b<(), rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}>::{closure#0}, ()> as rayon_core::job::Job>::execute () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#13 0x00007f87b8338823 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#14 0x00007f87be52d1f9 in <rayon_core::registry::ThreadBuilder>::run () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#15 0x00007f87b8461c57 in <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}, ()> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#16 0x00007f87b846e465 in rustc_span::set_session_globals_then::<(), rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#17 0x00007f87b844f282 in <<crossbeam_utils::thread::ScopedThreadBuilder>::spawn<<rayon_core::ThreadPoolBuilder>::build_scoped<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}, rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#1}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}::{closure#0}, ()>::{closure#0} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#18 0x00007f87b846af58 in <<std::thread::Builder>::spawn_unchecked_<alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output = ()> + core::marker::Send>, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#19 0x00007f87b7898e85 in std::sys::unix::thread::Thread::new::thread_start () from /home/andjo403/.rustup/toolchains/stage1/lib/libstd-d570b0650d35d951.so
rust-lang#20 0x00007f87b7615609 in start_thread (arg=<optimized out>) at pthread_create.c:477
rust-lang#21 0x00007f87b7755133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f87b729b700 (LWP 11368)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f87b7887b51 in std::sys::unix::locks::futex_condvar::Condvar::wait () from /home/andjo403/.rustup/toolchains/stage1/lib/libstd-d570b0650d35d951.so
rust-lang#2  0x00007f87b8339478 in <rayon_core::sleep::Sleep>::sleep () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#3  0x00007f87b83387c3 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#4  0x00007f87bc2edbaf in rayon_core::join::join_context::<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#5  0x00007f87bc2ed313 in rayon_core::registry::in_worker::<rayon_core::join::join_context<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0}, ((), ())> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#6  0x00007f87bc2db50c in <rayon::vec::IntoIter<rustc_middle::mir::mono::MonoItem> as rayon::iter::ParallelIterator>::for_each::<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#7  0x00007f87bc2e8cd7 in <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#8  0x00007f87bc2b8f2c in rustc_monomorphize::collector::collect_crate_mono_items () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#9  0x00007f87bc2c30d9 in rustc_monomorphize::partitioning::collect_and_partition_mono_items () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#10 0x00007f87bcf2cde6 in rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 24]>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#11 0x00007f87bd156a3c in <rustc_query_impl::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, ())>>::call_once () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#12 0x00007f87bd1c6a7d in rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#13 0x00007f87bd15df40 in rustc_query_impl::query_impl::collect_and_partition_mono_items::get_query_non_incr::__rust_end_short_backtrace () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#14 0x00007f87bd7a0ad9 in rustc_codegen_ssa::back::symbol_export::exported_symbols_provider_local () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#15 0x00007f87bcf29acb in rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::exported_symbols::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#16 0x00007f87bcfdb350 in <rustc_query_impl::query_impl::exported_symbols::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::CrateNum)>>::call_once () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#17 0x00007f87bd27d64f in rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::CrateNum, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#18 0x00007f87bd0b5b6a in rustc_query_impl::query_impl::exported_symbols::get_query_non_incr::__rust_end_short_backtrace () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#19 0x00007f87bda927ce in rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::VecCache<rustc_span::def_id::CrateNum, rustc_middle::query::erase::Erased<[u8; 16]>>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#20 0x00007f87bda9c93f in <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#21 0x00007f87bdaa6ef7 in rustc_metadata::rmeta::encoder::encode_metadata_impl () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#22 0x00007f87bdae0b77 in rayon_core::join::join_context::<rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#0}>::{closure#0}, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#1}>::{closure#0}, core::option::Option<rustc_data_structures::marker::FromDyn<()>>, core::option::Option<rustc_data_structures::marker::FromDyn<()>>>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#23 0x00007f87bdaded2f in rayon_core::registry::in_worker::<rayon_core::join::join_context<rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#0}>::{closure#0}, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#1}>::{closure#0}, core::option::Option<rustc_data_structures::marker::FromDyn<()>>, core::option::Option<rustc_data_structures::marker::FromDyn<()>>>::{closure#0}, (core::option::Option<rustc_data_structures::marker::FromDyn<()>>, core::option::Option<rustc_data_structures::marker::FromDyn<()>>)> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#24 0x00007f87bdaa5a03 in rustc_metadata::rmeta::encoder::encode_metadata () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#25 0x00007f87bdaed628 in rustc_metadata::fs::encode_and_write_metadata () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#26 0x00007f87b86608be in rustc_interface::passes::start_codegen () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#27 0x00007f87b8664946 in <rustc_middle::ty::context::GlobalCtxt>::enter::<<rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#28 0x00007f87b864db00 in <rustc_interface::queries::Queries>::codegen_and_build_linker () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#29 0x00007f87b849400f in <rustc_interface::interface::Compiler>::enter::<rustc_driver_impl::run_compiler::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#30 0x00007f87b846e067 in rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#31 0x00007f87b844dc13 in <rayon_core::thread_pool::ThreadPool>::install::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#32 0x00007f87b84509a1 in <rayon_core::job::StackJob<rayon_core::latch::LatchRef<rayon_core::latch::LockLatch>, <rayon_core::registry::Registry>::in_worker_cold<<rayon_core::thread_pool::ThreadPool>::install<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>> as rayon_core::job::Job>::execute () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#33 0x00007f87b8338823 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#34 0x00007f87be52d1f9 in <rayon_core::registry::ThreadBuilder>::run () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#35 0x00007f87b8461c57 in <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}, ()> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#36 0x00007f87b846e465 in rustc_span::set_session_globals_then::<(), rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#37 0x00007f87b844f282 in <<crossbeam_utils::thread::ScopedThreadBuilder>::spawn<<rayon_core::ThreadPoolBuilder>::build_scoped<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}, rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#1}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}::{closure#0}, ()>::{closure#0} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#38 0x00007f87b846af58 in <<std::thread::Builder>::spawn_unchecked_<alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output = ()> + core::marker::Send>, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so
rust-lang#39 0x00007f87b7898e85 in std::sys::unix::thread::Thread::new::thread_start () from /home/andjo403/.rustup/toolchains/stage1/lib/libstd-d570b0650d35d951.so
rust-lang#40 0x00007f87b7615609 in start_thread (arg=<optimized out>) at pthread_create.c:477
rust-lang#41 0x00007f87b7755133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

```

fixes rust-lang#118205
fixes rust-lang#117759 from the latest logs it is the same query map as in rust-lang#118205
fixes rust-lang#118529
fixes rust-lang#117784
cc rust-lang#118206

r? `@SparrowLii`
nnethercote pushed a commit that referenced this pull request May 19, 2024
…r=Mark-Simulacrum

lldb-formatters: Use StdSliceSyntheticProvider for &str

&str has associated summary provider which correctly displays string values in debugger, but while working on rust-lang#124458 I've noticed that a &str inside an enum displays a blob of memory until a 0 is reached (as a c-string) which makes a very bizarre experience when debugging

However there is already StdSliceSyntheticProvider which we use for other slices. This PR enables the same synthetic provider to be used for &str, however the summary provider is still fixed to return the string value

I've added a test `debuginfo/strings-and-strs.rs` which prior to this PR would output the following in LLDB:
```
* thread #1, name = 'a', stop reason = breakpoint 1.1
    frame #0: 0x0000555555556383 a`strings_and_strs::main::h1d2b5f9227b8767d at strings-and-strs.rs:47:5
   44  	    let plain_str = "Hello";
   45  	    let str_in_struct = Foo { inner: "Hello" };
   46  	    let str_in_tuple = ("Hello", "World");
-> 47  	    zzz(); // #break
   48  	}
   49
   50  	fn zzz() {
(lldb) frame var
(alloc::string::String) plain_string = "Hello" {
  vec = size=5 {
    [0] = 'H'
    [1] = 'e'
    [2] = 'l'
    [3] = 'l'
    [4] = 'o'
  }
}
(&str) plain_str = "Hello" {
  data_ptr = 0x0000555555557263 "HelloWorld\U00000001gdb_load_rust_pretty_printers.py"
  length = 5
}
(strings_and_strs::Foo) str_in_struct = {
  inner = "Hello" {
    data_ptr = 0x0000555555557263 "HelloWorld\U00000001gdb_load_rust_pretty_printers.py"
    length = 5
  }
}
((&str, &str)) str_in_tuple = {
  0 = "Hello" {
    data_ptr = 0x0000555555557263 "HelloWorld\U00000001gdb_load_rust_pretty_printers.py"
    length = 5
  }
  1 = "World" {
    data_ptr = 0x0000555555557268 "World\U00000001gdb_load_rust_pretty_printers.py"
    length = 5
  }
}
```
After this PR it would look the following way:

```
* thread #1, name = 'a', stop reason = breakpoint 1.1
    frame #0: 0x0000555555556383 a`strings_and_strs::main::h1d2b5f9227b8767d at strings-and-strs.rs:47:5
   44  	    let plain_str = "Hello";
   45  	    let str_in_struct = Foo { inner: "Hello" };
   46  	    let str_in_tuple = ("Hello", "World");
-> 47  	    zzz(); // #break
   48  	}
   49
   50  	fn zzz() {
(lldb) frame var
(alloc::string::String) plain_string = "Hello" {
  vec = size=5 {
    [0] = 'H'
    [1] = 'e'
    [2] = 'l'
    [3] = 'l'
    [4] = 'o'
  }
}
(&str) plain_str = "Hello" {
  [0] = 'H'
  [1] = 'e'
  [2] = 'l'
  [3] = 'l'
  [4] = 'o'
}
(strings_and_strs::Foo) str_in_struct = {
  inner = "Hello" {
    [0] = 'H'
    [1] = 'e'
    [2] = 'l'
    [3] = 'l'
    [4] = 'o'
  }
}
((&str, &str)) str_in_tuple = {
  0 = "Hello" {
    [0] = 'H'
    [1] = 'e'
    [2] = 'l'
    [3] = 'l'
    [4] = 'o'
  }
  1 = "World" {
    [0] = 'W'
    [1] = 'o'
    [2] = 'r'
    [3] = 'l'
    [4] = 'd'
  }
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
0 participants