Stream: git-wasmtime

Topic: wasmtime / issue #9625 More context on a cranelift-codege...


view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 04:24):

arihant2math opened issue #9625:

Currently if an explicit isle directory is found when the "isle-in-source-tree" feature is not enabled, the following error message is shown by the build script for cranelift-codegen:

 --- stderr
  Error: directory isle_generated_code/ exists but is only used when
  `--feature isle-in-source-tree` is specified. To prevent confusion,
  this build script requires the directory to be removed when reverting
  to the usual generated code in target/. Please delete the directory and
  re-run this build.

as emitted by https://github.com/bytecodealliance/wasmtime/blob/3e0b7e501beebf5d7c094b7ac751f582ba12bc95/cranelift/codegen/build.rs#L78.

However this is misleading as deleting the target/ directory (atleast on windows) does not fix the issue. The directory, for me, was located in %HOME%\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\cranelift-codegen-0.113.1\\isle_generated_code. Could there possibly be a better check/error message and/or the actual directory located printed out to stderr?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 04:25):

arihant2math edited issue #9625:

Currently if an explicit isle directory is found when the "isle-in-source-tree" feature is not enabled, the following error message is shown by the build script for cranelift-codegen:

 --- stderr
  Error: directory isle_generated_code/ exists but is only used when
  `--feature isle-in-source-tree` is specified. To prevent confusion,
  this build script requires the directory to be removed when reverting
  to the usual generated code in target/. Please delete the directory and
  re-run this build.

as emitted by https://github.com/bytecodealliance/wasmtime/blob/main/cranelift/codegen/build.rs#L78C9-L87C10.

However this is misleading as deleting the target/ directory (atleast on windows) does not fix the issue. The directory, for me, was located in %HOME%\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\cranelift-codegen-0.113.1\\isle_generated_code. Could there possibly be a better check/error message and/or the actual directory located printed out to stderr?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 04:30):

cfallin commented on issue #9625:

This seems to be a duplicate of #9588. That directory should not ever be created inside the .cargo path. Could you say more about how you're building Cranelift?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 07:34):

arihant2math commented on issue #9625:

I'm using wasmtime, so building is done because/through that. I'm not using any special features, just the default configuration.

I did some digging around the code, I think the bug is around L61 when calling env::current_dir(), since I'm pretty sure that's inconsistent when used in build scripts, I printed it out and got "%HOME%\\.cargo\\registry\src\index.crates.io-6f17d22bba15001f\\cranelift-codegen-0.113.1", which seems to be the issue.

If changed to the OUT_DIR env variable, it would be in the target folder, which would be an improvement.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 08:41):

bjorn3 commented on issue #9625:

env::current_dir() is used for exactly two purposes in the build script:

If you aren't doing development on Cranelift itself, isle-in-source-tree should never be enabled (and it definitively shouldn't be enabled when using it as crates.io dependency as those are not allowed to write to their source directory) and as such isle_generated_code should never be generated in the source directory. We want to know why it is generated anyway. Is any project you built that depends on Cranelift using isle-in-source-tree?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 08:45):

bjorn3 commented on issue #9625:

So turns out until very recently Wasmer was enabling isle-in-source-tree: https://github.com/wasmerio/wasmer/pull/5202 Did you build Wasmer within the past couple of weeks? Note that Wasmer and Wasmtime are two entirely separate wasm engines. They just happen to share Cranelift as one of the compiler backends they use.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 16:27):

cfallin commented on issue #9625:

That's fairly obnoxious. Perhaps we should remove the feature altogether, unless folks are still using it -- I'll bring this up in the Cranelift meeting in a few minutes.

view this post on Zulip Wasmtime GitHub notifications bot (Nov 20 2024 at 18:15):

alexcrichton closed issue #9625:

Currently if an explicit isle directory is found when the "isle-in-source-tree" feature is not enabled, the following error message is shown by the build script for cranelift-codegen:

 --- stderr
  Error: directory isle_generated_code/ exists but is only used when
  `--feature isle-in-source-tree` is specified. To prevent confusion,
  this build script requires the directory to be removed when reverting
  to the usual generated code in target/. Please delete the directory and
  re-run this build.

as emitted by https://github.com/bytecodealliance/wasmtime/blob/main/cranelift/codegen/build.rs#L78C9-L87C10.

However this is misleading as deleting the target/ directory (atleast on windows) does not fix the issue. The directory, for me, was located in %HOME%\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\cranelift-codegen-0.113.1\\isle_generated_code. Could there possibly be a better check/error message and/or the actual directory located printed out to stderr?


Last updated: Dec 23 2024 at 12:05 UTC