Skip to content
This repository has been archived by the owner on Jun 7, 2022. It is now read-only.

Build fails on latest unstable Rust in Darwin (macOS) #83

Open
siriobalmelli opened this issue Jun 10, 2020 · 4 comments
Open

Build fails on latest unstable Rust in Darwin (macOS) #83

siriobalmelli opened this issue Jun 10, 2020 · 4 comments

Comments

@siriobalmelli
Copy link

Trying to build the racerd package in nix-pkgs, which depends on the latest unstable rust:

   Compiling iron v0.6.1
error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:36:58
   |
36 |         let init = match Pin::new(&mut result.generator).resume() {
   |                                                          ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
36 |         let init = match Pin::new(&mut result.generator).resume(()) {
   |                                                                 ^^

error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:52:76
   |
52 |         if let GeneratorState::Complete(_) = Pin::new(&mut self.generator).resume() {
   |                                                                            ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
52 |         if let GeneratorState::Complete(_) = Pin::new(&mut self.generator).resume(()) {
   |                                                                                   ^^

error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:63:52
   |
63 |         let result = Pin::new(&mut self.generator).resume();
   |                                                    ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
63 |         let result = Pin::new(&mut self.generator).resume(());
   |                                                           ^^

Unfortunately, this repo depends on features not in stable, attempts to build with stable fail.

Any help would be greatly appreciated.

@siriobalmelli
Copy link
Author

I narrowed it down to a rust version change v1.42 -> v1.43 ... this reversion fixed my build: siriobalmelli/nixpkgs@e6fe392

@siriobalmelli
Copy link
Author

siriobalmelli commented Jul 8, 2020

This is unfortunately still failing.
It seems to me (no knowledge of Rust unfortunately) this project depends on some unstable features in Rust which have now changed.

So:

  • building with stable rust will not work
  • build with 1.43 (latest unstable) will also not work

I tried to build again with the latest version and am getting:

error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:36:58
   |
36 |         let init = match Pin::new(&mut result.generator).resume() {
   |                                                          ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
36 |         let init = match Pin::new(&mut result.generator).resume(()) {
   |                                                                 ^^

error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:52:76
   |
52 |         if let GeneratorState::Complete(_) = Pin::new(&mut self.generator).resume() {
   |                                                                            ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
52 |         if let GeneratorState::Complete(_) = Pin::new(&mut self.generator).resume(()) {
   |                                                                                   ^^

error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:63:52
   |
63 |         let result = Pin::new(&mut self.generator).resume();
   |                                                    ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
63 |         let result = Pin::new(&mut self.generator).resume(());
   |                                                           ^^

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0061`.
error: could not compile `rustc-ap-rustc_data_structures`.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

This seems to be a legitimate bug in the code, @jwilm please help if at all possible.

I can continue patching my Nixpkgs to stay with 1.42 Rust ... but the means that any rebuilds will now take an hour longer because I am recompiling from source (Nix cache has moved on to 1.43).

It goes without saying that I will take care to get any fixes pushed here merged into upstream Nixpkgs :)

@siriobalmelli
Copy link
Author

Upstream Rust seems to have moved to 1.44 now, but build still fails with:

building '/nix/store/0lj5fblpx4kqydz8ni3ly6akba9r9h70-racerd-unstable-2019-09-02.drv'...
unpacking sources
unpacking source archive /nix/store/gj24xablwgh4apwghs78r6x4nm7hxllk-source
source root is source
unpacking source archive /nix/store/ysbgia3j4al5z08gzzpydyrzi8frfs3i-racerd-unstable-2019-09-02-vendor.tar.gz
patching sources
applying patch /nix/store/b59h0c49jspd4acnwrlnd4bjn7lsh7m4-856f3656e160cd2909c5166e962f422c901720ee.patch
patching file Cargo.lock
patching file Cargo.toml
Validating consistency between /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/source/Cargo.lock and /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/Cargo.lock
configuring
building
++ env CC_x86_64-apple-darwin=/nix/store/zbdbaflg163wvk8cjn69r4668zgq1yb7-clang-wrapper-7.1.0/bin/cc CXX_x86_64-apple-darwin=/nix/store/zbdbaflg163wvk8cjn69r4668zgq1yb7-clang-wrapper-7.1.0/bin/c++ CC_x86_64-apple-darwin=/nix/store/zbdbaflg163wvk8cjn69r4668zgq1yb7-clang-wrapper-7.1.0/bin/cc CXX_x86_64-apple-darwin=/nix/store/zbdbaflg163wvk8cjn69r4668zgq1yb7-clang-wrapper-7.1.0/bin/c++ cargo build --release --target x86_64-apple-darwin --frozen
   Compiling libc v0.2.62
   Compiling autocfg v0.1.7
   Compiling cfg-if v0.1.9
   Compiling log v0.4.8
   Compiling semver-parser v0.7.0
   Compiling smallvec v0.6.10
   Compiling proc-macro2 v1.0.1
   Compiling rand_core v0.4.2
   Compiling version_check v0.1.5
   Compiling unicode-xid v0.2.0
   Compiling lazy_static v1.3.0
   Compiling syn v1.0.3
   Compiling byteorder v1.3.2
   Compiling scopeguard v1.0.0
   Compiling siphasher v0.2.3
   Compiling traitobject v0.1.0
   Compiling rustc-rayon-core v0.3.0
   Compiling matches v0.1.8
   Compiling serde v1.0.99
   Compiling httparse v1.3.4
   Compiling indexmap v1.0.2
   Compiling safemem v0.3.2
   Compiling either v1.5.2
   Compiling percent-encoding v1.0.1
   Compiling memchr v2.2.1
   Compiling stable_deref_trait v1.1.1
   Compiling ryu v1.0.0
   Compiling rustc-ap-graphviz v610.0.0
   Compiling unicode-width v0.1.5
   Compiling typeable v0.1.2
   Compiling language-tags v0.2.2
   Compiling modifier v0.1.0
   Compiling bitflags v1.1.0
   Compiling proc-macro2 v0.4.30
   Compiling regex-syntax v0.6.11
   Compiling scoped-tls v1.0.0
   Compiling termcolor v1.0.5
   Compiling unicode-xid v0.1.0
   Compiling itoa v0.4.4
   Compiling syn v0.15.44
   Compiling gcc v0.3.55
   Compiling rustc-ap-rustc_target v610.0.0
   Compiling quick-error v1.2.2
   Compiling annotate-snippets v0.6.1
   Compiling rustc-ap-syntax v610.0.0
   Compiling strsim v0.8.0
   Compiling vec_map v0.8.1
   Compiling ansi_term v0.11.0
   Compiling rustc-serialize v0.3.24
   Compiling lazycell v1.2.1
   Compiling strsim v0.9.2
   Compiling constant_time_eq v0.1.3
   Compiling route-recognizer v0.1.13
   Compiling semver v0.9.0
   Compiling rand_core v0.3.1
   Compiling unicode-normalization v0.1.8
   Compiling crossbeam-utils v0.6.6
   Compiling thread_local v0.3.6
   Compiling lock_api v0.3.2
   Compiling unsafe-any v0.4.2
   Compiling unicode-bidi v0.3.4
   Compiling rustc-ap-serialize v610.0.0
   Compiling rand_chacha v0.1.1
   Compiling rand_pcg v0.1.2
   Compiling crossbeam-utils v0.7.0
   Compiling rand v0.6.5
   Compiling crossbeam-epoch v0.8.0
   Compiling unicase v1.4.2
   Compiling itertools v0.8.0
   Compiling textwrap v0.11.0
   Compiling humantime v1.2.0
   Compiling rustc-ap-rustc_lexer v610.0.0
   Compiling rustc_version v0.2.3
   Compiling rand_isaac v0.1.1
   Compiling rand_xorshift v0.1.1
   Compiling rand_hc v0.1.0
   Compiling crossbeam-queue v0.1.2
   Compiling typemap v0.3.3
   Compiling idna v0.1.5
   Compiling rust-crypto v0.2.36
   Compiling rustc-ap-rustc_index v610.0.0
   Compiling log v0.3.9
   Compiling ena v0.13.1
   Compiling memoffset v0.5.3
   Compiling parking_lot_core v0.6.2
   Compiling parking_lot v0.9.0
   Compiling plugin v0.2.6
   Compiling num_cpus v1.10.1
   Compiling time v0.1.42
   Compiling jobserver v0.1.16
   Compiling atty v0.2.13
   Compiling rand v0.4.6
   Compiling term_size v0.3.1
   Compiling rand v0.5.6
   Compiling rand_os v0.1.3
   Compiling rand_jitter v0.1.4
   Compiling base64 v0.9.3
   Compiling rustc-hash v1.0.1
   Compiling quote v1.0.2
   Compiling aho-corasick v0.7.6
   Compiling url v1.7.2
   Compiling quote v0.6.13
   Compiling mime v0.2.6
   Compiling clap v2.33.0
   Compiling rand v0.3.23
   Compiling phf_shared v0.7.24
   Compiling hyper v0.10.16
   Compiling regex v1.2.1
   Compiling phf v0.7.24
   Compiling phf_generator v0.7.24
   Compiling phf_codegen v0.7.24
   Compiling crossbeam-deque v0.7.2
   Compiling env_logger v0.6.2
   Compiling env_logger v0.5.13
   Compiling mime_guess v1.8.7
   Compiling synstructure v0.12.3
   Compiling rustc-rayon v0.3.0
   Compiling rustc-ap-rustc_data_structures v610.0.0
error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:36:58
   |
36 |         let init = match Pin::new(&mut result.generator).resume() {
   |                                                          ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
36 |         let init = match Pin::new(&mut result.generator).resume(()) {
   |                                                                 ^^

error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:52:76
   |
52 |         if let GeneratorState::Complete(_) = Pin::new(&mut self.generator).resume() {
   |                                                                            ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
52 |         if let GeneratorState::Complete(_) = Pin::new(&mut self.generator).resume(()) {
   |                                                                                   ^^

error[E0061]: this function takes 1 argument but 0 arguments were supplied
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/rustc-ap-rustc_data_structures/box_region.rs:63:52
   |
63 |         let result = Pin::new(&mut self.generator).resume();
   |                                                    ^^^^^^- supplied 0 arguments
   |
help: expected the unit value `()`; create it with empty parentheses
   |
63 |         let result = Pin::new(&mut self.generator).resume(());
   |                                                           ^^

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0061`.
error: could not compile `rustc-ap-rustc_data_structures`.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

@siriobalmelli
Copy link
Author

Rust 1.45 has dropped, and introduced new build errors:

error: the legacy LLVM-style asm! syntax is no longer supported
  --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/parking_lot/src/elision.rs:70:13
   |
70 |               asm!("xacquire; lock; cmpxchgq $2, $1"
   |               ^---
   |               |
   |  _____________help: replace with: `llvm_asm!`
   | |
71 | |                  : "={rax}" (prev), "+*m" (self)
72 | |                  : "r" (new), "{rax}" (current)
73 | |                  : "memory"
74 | |                  : "volatile");
   | |_______________________________^
   |
   = note: consider migrating to the new asm! syntax specified in RFC 2873
   = note: alternatively, switch to llvm_asm! to keep your code working as it is

error: the legacy LLVM-style asm! syntax is no longer supported
   --> /private/var/folders/kj/tzv099zx2yzgnkjtdhqbxbjh0000gn/T/nix-build-racerd-unstable-2019-09-02.drv-0/racerd-unstable-2019-09-02-vendor.tar.gz/parking_lot/src/elision.rs:97:13
    |
97  |               asm!("xrelease; lock; xaddq $2, $1"
    |               ^---
    |               |
    |  _____________help: replace with: `llvm_asm!`
    | |
98  | |                  : "=r" (prev), "+*m" (self)
99  | |                  : "0" (val.wrapping_neg())
100 | |                  : "memory"
101 | |                  : "volatile");
    | |_______________________________^
    |
    = note: consider migrating to the new asm! syntax specified in RFC 2873
    = note: alternatively, switch to llvm_asm! to keep your code working as it is

error: aborting due to 2 previous errors

error: could not compile `parking_lot`.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
builder for '/nix/store/i378v6lj42637gic9rwld1skd4n640aa-racerd-unstable-2019-09-02.drv' failed with exit code 101

siriobalmelli added a commit to siriobalmelli/toolbench that referenced this issue Aug 22, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant