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

WIP: stability annotations on generic parameters #65083

Closed
wants to merge 14 commits into from

Conversation

Avi-D-coder
Copy link
Contributor

This will be a fix to wg-allocators #2.
I'm currently trying to figure out why src/test/ui/stability-attribute/stability-attribute-generic.rs does not produce the desired error.

@rust-highfive
Copy link
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @eddyb (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

Please see the contribution instructions for more information.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 4, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 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-04T03:18:47.3544280Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-04T03:18:47.3782812Z ##[command]git config gc.auto 0
2019-10-04T03:18:47.3850722Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-04T03:18:47.3913824Z ##[command]git config --get-all http.proxy
2019-10-04T03:18:47.4074713Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65083/merge:refs/remotes/pull/65083/merge
---
2019-10-04T04:23:54.3779905Z .................................................................................................... 1500/9100
2019-10-04T04:24:01.6807161Z .................................................................................................... 1600/9100
2019-10-04T04:24:11.2486455Z .................................................................................................... 1700/9100
2019-10-04T04:24:21.1027572Z .......i...............i............................................................................ 1800/9100
2019-10-04T04:24:28.5643376Z ..................................................................................................ii 1900/9100
2019-10-04T04:24:45.9809265Z iii................................................................................................. 2000/9100
2019-10-04T04:24:55.4449557Z .................................................................................................... 2200/9100
2019-10-04T04:24:58.2739578Z .................................................................................................... 2300/9100
2019-10-04T04:25:04.9429032Z .................................................................................................... 2400/9100
2019-10-04T04:25:10.9601797Z .................................................................................................... 2500/9100
---
2019-10-04T04:28:15.1728095Z .....................................................................................i.............. 4700/9100
2019-10-04T04:28:23.7028758Z .i.................................................................................................. 4800/9100
2019-10-04T04:28:34.7052595Z .................................................................................................... 4900/9100
2019-10-04T04:28:40.7874135Z .................................................................................................... 5000/9100
2019-10-04T04:28:53.5029517Z .............................................................................ii.ii.................. 5100/9100
2019-10-04T04:29:03.7087173Z .................................................................................................... 5300/9100
2019-10-04T04:29:14.1003776Z .................................................................................................... 5400/9100
2019-10-04T04:29:21.5440129Z ...........................................i........................................................ 5500/9100
2019-10-04T04:29:28.7397910Z .................................................................................................... 5600/9100
2019-10-04T04:29:28.7397910Z .................................................................................................... 5600/9100
2019-10-04T04:29:40.1002423Z .................................................................................................... 5700/9100
2019-10-04T04:29:48.1979895Z ........................................ii...i..ii............i..................................... 5800/9100
2019-10-04T04:30:15.2084067Z .................................................................................................... 6000/9100
2019-10-04T04:30:25.0017978Z .................................................................................................... 6100/9100
2019-10-04T04:30:25.0017978Z .................................................................................................... 6100/9100
2019-10-04T04:30:41.3540228Z .............................................i..ii.................................................. 6200/9100
2019-10-04T04:31:04.8277124Z .................................................................................................... 6400/9100
2019-10-04T04:31:07.1998069Z .....i.............................................................................................. 6500/9100
2019-10-04T04:31:09.5436008Z .............................................................................i...................... 6600/9100
2019-10-04T04:31:12.5170983Z .................................................................................................... 6700/9100
---
2019-10-04T04:35:34.7824359Z ---- [ui] ui/stability-attribute/stability-attribute-generic.rs stdout ----
2019-10-04T04:35:34.7824747Z 
2019-10-04T04:35:34.7824988Z error: ui test compiled successfully!
2019-10-04T04:35:34.7825131Z status: exit code: 0
2019-10-04T04:35:34.7826567Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/stability-attribute/stability-attribute-generic.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/stability-attribute/stability-attribute-generic" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/stability-attribute/stability-attribute-generic/auxiliary" "-A" "unused"
2019-10-04T04:35:34.7828039Z ------------------------------------------
2019-10-04T04:35:34.7828366Z 
2019-10-04T04:35:34.7828765Z ------------------------------------------
2019-10-04T04:35:34.7828955Z stderr:
---
2019-10-04T04:35:34.7830703Z diff of stderr:
2019-10-04T04:35:34.7830823Z 
2019-10-04T04:35:34.7830959Z 107    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-10-04T04:35:34.7831105Z 108 
2019-10-04T04:35:34.7831236Z 109 error: This stability annotation is useless
2019-10-04T04:35:34.7831657Z -   --> /home/host/Public/rust/src/test/ui/stability-attribute/stability-attribute-sanity.rs:76:9
2019-10-04T04:35:34.7832072Z +   --> $DIR/stability-attribute-sanity.rs:76:9
2019-10-04T04:35:34.7832246Z 111    |
2019-10-04T04:35:34.7832611Z - LL |         T> { //~ ERROR This stability annotation is useless
2019-10-04T04:35:34.7832802Z + LL |         T> {
2019-10-04T04:35:34.7833295Z 114 
2019-10-04T04:35:34.7833493Z 115 error: aborting due to 19 previous errors
2019-10-04T04:35:34.7833607Z 
2019-10-04T04:35:34.7833717Z 
2019-10-04T04:35:34.7833717Z 
2019-10-04T04:35:34.7833865Z The actual stderr differed from the expected stderr.
2019-10-04T04:35:34.7834379Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/stability-attribute/stability-attribute-sanity/stability-attribute-sanity.stderr
2019-10-04T04:35:34.7834830Z To update references, rerun the tests and pass the `--bless` flag
2019-10-04T04:35:34.7835286Z To only update this specific test, also pass `--test-args stability-attribute/stability-attribute-sanity.rs`
2019-10-04T04:35:34.7835789Z error: 1 errors occurred comparing output.
2019-10-04T04:35:34.7835920Z status: exit code: 1
2019-10-04T04:35:34.7835920Z status: exit code: 1
2019-10-04T04:35:34.7836876Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/stability-attribute/stability-attribute-sanity" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/stability-attribute/stability-attribute-sanity/auxiliary" "-A" "unused"
2019-10-04T04:35:34.7837786Z ------------------------------------------
2019-10-04T04:35:34.7838031Z 
2019-10-04T04:35:34.7838770Z ------------------------------------------
2019-10-04T04:35:34.7839028Z stderr:
2019-10-04T04:35:34.7839028Z stderr:
2019-10-04T04:35:34.7839386Z ------------------------------------------
2019-10-04T04:35:34.7839783Z error[E0541]: unknown meta item 'reason'
2019-10-04T04:35:34.7840404Z    |
2019-10-04T04:35:34.7840404Z    |
2019-10-04T04:35:34.7840828Z LL |     #[stable(feature = "a", since = "b", reason)] //~ ERROR unknown meta item 'reason' [E0541]
2019-10-04T04:35:34.7841036Z    |                                          ^^^^^^ expected one of `since`, `note`
2019-10-04T04:35:34.7841151Z 
2019-10-04T04:35:34.7841284Z error[E0539]: incorrect meta item
2019-10-04T04:35:34.7841865Z    |
2019-10-04T04:35:34.7841865Z    |
2019-10-04T04:35:34.7842002Z LL |     #[stable(feature = "a", since)] //~ ERROR incorrect meta item [E0539]
2019-10-04T04:35:34.7842276Z 
2019-10-04T04:35:34.7842276Z 
2019-10-04T04:35:34.7842406Z error[E0539]: incorrect meta item
2019-10-04T04:35:34.7842981Z    |
2019-10-04T04:35:34.7842981Z    |
2019-10-04T04:35:34.7843135Z LL |     #[stable(feature, since = "a")] //~ ERROR incorrect meta item [E0539]
2019-10-04T04:35:34.7843386Z 
2019-10-04T04:35:34.7843386Z 
2019-10-04T04:35:34.7843517Z error[E0539]: incorrect meta item
2019-10-04T04:35:34.7844496Z    |
2019-10-04T04:35:34.7844496Z    |
2019-10-04T04:35:34.7844777Z LL |     #[stable(feature = "a", since(b))] //~ ERROR incorrect meta item [E0539]
2019-10-04T04:35:34.7845445Z 
2019-10-04T04:35:34.7845445Z 
2019-10-04T04:35:34.7845668Z error[E0539]: incorrect meta item
2019-10-04T04:35:34.7847225Z    |
2019-10-04T04:35:34.7847225Z    |
2019-10-04T04:35:34.7847544Z LL |     #[stable(feature(b), since = "a")] //~ ERROR incorrect meta item [E0539]
2019-10-04T04:35:34.7847625Z 
2019-10-04T04:35:34.7847979Z error[E0546]: missing 'feature'
2019-10-04T04:35:34.7848415Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:25:5
2019-10-04T04:35:34.7848481Z    |
2019-10-04T04:35:34.7848481Z    |
2019-10-04T04:35:34.7848789Z LL |     #[unstable(issue = "0")] //~ ERROR missing 'feature' [E0546]
2019-10-04T04:35:34.7848870Z 
2019-10-04T04:35:34.7849077Z error[E0547]: missing 'issue'
2019-10-04T04:35:34.7849347Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:28:5
2019-10-04T04:35:34.7849395Z    |
2019-10-04T04:35:34.7849395Z    |
2019-10-04T04:35:34.7849632Z LL |     #[unstable(feature = "b")] //~ ERROR missing 'issue' [E0547]
2019-10-04T04:35:34.7849838Z 
2019-10-04T04:35:34.7850078Z error[E0546]: missing 'feature'
2019-10-04T04:35:34.7850333Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:31:5
2019-10-04T04:35:34.7850399Z    |
2019-10-04T04:35:34.7850399Z    |
2019-10-04T04:35:34.7850636Z LL |     #[stable(since = "a")] //~ ERROR missing 'feature' [E0546]
2019-10-04T04:35:34.7850741Z 
2019-10-04T04:35:34.7850741Z 
2019-10-04T04:35:34.7850948Z error[E0542]: missing 'since'
2019-10-04T04:35:34.7851250Z    |
2019-10-04T04:35:34.7851250Z    |
2019-10-04T04:35:34.7851502Z LL |     #[stable(feature = "a")] //~ ERROR missing 'since' [E0542]
2019-10-04T04:35:34.7851582Z 
2019-10-04T04:35:34.7851582Z 
2019-10-04T04:35:34.7851799Z error[E0542]: missing 'since'
2019-10-04T04:35:34.7852109Z    |
2019-10-04T04:35:34.7852109Z    |
2019-10-04T04:35:34.7852355Z LL |     #[rustc_deprecated(reason = "a")] //~ ERROR missing 'since' [E0542]
2019-10-04T04:35:34.7852455Z 
2019-10-04T04:35:34.7852658Z error[E0543]: missing 'reason'
2019-10-04T04:35:34.7852927Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:44:5
2019-10-04T04:35:34.7852975Z    |
2019-10-04T04:35:34.7852975Z    |
2019-10-04T04:35:34.7853228Z LL |     #[rustc_deprecated(since = "a")] //~ ERROR missing 'reason' [E0543]
2019-10-04T04:35:34.7853327Z 
2019-10-04T04:35:34.7853368Z error[E0544]: multiple stability levels
2019-10-04T04:35:34.7853622Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:49:1
2019-10-04T04:35:34.7853687Z    |
2019-10-04T04:35:34.7853687Z    |
2019-10-04T04:35:34.7853736Z LL | #[stable(feature = "a", since = "b")] //~ ERROR multiple stability levels [E0544]
2019-10-04T04:35:34.7853820Z 
2019-10-04T04:35:34.7853879Z error[E0544]: multiple stability levels
2019-10-04T04:35:34.7854135Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:53:1
2019-10-04T04:35:34.7854182Z    |
2019-10-04T04:35:34.7854182Z    |
2019-10-04T04:35:34.7854246Z LL | #[unstable(feature = "b", issue = "0")] //~ ERROR multiple stability levels [E0544]
2019-10-04T04:35:34.7854335Z 
2019-10-04T04:35:34.7854393Z error[E0544]: multiple stability levels
2019-10-04T04:35:34.7854650Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:57:1
2019-10-04T04:35:34.7854698Z    |
2019-10-04T04:35:34.7854698Z    |
2019-10-04T04:35:34.7854745Z LL | #[stable(feature = "a", since = "b")] //~ ERROR multiple stability levels [E0544]
2019-10-04T04:35:34.7854838Z 
2019-10-04T04:35:34.7854882Z error[E0540]: multiple rustc_deprecated attributes
2019-10-04T04:35:34.7855163Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:65:1
2019-10-04T04:35:34.7855211Z    |
2019-10-04T04:35:34.7855211Z    |
2019-10-04T04:35:34.7855259Z LL | pub const fn multiple4() { } //~ ERROR multiple rustc_deprecated attributes [E0540]
2019-10-04T04:35:34.7855351Z 
2019-10-04T04:35:34.7855394Z error[E0553]: multiple rustc_const_unstable attributes
2019-10-04T04:35:34.7855741Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:65:1
2019-10-04T04:35:34.7855820Z    |
2019-10-04T04:35:34.7855820Z    |
2019-10-04T04:35:34.7855869Z LL | pub const fn multiple4() { } //~ ERROR multiple rustc_deprecated attributes [E0540]
2019-10-04T04:35:34.7855960Z 
2019-10-04T04:35:34.7856005Z error: Invalid stability or deprecation version found
2019-10-04T04:35:34.7856295Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:65:1
2019-10-04T04:35:34.7856343Z    |
2019-10-04T04:35:34.7856343Z    |
2019-10-04T04:35:34.7856505Z LL | pub const fn multiple4() { } //~ ERROR multiple rustc_deprecated attributes [E0540]
2019-10-04T04:35:34.7856579Z 
2019-10-04T04:35:34.7856579Z 
2019-10-04T04:35:34.7856646Z error[E0549]: rustc_deprecated attribute must be paired with either stable or unstable attribute
2019-10-04T04:35:34.7856995Z    |
2019-10-04T04:35:34.7857056Z LL | fn deprecated_without_unstable_or_stable() { }
2019-10-04T04:35:34.7857104Z    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-10-04T04:35:34.7857136Z 
2019-10-04T04:35:34.7857136Z 
2019-10-04T04:35:34.7857180Z error: This stability annotation is useless
2019-10-04T04:35:34.7857776Z   --> /checkout/src/test/ui/stability-attribute/stability-attribute-sanity.rs:76:9
2019-10-04T04:35:34.7857834Z    |
2019-10-04T04:35:34.7857880Z LL |         T> { //~ ERROR This stability annotation is useless
2019-10-04T04:35:34.7857982Z 
2019-10-04T04:35:34.7858024Z error: aborting due to 19 previous errors
2019-10-04T04:35:34.7858052Z 
2019-10-04T04:35:34.7858317Z For more information about this error, try `rustc --explain E0541`.
---
2019-10-04T04:35:34.7879667Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-10-04T04:35:34.7879754Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-10-04T04:35:34.7898050Z 
2019-10-04T04:35:34.7898169Z 
2019-10-04T04:35:34.7900118Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-10-04T04:35:34.7900640Z 
2019-10-04T04:35:34.7900693Z 
2019-10-04T04:35:34.7905956Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-04T04:35:34.7906037Z Build completed unsuccessfully in 1:08:57
2019-10-04T04:35:34.7906037Z Build completed unsuccessfully in 1:08:57
2019-10-04T04:35:34.7959398Z == clock drift check ==
2019-10-04T04:35:34.7973590Z   local time: Fri Oct  4 04:35:34 UTC 2019
2019-10-04T04:35:34.9474314Z   network time: Fri, 04 Oct 2019 04:35:34 GMT
2019-10-04T04:35:34.9480570Z == end clock drift check ==
2019-10-04T04:35:35.9597101Z ##[error]Bash exited with code '1'.
2019-10-04T04:35:35.9669372Z ##[section]Starting: Checkout
2019-10-04T04:35:35.9671237Z ==============================================================================
2019-10-04T04:35:35.9671293Z Task         : Get sources
2019-10-04T04:35:35.9671339Z 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 @TimNN. (Feature Requests)

@eddyb
Copy link
Member

eddyb commented Oct 4, 2019

r? @petrochenkov cc @varkor (for the rustc_typeck changes)

@rust-highfive rust-highfive assigned petrochenkov and unassigned eddyb Oct 4, 2019
@petrochenkov petrochenkov added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 4, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 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-09T22:36:08.1008699Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-09T22:36:08.1164586Z ##[command]git config gc.auto 0
2019-10-09T22:36:08.1290322Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-09T22:36:08.1405392Z ##[command]git config --get-all http.proxy
2019-10-09T22:36:08.1638606Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65083/merge:refs/remotes/pull/65083/merge
---
2019-10-09T23:06:45.2404702Z    Compiling panic_abort v0.0.0 (/checkout/src/libpanic_abort)
2019-10-09T23:06:45.3945961Z    Compiling backtrace v0.3.37
2019-10-09T23:06:45.9325189Z    Compiling rustc-std-workspace-alloc v1.99.0 (/checkout/src/tools/rustc-std-workspace-alloc)
2019-10-09T23:06:46.0185225Z    Compiling panic_unwind v0.0.0 (/checkout/src/libpanic_unwind)
2019-10-09T23:07:07.2498113Z error: internal compiler error: encountered unmarked API: DefId(11:1404 ~ hashbrown[d725]::map[0]::HashMap[0]::S[0])
2019-10-09T23:07:07.2507295Z    --> src/libstd/collections/hash/map.rs:203:31
2019-10-09T23:07:07.2509523Z 203 |     base: base::HashMap<K, V, S>,
2019-10-09T23:07:07.2510524Z     |                               ^
2019-10-09T23:07:07.2511192Z 
2019-10-09T23:07:07.2511192Z 
2019-10-09T23:07:07.2512000Z thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', src/librustc_errors/lib.rs:383:17
2019-10-09T23:07:07.2512828Z 
2019-10-09T23:07:07.2513326Z error: internal compiler error: unexpected panic
2019-10-09T23:07:07.2513575Z 
2019-10-09T23:07:07.2514419Z note: the compiler unexpectedly panicked. this is a bug.
2019-10-09T23:07:07.2514419Z note: the compiler unexpectedly panicked. this is a bug.
2019-10-09T23:07:07.2514725Z 
2019-10-09T23:07:07.2515900Z note: we would appreciate a bug report: ***/blob/master/CONTRIBUTING.md#bug-reports
2019-10-09T23:07:07.2517181Z note: rustc 1.40.0-dev running on x86_64-unknown-linux-gnu
2019-10-09T23:07:07.2517660Z 
2019-10-09T23:07:07.2517660Z 
2019-10-09T23:07:07.2518628Z note: compiler flags: -Z external-macro-backtrace -Z binary-dep-depinfo -Z force-unstable-if-unmarked -C prefer-dynamic -C opt-level=2 -C codegen-units=1 -C debuginfo=0 -C link-args=-Wl,-rpath,$ORIGIN/../lib -C prefer-dynamic -C debug-assertions=n --crate-type dylib --crate-type rlib
2019-10-09T23:07:07.2519434Z note: some of the compiler flags provided by cargo are hidden
2019-10-09T23:07:07.2519912Z 
2019-10-09T23:07:07.2677379Z error: could not compile `std`.
2019-10-09T23:07:07.2678146Z 
---
2019-10-09T23:07:07.2753273Z == clock drift check ==
2019-10-09T23:07:07.2771791Z   local time: Wed Oct  9 23:07:07 UTC 2019
2019-10-09T23:07:07.4276879Z   network time: Wed, 09 Oct 2019 23:07:07 GMT
2019-10-09T23:07:07.4280039Z == end clock drift check ==
2019-10-09T23:07:09.1637999Z ##[error]Bash exited with code '1'.
2019-10-09T23:07:09.1689817Z ##[section]Starting: Checkout
2019-10-09T23:07:09.1691716Z ==============================================================================
2019-10-09T23:07:09.1691772Z Task         : Get sources
2019-10-09T23:07:09.1691837Z 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 @TimNN. (Feature Requests)

@varkor
Copy link
Member

varkor commented Oct 12, 2019

Sorry, I haven't had time to look into this yet.

The error regardingbase::HashMap<K, V, S> is a bit confusing, because as base::HashMap is defined outside of the standard library, the stability for the generic parameter should automatically be stable:
https://github.com/rust-lang/rust/blob/5b4f5f8a3f809355b7ab140ad18216d86b50afe8/src/librustc/middle/stability.rs#L699-L705

@petrochenkov
Copy link
Contributor

r? @varkor

@rust-highfive rust-highfive assigned varkor and unassigned petrochenkov Oct 18, 2019
@JohnCSimon
Copy link
Member

Ping from triage.
@Avi-D-coder This PR has sat idle for the last few days. Can you please address the comments from @varkor ?

Thank you!

@Avi-D-coder
Copy link
Contributor Author

@JohnCSimon I believe the only known remaining issue is is_staged_api being true, for Gen def_ids outside the standard library.

I have not had time to look into it this last week. I just committed and pushed the change I made last week, to resolve the unmarked API issue.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 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-26T02:48:59.5443478Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-26T02:48:59.5663439Z ##[command]git config gc.auto 0
2019-10-26T02:48:59.5761243Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-26T02:48:59.5843606Z ##[command]git config --get-all http.proxy
2019-10-26T02:48:59.5997043Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65083/merge:refs/remotes/pull/65083/merge
---
2019-10-26T03:20:49.0774287Z    Compiling panic_abort v0.0.0 (/checkout/src/libpanic_abort)
2019-10-26T03:20:49.2335575Z    Compiling backtrace v0.3.37
2019-10-26T03:20:49.8368338Z    Compiling rustc-std-workspace-alloc v1.99.0 (/checkout/src/tools/rustc-std-workspace-alloc)
2019-10-26T03:20:50.0332944Z    Compiling panic_unwind v0.0.0 (/checkout/src/libpanic_unwind)
2019-10-26T03:21:11.8940876Z error: internal compiler error: encountered unmarked API: DefId(11:1405 ~ hashbrown[a991]::map[0]::HashMap[0]::S[0])
2019-10-26T03:21:11.8942833Z    --> src/libstd/collections/hash/map.rs:203:31
2019-10-26T03:21:11.8944437Z 203 |     base: base::HashMap<K, V, S>,
2019-10-26T03:21:11.8945133Z     |                               ^
2019-10-26T03:21:11.8951860Z 
2019-10-26T03:21:11.8951860Z 
2019-10-26T03:21:11.8978563Z thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', src/librustc_errors/lib.rs:391:17
2019-10-26T03:21:11.8978762Z 
2019-10-26T03:21:11.8978814Z error: internal compiler error: unexpected panic
2019-10-26T03:21:11.8978849Z 
2019-10-26T03:21:11.8978915Z note: the compiler unexpectedly panicked. this is a bug.
2019-10-26T03:21:11.8978915Z note: the compiler unexpectedly panicked. this is a bug.
2019-10-26T03:21:11.8978951Z 
2019-10-26T03:21:11.8979461Z note: we would appreciate a bug report: ***/blob/master/CONTRIBUTING.md#bug-reports
2019-10-26T03:21:11.8979821Z note: rustc 1.40.0-dev running on x86_64-unknown-linux-gnu
2019-10-26T03:21:11.8979859Z 
2019-10-26T03:21:11.8979859Z 
2019-10-26T03:21:11.8980370Z note: compiler flags: -Z external-macro-backtrace -Z binary-dep-depinfo -Z force-unstable-if-unmarked -C prefer-dynamic -C opt-level=2 -C codegen-units=1 -C debuginfo=0 -C link-args=-Wl,-rpath,$ORIGIN/../lib -C prefer-dynamic -C debug-assertions=n --crate-type dylib --crate-type rlib
2019-10-26T03:21:11.8980506Z note: some of the compiler flags provided by cargo are hidden
2019-10-26T03:21:11.8980540Z 
2019-10-26T03:21:11.9230044Z error: could not compile `std`.
2019-10-26T03:21:11.9230205Z 
---
2019-10-26T03:21:11.9352911Z   local time: Sat Oct 26 03:21:11 UTC 2019
2019-10-26T03:21:12.1000381Z   network time: Sat, 26 Oct 2019 03:21:12 GMT
2019-10-26T03:21:12.1001928Z == end clock drift check ==
2019-10-26T03:21:14.6664326Z 
2019-10-26T03:21:14.6775526Z ##[error]Bash exited with code '1'.
2019-10-26T03:21:14.6817847Z ##[section]Starting: Checkout
2019-10-26T03:21:14.6819943Z ==============================================================================
2019-10-26T03:21:14.6820001Z Task         : Get sources
2019-10-26T03:21:14.6820050Z 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 @TimNN. (Feature Requests)

@Avi-D-coder
Copy link
Contributor Author

Sorry, I haven't had time to look into this yet.

The error regardingbase::HashMap<K, V, S> is a bit confusing, because as base::HashMap is defined outside of the standard library, the stability for the generic parameter should automatically be stable:
https://github.com/rust-lang/rust/blob/5b4f5f8a3f809355b7ab140ad18216d86b50afe8/src/librustc/middle/stability.rs#L699-L705

@varkor is_staged_api is true because this crate is being loaded from the sysroot?
This is strange since hashbrown seems to come from cargo? Is hashbrown's stability entry erroneous?

src/libstd/Cargo.toml:26

hashbrown = { version = "0.6.2", default-features = false, features = ['rustc-dep-of-std'] }
self.lookup_stability: Some(Stability { level: Unstable { reason: Some("this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead?"), issue: 27812, is_soft: false }, feature: "rustc_private", rustc_depr: None, const_stability: None, promotable: false, allow_const_fn_ptr: false })
path.res: Def(Struct, DefId(1:30275 ~ core[9364]::hash[0]::sip[0]::SipHasher13[0]))

@Aaron1011
Copy link
Member

@Avi-D-coder: hashbrown is a dep of libstd, as it provides the implementation of HashMap. So, that message is correct - it's being loaded from the sysroot.

@JohnCSimon
Copy link
Member

Ping from triage.
@Avi-D-coder Thanks for working on this, but the PR has sat idle for the last few days.

Thank you!

@Avi-D-coder
Copy link
Contributor Author

Avi-D-coder commented Nov 2, 2019

@JohnCSimon work is on going at the testing branch of my fork.

As you can see I have not been able to accelerate CI very much. If you have any tips on reducing edit/compile/compile turn around times, that would be great. Currently it takes an hour+ to see what goes wrong.

@JohnCSimon
Copy link
Member

Ping from triage:
@Avi-D-coder can you post your status to this pr?
CC: @varkor
Thanks!

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 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-01-23T23:28:46.6167505Z ========================== Starting Command Output ===========================
2020-01-23T23:28:46.6169265Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/2f08ecb2-6f23-421f-894b-c52fed5bb29b.sh
2020-01-23T23:28:46.6169308Z 
2020-01-23T23:28:46.6176930Z ##[section]Finishing: Disable git automatic line ending conversion
2020-01-23T23:28:46.6183227Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/65083/merge to s
2020-01-23T23:28:46.6185089Z Task         : Get sources
2020-01-23T23:28:46.6185122Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-23T23:28:46.6185152Z Version      : 1.0.0
2020-01-23T23:28:46.6185186Z Author       : Microsoft
---
2020-01-23T23:28:47.5948913Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-23T23:28:47.5962056Z ##[command]git config gc.auto 0
2020-01-23T23:28:47.5965716Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-23T23:28:47.5969251Z ##[command]git config --get-all http.proxy
2020-01-23T23:28:47.5989589Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65083/merge:refs/remotes/pull/65083/merge
---
2020-01-23T23:34:22.6643640Z    Compiling serde_json v1.0.40
2020-01-23T23:34:24.4302214Z    Compiling tidy v0.1.0 (/checkout/src/tools/tidy)
2020-01-23T23:34:35.1844481Z     Finished release [optimized] target(s) in 1m 24s
2020-01-23T23:34:35.1850482Z tidy check
2020-01-23T23:34:35.3371804Z tidy error: /checkout/src/test/ui/stability-attribute/generics-default-stability.rs:27: line longer than 100 chars
2020-01-23T23:34:35.3372235Z tidy error: /checkout/src/test/ui/stability-attribute/generics-default-stability.rs:28: line longer than 100 chars
2020-01-23T23:34:37.4162491Z Found 487 error codes
2020-01-23T23:34:37.4162602Z Found 0 error codes with no tests
2020-01-23T23:34:37.4162707Z Done!
2020-01-23T23:34:37.4162756Z some tidy checks failed
2020-01-23T23:34:37.4162756Z some tidy checks failed
2020-01-23T23:34:37.4173541Z 
2020-01-23T23:34:37.4176827Z 
2020-01-23T23:34:37.4177948Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor"
2020-01-23T23:34:37.4178083Z 
2020-01-23T23:34:37.4178130Z 
2020-01-23T23:34:37.4186899Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
2020-01-23T23:34:37.4186984Z Build completed unsuccessfully in 0:01:35
2020-01-23T23:34:37.4186984Z Build completed unsuccessfully in 0:01:35
2020-01-23T23:34:37.4243459Z == clock drift check ==
2020-01-23T23:34:37.4252922Z   local time: Thu Jan 23 23:34:37 UTC 2020
2020-01-23T23:34:37.9691114Z   network time: Thu, 23 Jan 2020 23:34:37 GMT
2020-01-23T23:34:37.9695389Z == end clock drift check ==
2020-01-23T23:34:38.7470017Z 
2020-01-23T23:34:38.7579296Z ##[error]Bash exited with code '1'.
2020-01-23T23:34:38.7593897Z ##[section]Finishing: Run build
2020-01-23T23:34:38.7609690Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/65083/merge to s
2020-01-23T23:34:38.7612134Z Task         : Get sources
2020-01-23T23:34:38.7612180Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-23T23:34:38.7612242Z Version      : 1.0.0
2020-01-23T23:34:38.7612283Z Author       : Microsoft
2020-01-23T23:34:38.7612283Z Author       : Microsoft
2020-01-23T23:34:38.7612328Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-01-23T23:34:38.7612394Z ==============================================================================
2020-01-23T23:34:39.2232999Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-01-23T23:34:39.2275848Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/65083/merge to s
2020-01-23T23:34:39.2406188Z Cleaning up task key
2020-01-23T23:34:39.2406982Z Start cleaning up orphan processes.
2020-01-23T23:34:39.2527349Z Terminate orphan process: pid (3674) (python)
2020-01-23T23:34:39.2760137Z ##[section]Finishing: Finalize Job

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)

@Avi-D-coder
Copy link
Contributor Author

Okay so the next step is blocking type inference and figuring out why stability does not work for Structs.

@varkor any advice?

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 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-01-24T00:45:08.4997746Z ========================== Starting Command Output ===========================
2020-01-24T00:45:08.5000221Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/f14f3c97-17b6-4e1d-86bb-13e01b9e0fef.sh
2020-01-24T00:45:08.5000376Z 
2020-01-24T00:45:08.5004075Z ##[section]Finishing: Disable git automatic line ending conversion
2020-01-24T00:45:08.5010980Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/65083/merge to s
2020-01-24T00:45:08.5012695Z Task         : Get sources
2020-01-24T00:45:08.5012733Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-24T00:45:08.5012816Z Version      : 1.0.0
2020-01-24T00:45:08.5012853Z Author       : Microsoft
---
2020-01-24T00:45:09.4366384Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-24T00:45:09.4530279Z ##[command]git config gc.auto 0
2020-01-24T00:45:09.4634620Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-24T00:45:09.4956452Z ##[command]git config --get-all http.proxy
2020-01-24T00:45:09.5205807Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65083/merge:refs/remotes/pull/65083/merge
---
2020-01-24T00:50:37.8168635Z    Compiling serde_json v1.0.40
2020-01-24T00:50:39.4856032Z    Compiling tidy v0.1.0 (/checkout/src/tools/tidy)
2020-01-24T00:50:48.8457719Z     Finished release [optimized] target(s) in 1m 19s
2020-01-24T00:50:48.8569956Z tidy check
2020-01-24T00:50:49.6940922Z tidy error: /checkout/src/test/ui/stability-attribute/generics-default-stability.rs:35: line longer than 100 chars
2020-01-24T00:50:49.6941470Z tidy error: /checkout/src/test/ui/stability-attribute/generics-default-stability.rs:36: line longer than 100 chars
2020-01-24T00:50:51.6995072Z some tidy checks failed
2020-01-24T00:50:51.6995630Z Found 487 error codes
2020-01-24T00:50:51.6995923Z Found 0 error codes with no tests
2020-01-24T00:50:51.6996165Z Done!
2020-01-24T00:50:51.6996165Z Done!
2020-01-24T00:50:51.6999529Z 
2020-01-24T00:50:51.6999887Z 
2020-01-24T00:50:51.7001114Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor"
2020-01-24T00:50:51.7001668Z 
2020-01-24T00:50:51.7002085Z 
2020-01-24T00:50:51.7011708Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
2020-01-24T00:50:51.7011831Z Build completed unsuccessfully in 0:01:30
2020-01-24T00:50:51.7011831Z Build completed unsuccessfully in 0:01:30
2020-01-24T00:50:51.7069668Z == clock drift check ==
2020-01-24T00:50:51.7078851Z   local time: Fri Jan 24 00:50:51 UTC 2020
2020-01-24T00:50:51.8664574Z   network time: Fri, 24 Jan 2020 00:50:51 GMT
2020-01-24T00:50:51.8669102Z == end clock drift check ==
2020-01-24T00:50:52.6528576Z 
2020-01-24T00:50:52.6624888Z ##[error]Bash exited with code '1'.
2020-01-24T00:50:52.6638780Z ##[section]Finishing: Run build
2020-01-24T00:50:52.6654341Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/65083/merge to s
2020-01-24T00:50:52.6656155Z Task         : Get sources
2020-01-24T00:50:52.6656209Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-24T00:50:52.6656261Z Version      : 1.0.0
2020-01-24T00:50:52.6656328Z Author       : Microsoft
2020-01-24T00:50:52.6656328Z Author       : Microsoft
2020-01-24T00:50:52.6656381Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-01-24T00:50:52.6656449Z ==============================================================================
2020-01-24T00:50:53.1249134Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-01-24T00:50:53.1300190Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/65083/merge to s
2020-01-24T00:50:53.1424775Z Cleaning up task key
2020-01-24T00:50:53.1425717Z Start cleaning up orphan processes.
2020-01-24T00:50:53.1732550Z Terminate orphan process: pid (3882) (python)
2020-01-24T00:50:53.1755704Z ##[section]Finishing: Finalize Job

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)

@varkor
Copy link
Member

varkor commented Feb 9, 2020

@Avi-D-coder: sorry, I've been busy lately. I'll try to take a look soon and get back to you.

@bors
Copy link
Contributor

bors commented Feb 11, 2020

☔ The latest upstream changes (presumably #68725) made this pull request unmergeable. Please resolve the merge conflicts.

@JohnCSimon
Copy link
Member

ping from triage:
@Avi-D-coder @varkor has there been any progress on this? Thanks.

@Avi-D-coder
Copy link
Contributor Author

@JohnCSimon no progress.

@Dylan-DPC-zz
Copy link

@Avi-D-coder closing this due to inactivity. Thanks for contributing

@Dylan-DPC-zz Dylan-DPC-zz added S-inactive Status: Inactive and waiting on the author. This is often applied to closed PRs. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 24, 2020
@TimDiekmann
Copy link
Member

@varkor Where you able to look into this again?

@varkor
Copy link
Member

varkor commented May 4, 2020

@Avi-D-coder: I'm sorry for leaving this floundering. I haven't yet looked into the struct stability issue, but I could give some pointers for how to approach the type inference blocking.

If I remember correctly, we essentially want to force unstabilised defaults to be used when their feature flag is not enabled. The method for deciding what generic arguments to use (e.g. given by a user, inferred or defaulted) is create_substs_for_generic_args. It has an arguments, inferred_kind, which is a function that will pick the concrete generic argument. As such, the relevant places to look at the callers of create_substs_for_generic_args. They will provide a closure, |substs, param, infer_args| { … } that returns a generic argument. For example:

GenericParamDefKind::Type { has_default, .. } => {
if !infer_args && has_default {

As we're just trying to get things working at this point, we don't have to work out the nicest way to handle this straight away. I would suggest adding an extra condition at the top of each closure (I think create_substs_for_generic_args is called in 3 places, but the one in confirm.rs is probably not relevant) that checks whether the generic parameter (param) is unstable (and the feature flag is not enabled), and if it is, just returns the default (there's already code for this in the has_default branches).

Perhaps it would be possible to write a few bullet points summarising what is working so far, and what remains to be done? This would be helpful both for refreshing my memory, and also for rust-lang/wg-allocators#2.

@varkor varkor reopened this May 4, 2020
@varkor varkor added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-inactive Status: Inactive and waiting on the author. This is often applied to closed PRs. labels May 10, 2020
@Elinvynia
Copy link
Contributor

ping from triage:
@varkor @Avi-D-coder What's the status on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.
Projects
None yet
Development

Successfully merging this pull request may close these issues.