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

Need help compiling this crate #30

Open
dayfine opened this issue Jul 2, 2022 · 1 comment
Open

Need help compiling this crate #30

dayfine opened this issue Jul 2, 2022 · 1 comment

Comments

@dayfine
Copy link

dayfine commented Jul 2, 2022

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 dayfine/xlab@9f9bf1e.

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 rust-lang/rust#50145, and I also saw #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
Copy link
Owner

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 up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants