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

Conversation

yamt
Copy link
Contributor

@yamt yamt commented Jul 18, 2024

Fixes #450

@yamt
Copy link
Contributor Author

yamt commented Jul 18, 2024

  • i myself is not entirely happy with the rust requirement. but it's the current reality.
  • i don't know how latest it needs to be. rustc 1.77.0 didn't work. rustc 1.79.0 seems ok.

README.md Outdated
@@ -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".

README.md Outdated
@@ -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.

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.

it seems that the build issue mentioned in
WebAssembly#450
has been fixed by wasm-component-ld 0.5.6.
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

Successfully merging this pull request may close these issues.

error[E0658]: using an imported function as entry point main is experimental
3 participants