Docker build fails for "base build" image - cannot compile "arc-swap" and "zeroize"

Open
#5 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
docker, rust

Research direction

Reproduce the base build Docker image failure and inspect the Docker build configuration and Rust toolchain or dependency versions used there. Start with the reported arc-swap-0.3.6 and zeroize-0.5.2 errors; done means the base image builds successfully with compatible dependencies or a documented resolution.

Written by the indexing model from the issue text.

Description

When building the "base build" docker image, the following error arises:

error[E0425]: cannot find function `spin_loop_hint` in module `atomic`
    --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.6/src/lib.rs:1049:25
     |
1049 |                 atomic::spin_loop_hint();
     |                         ^^^^^^^^^^^^^^ not found in `atomic`

error: the struct `#[repr(align(u16))]` attribute is experimental (see issue #33626)
  --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.6/src/debt.rs:20:1
   |
20 | / struct Node {
21 | |     next: Option<&'static Node>,
22 | |     in_use: AtomicBool,
23 | |     slots: [Debt; DEBT_SLOT_CNT],
24 | | }
   | |_^

error: non-string literals in attributes, or string literals in top-level positions, are experimental (see issue #34981)
  --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.6/src/debt.rs:19:1
   |
19 | #[repr(align(64))]
   | ^^^^^^^^^^^^^^^^^^

error: the struct `#[repr(align(u16))]` attribute is experimental (see issue #33626)
  --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.6/src/gen_lock.rs:49:1
   |
49 | pub struct Shard(pub(crate) [AtomicUsize; GEN_CNT]);
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: non-string literals in attributes, or string literals in top-level positions, are experimental (see issue #34981)
  --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.6/src/gen_lock.rs:47:1
   |
47 | #[repr(align(64))]
   | ^^^^^^^^^^^^^^^^^^

error: slice pattern syntax is experimental (see issue #23121)
    --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.6/src/lib.rs:1030:32
     |
1030 |                 .fold([0, 0], |[a1, a2], s| {
     |                                ^^^^^^^^

error: slice pattern syntax is experimental (see issue #23121)
    --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.6/src/lib.rs:1031:25
     |
1031 |                     let [v1, v2] = s.snapshot();
     |                         ^^^^^^^^

error: aborting due to 7 previous errors

error: Could not compile `arc-swap`.
warning: build failed, waiting for other jobs to finish...
error: expected one of `,` or `as`, found `::`
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/zeroize-0.5.2/src/lib.rs:212:22
    |
212 | use core::{ptr, slice::IterMut, sync::atomic};
    |                      ^^ expected one of `,` or `as` here

error: expected one of `;` or `as`, found `::`
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/zeroize-0.5.2/src/lib.rs:212:22
    |
212 | use core::{ptr, slice::IterMut, sync::atomic};
    |                      ^^ expected one of `;` or `as` here

error: aborting due to 2 previous errors

error: Could not compile `zeroize`.
warning: build failed, waiting for other jobs to finish...

error: build failed

Summarizing: arc-swap-0.3.6 and zeroize-0.5.2 cannot be compiled.
Does not seem to be a grin related issue though, but rather a problem with an external lib?

Dominant language
JavaScript
Stars
11
Forks
10
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from mimblewimble/grin-docker

All issues in mimblewimble/grin-docker

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.