Need help compiling this crate #30

Open
opened 2022-07-03 05:04:10 +12:00 by dayfine · 1 comment
dayfine commented 2022-07-03 05:04:10 +12:00 (Migrated from github.com)

I cannot compile this crate. I am depending on it through https://crates.io/crates/mockall and building using https://bazel.build/ with https://github.com/google/cargo-raze. The commit is github.com/dayfine/xlab@9f9bf1ea41.

The error I see is:

NFO: Found 1 target...
ERROR: /private/var/tmp/_bazel_difan/f78d9d7b4392e86afba7ecb9acf5e2e3/external/raze__float_cmp__0_9_0/BUILD.bazel:34:13: Compiling Rust rlib float_cmp v0.9.0 (6 files) failed: (Exit 1): sandbox-exec failed: error executing command
  (cd /private/var/tmp/_bazel_difan/f78d9d7b4392e86afba7ecb9acf5e2e3/sandbox/darwin-sandbox/1694/execroot/xlab && \
  exec env - \
    CARGO_CFG_TARGET_ARCH=x86_64 \
    CARGO_CFG_TARGET_OS=darwin \
    CARGO_CRATE_NAME=float_cmp \
    CARGO_MANIFEST_DIR='${pwd}/external/raze__float_cmp__0_9_0' \
    CARGO_PKG_AUTHORS='' \
    CARGO_PKG_DESCRIPTION='' \
    CARGO_PKG_HOMEPAGE='' \
    CARGO_PKG_NAME=float_cmp \
    CARGO_PKG_VERSION=0.9.0 \
    CARGO_PKG_VERSION_MAJOR=0 \
    CARGO_PKG_VERSION_MINOR=9 \
    CARGO_PKG_VERSION_PATCH=0 \
    CARGO_PKG_VERSION_PRE='' \
    SYSROOT=bazel-out/darwin-fastbuild/bin/external/rust_darwin_x86_64/toolchain_for_x86_64-apple-darwin_impl \
    TMPDIR=/var/folders/yn/sjqdt0f50hbfg723kw354ng00000gn/T/ \
  /usr/bin/sandbox-exec -f /private/var/tmp/_bazel_difan/f78d9d7b4392e86afba7ecb9acf5e2e3/sandbox/darwin-sandbox/1694/sandbox.sb /var/tmp/_bazel_difan/install/ebbb2540c6000feeb8873385c487a79c/process-wrapper '--timeout=0' '--kill_delay=15' bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/rules_rust/util/process_wrapper/process_wrapper --arg-file bazel-out/darwin-fastbuild/bin/external/raze__num_traits__0_2_15/num_traits_build_script.linksearchpaths --subst 'pwd=${pwd}' -- bazel-out/darwin-fastbuild/bin/external/rust_darwin_x86_64/toolchain_for_x86_64-apple-darwin_impl/bin/rustc external/raze__float_cmp__0_9_0/src/lib.rs '--crate-name=float_cmp' '--crate-type=rlib' '--error-format=human' '--codegen=metadata=-2829191614' '--codegen=extra-filename=-2829191614' '--out-dir=bazel-out/darwin-fastbuild/bin/external/raze__float_cmp__0_9_0' '--codegen=opt-level=0' '--codegen=debuginfo=0' '--remap-path-prefix=${pwd}=.' '--emit=dep-info,link' '--color=always' '--target=x86_64-apple-darwin' -L bazel-out/darwin-fastbuild/bin/external/rust_darwin_x86_64/toolchain_for_x86_64-apple-darwin_impl/lib/rustlib/x86_64-apple-darwin/lib '--cap-lints=allow' '--edition=2018' '--extern=num_traits=bazel-out/darwin-fastbuild/bin/external/raze__num_traits__0_2_15/libnum_traits-784186115.rlib' '-Ldependency=bazel-out/darwin-fastbuild/bin/external/raze__num_traits__0_2_15')
error[E0599]: no method named `abs` found for type `f32` in the current scope
   --> external/raze__float_cmp__0_9_0/src/eq.rs:100:29
    |
100 |             ((self - other).abs() <= margin.epsilon) ||
    |                             ^^^ method not found in `f32`

error[E0599]: no method named `abs` found for type `f64` in the current scope
   --> external/raze__float_cmp__0_9_0/src/eq.rs:226:29
    |
