softdevteam / yksom

Other
8 stars 6 forks source link

How to build yksom? #223

Closed smarr closed 1 year ago

smarr commented 1 year ago

What's the preferred way to compile yksom for benchmarking?

Looking at .buildbot_dockerfile_debian, it seems to be sh -x .buildbot.sh.

Though, when I set that up on GitHub Actions, I get the following: https://github.com/smarr/yksom/actions/runs/3962814391/jobs/6789942558

Building rustbuild
    Updating crates.io index
 Downloading crates ...
  Downloaded fnv v1.0.7
...
   Compiling toml v0.5.9
    Finished dev [unoptimized] target(s) in 1m 04s
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `2`: x.py should be run with `--stage 2` on CI, but was run with `--stage 1`', config.rs:1287:21

Do I need to set any environment variables or so? Is there anything Debian-specific that's somehow different on Ubuntu?

Thank you!

ltratt commented 1 year ago

I don't know much about how GitHub actions works so I can only guess but you might find that something along the lines of changing:

(cd alloy && ./x.py build --config ../.buildbot.config.toml)

rustup toolchain link alloy alloy/build/x86_64-unknown-linux-gnu/stage1

to:

(cd alloy && ./x.py build --stage 2 --config ../.buildbot.config.toml)

rustup toolchain link alloy alloy/build/x86_64-unknown-linux-gnu/stage2

might work. Or it might not...

smarr commented 1 year ago

Ok, that indeed makes things pass:

https://github.com/smarr/yksom/actions/runs/3963169863/jobs/6790706838

2.5h overall build time though 😆

GitHub actions in this case is really just a Ubuntu Linux, nothing really special, I believe.

What's the difference and meaning of stage 1 and 2 here?

Thanks!

ltratt commented 1 year ago

Excellent!

What's the difference and meaning of stage 1 and 2 here?

It's Rust's bootstrapping phases (https://rustc-dev-guide.rust-lang.org/building/bootstrapping.html). Why GitHub actions requires stage 2, I'm unsure!

smarr commented 1 year ago

Ah, I see. Thanks for the link!