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

README.md: document rust requirement #452

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ The Wasm-sdk's build process needs some packages :
* `clang`
* `ninja`
* `python3`
* The latest rust toolchain
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this would indicate that 1.76.0 should work? But you mention that 1.77.0 did not work for you... what did you see?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see #450

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abrown do you have any more concerns?

Copy link
Collaborator

@abrown abrown Aug 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I kind of was thinking we could be more precise here and since wasm-component-ld is being successfully built with Rust 1.76.0 in CI we should probably document that. But then I'm confused why 1.77.0 didn't work for you? Or was something else the problem?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dunno. i merely blindly followed alex's advice to update the toolchain.

but is it worth to block this PR for a month while we don't document such precise verisions for other requirements either? (cmake python etc)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since it isn't clear to you which version you used

It's clear it was 1.77.0.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I guess I was the one who misunderstood, sorry! But something still doesn't seem quite right with what you reported. I tried to replicate what you found and I'm seeing that wasm-component-ld builds just fine with version v1.76.0:

$ cargo install 1.76.0
$ cargo default 1.76.0
$ cargo version
cargo 1.76.0 (c84b36747 2024-01-18)
$ cmake -G Ninja -B build/toolchain -S . -DWASI_SDK_BUILD_TOOLCHAIN=ON -DCMAKE_INSTALL_PREFIX=build/install
...
$ cmake --build build/toolchain --target wasm-component-ld
...
   Compiling wasm-component-ld v0.5.6
    Finished release [optimized] target(s) in 18.50s
  Installing /.../wasi-sdk/build/toolchain/wasm-component-ld/bin/wasm-component-ld
   Installed package `wasm-component-ld v0.5.6` (executable `wasm-component-ld`)

If I run the same with v1.75.0, I see the following failure:

error: cannot install package `wasm-component-ld 0.5.6`, it requires rustc 1.76.0 or newer, while the currently active rustc version is 1.75.0

Is there any chance something else was wrong with the environment you ran v1.77.0 in?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, which part of the claim was incorrect? "Latest"?

Yes, this is incorrect. For example when you created this PR Rust 1.79 was the latest Rust release. I believe what you were trying to document originally was that Rust 1.79 was required. As of today, however, Rust 1.80 is the latest Rust release. That means that the claim that the "latest" Rust release is needed is not correct.

Additionally wasm-component-ld as-used by wasi-sdk requires 1.76.0, and as Andrew pointed out this is tested in CI. This additionally means that the claim that the latest compiler is required is incorrect.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I guess I was the one who misunderstood, sorry! But something still doesn't seem quite right with what you reported. I tried to replicate what you found and I'm seeing that wasm-component-ld builds just fine with version v1.76.0:

$ cargo install 1.76.0
$ cargo default 1.76.0
$ cargo version
cargo 1.76.0 (c84b36747 2024-01-18)
$ cmake -G Ninja -B build/toolchain -S . -DWASI_SDK_BUILD_TOOLCHAIN=ON -DCMAKE_INSTALL_PREFIX=build/install
...
$ cmake --build build/toolchain --target wasm-component-ld
...
   Compiling wasm-component-ld v0.5.6
    Finished release [optimized] target(s) in 18.50s
  Installing /.../wasi-sdk/build/toolchain/wasm-component-ld/bin/wasm-component-ld
   Installed package `wasm-component-ld v0.5.6` (executable `wasm-component-ld`)

If I run the same with v1.75.0, I see the following failure:

error: cannot install package `wasm-component-ld 0.5.6`, it requires rustc 1.76.0 or newer, while the currently active rustc version is 1.75.0

Is there any chance something else was wrong with the environment you ran v1.77.0 in?

i can still reproduce #450 with rustc 1.77.0 + wasm-component-ld 0.5.5.
(we bumped wasm-component-ld version to 0.5.6, which doesn't seem to have the problem, after this PR.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this is incorrect. For example when you created this PR Rust 1.79 was the latest Rust release. I believe what you were trying to document originally was that Rust 1.79 was required. As of today, however, Rust 1.80 is the latest Rust release. That means that the claim that the "latest" Rust release is needed is not correct.

ok. i dropped the "latest" claim. the main claim of this PR was "we require rust".

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* The latest rust toolchain
* [Rust](https://rustup.rs) v1.76.0 or later

Copy link
Collaborator

@abrown abrown Aug 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this should read "cargo and rustc v1.76.0 or later" for consistency.


Please refer to your OS documentation to install those packages.

Expand Down
Loading