226 |             ((self - other).abs() <= margin.epsilon) ||
    |                             ^^^ method not found in `f64`

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0599`.

I know this is https://github.com/rust-lang/rust/issues/50145, and I also saw https://github.com/mikedilger/float-cmp/issues/25. I am not familiar with no_std so I am not sure what's the right thing to do, e.g.:

  • It seems I am compiling using num_traits. Do I want num_traits or not?
  • Could this be fixed if I force enable std feature? I don't think I've actually been able to do that

Currently I might need to not using mockall and this crate, but I suppose there might be an easy fix that I cannot find.

I cannot compile this crate. I am depending on it through https://crates.io/crates/mockall and building using https://bazel.build/ with https://github.com/google/cargo-raze. The commit is https://github.com/dayfine/xlab/commit/9f9bf1ea4145c1264fb8207f62c829c420f67a41. The error I see is: ``` NFO: Found 1 target... ERROR: /private/var/tmp/_bazel_difan/f78d9d7b4392e86afba7ecb9acf5e2e3/external/raze__float_cmp__0_9_0/BUILD.bazel:34:13: Compiling Rust rlib float_cmp v0.9.0 (6 files) failed: (Exit 1): sandbox-exec failed: error executing command (cd /private/var/tmp/_bazel_difan/f78d9d7b4392e86afba7ecb9acf5e2e3/sandbox/darwin-sandbox/1694/execroot/xlab && \ exec env - \ CARGO_CFG_TARGET_ARCH=x86_64 \ CARGO_CFG_TARGET_OS=darwin \ CARGO_CRATE_NAME=float_cmp \ CARGO_MANIFEST_DIR='${pwd}/external/raze__float_cmp__0_9_0' \ CARGO_PKG_AUTHORS='' \ CARGO_PKG_DESCRIPTION='' \ CARGO_PKG_HOMEPAGE='' \ CARGO_PKG_NAME=float_cmp \ CARGO_PKG_VERSION=0.9.0 \ CARGO_PKG_VERSION_MAJOR=0 \ CARGO_PKG_VERSION_MINOR=9 \ CARGO_PKG_VERSION_PATCH=0 \ CARGO_PKG_VERSION_PRE='' \ SYSROOT=bazel-out/darwin-fastbuild/bin/external/rust_darwin_x86_64/toolchain_for_x86_64-apple-darwin_impl \ TMPDIR=/var/folders/yn/sjqdt0f50hbfg723kw354ng00000gn/T/ \ /usr/bin/sandbox-exec -f /private/var/tmp/_bazel_difan/f78d9d7b4392e86afba7ecb9acf5e2e3/sandbox/darwin-sandbox/1694/sandbox.sb /var/tmp/_bazel_difan/install/ebbb2540c6000feeb8873385c487a79c/process-wrapper '--timeout=0' '--kill_delay=15' bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/rules_rust/util/process_wrapper/process_wrapper --arg-file bazel-out/darwin-fastbuild/bin/external/raze__num_traits__0_2_15/num_traits_build_script.linksearchpaths --subst 'pwd=${pwd}' -- bazel-out/darwin-fastbuild/bin/external/rust_darwin_x86_64/toolchain_for_x86_64-apple-darwin_impl/bin/rustc external/raze__float_cmp__0_9_0/src/lib.rs '--crate-name=float_cmp' '--crate-type=rlib' '--error-format=human' '--codegen=metadata=-2829191614' '--codegen=extra-filename=-2829191614' '--out-dir=bazel-out/darwin-fastbuild/bin/external/raze__float_cmp__0_9_0' '--codegen=opt-level=0' '--codegen=debuginfo=0' '--remap-path-prefix=${pwd}=.' '--emit=dep-info,link' '--color=always' '--target=x86_64-apple-darwin' -L bazel-out/darwin-fastbuild/bin/external/rust_darwin_x86_64/toolchain_for_x86_64-apple-darwin_impl/lib/rustlib/x86_64-apple-darwin/lib '--cap-lints=allow' '--edition=2018' '--extern=num_traits=bazel-out/darwin-fastbuild/bin/external/raze__num_traits__0_2_15/libnum_traits-784186115.rlib' '-Ldependency=bazel-out/darwin-fastbuild/bin/external/raze__num_traits__0_2_15') error[E0599]: no method named `abs` found for type `f32` in the current scope --> external/raze__float_cmp__0_9_0/src/eq.rs:100:29 | 100 | ((self - other).abs() <= margin.epsilon) || | ^^^ method not found in `f32` error[E0599]: no method named `abs` found for type `f64` in the current scope --> external/raze__float_cmp__0_9_0/src/eq.rs:226:29 | 226 | ((self - other).abs() <= margin.epsilon) || | ^^^ method not found in `f64` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0599`. ``` I know this is https://github.com/rust-lang/rust/issues/50145, and I also saw https://github.com/mikedilger/float-cmp/issues/25. I am not familiar with `no_std` so I am not sure what's the right thing to do, e.g.: - It seems I am compiling using `num_traits`. Do I want `num_traits` or not? - Could this be fixed if I force enable `std` feature? I don't think I've actually been able to do that Currently I might need to not using `mockall` and this crate, but I suppose there might be an easy fix that I cannot find.
mikedilger commented 2022-07-05 17:56:56 +12:00 (Migrated from github.com)

If you enable the 'ratio' feature it will pull in num_traits which defines .abs() in the FloatCore trait which will get pulled in.

If you were using the standard library (vast majority of cases), then std::f32 would have already defined .abs()

I suppose since this issue has come up yet again I suppose I could include abs() functions in the crate (copied from somewhere else so I don't muck it up). But don't expect that I'm pretty busy right now. If using ratio feature doesn't work, let me know.

If you enable the 'ratio' feature it will pull in `num_traits` which defines `.abs()` in the `FloatCore` trait which will get pulled in. If you were using the standard library (vast majority of cases), then `std::f32` would have already defined `.abs()` I suppose since this issue has come up yet again I suppose I could include `abs()` functions in the crate (copied from somewhere else so I don't muck it up). But don't expect that I'm pretty busy right now. If using `ratio` feature doesn't work, let me know.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mikedilger/float-cmp#30
No description provided.