chumsky icon indicating copy to clipboard operation
chumsky copied to clipboard

WebAssembly build error

Open baoyachi opened this issue 2 months ago • 5 comments

build log:

➜  rust-demo git:(master) wasm-pack build --target bundler                           
[INFO]: 🎯  Checking for the Wasm target...
[INFO]: 🌀  Compiling to Wasm...
   Compiling cc v1.0.90
   Compiling version_check v0.9.4
   Compiling libc v0.2.153
   Compiling cfg-if v1.0.0
   Compiling once_cell v1.19.0
   Compiling zerocopy v0.7.32
   Compiling chumsky v1.0.0-alpha.7
   Compiling allocator-api2 v0.2.16
   Compiling unicode-ident v1.0.12
   Compiling demo v0.1.0 (~/rust-demo)
   Compiling ahash v0.8.11
   Compiling psm v0.1.21
   Compiling stacker v0.1.15
   Compiling hashbrown v0.14.3
error: failed to build archive: 'wasm32.o': section too large

The following warnings were emitted during compilation:

warning: [email protected]: warning: /Library/Developer/CommandLineTools/usr/bin/ranlib: archive library: ~/rust-demo/target/wasm32-unknown-unknown/release/build/psm-e7819be911e6050d/out/libpsm_s.a the table of contents is empty (no object file members in the library define global symbols)

error: could not compile `psm` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
Error: Compiling your crate to WebAssembly failed
Caused by: Compiling your crate to WebAssembly failed
Caused by: failed to execute `cargo build`: exited with exit status: 101
  full command: cd "~/rust-demo" && "cargo" "build" "--lib" "--release" "--target" "wasm32-unknown-unknown"
➜  rust-demo git:(master)

  • Cargo.toml file
[package]
name = "demo"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
chumsky = "1.0.0-alpha.6"

baoyachi avatar Apr 11 '24 07:04 baoyachi

It's difficult to determine what's going on here, but this line

error: failed to build archive: 'wasm32.o': section too large

Implies that perhaps too much code was being generated (although I'm not sure why that would be the case). Are you compiling with optimisations enabled?

zesterer avatar Apr 11 '24 09:04 zesterer

It's difficult to determine what's going on here, but this line

error: failed to build archive: 'wasm32.o': section too large

Implies that perhaps too much code was being generated (although I'm not sure why that would be the case). Are you compiling with optimisations enabled?

I just use command:wasm-pack build --target bundler

baoyachi avatar Apr 11 '24 14:04 baoyachi

This seems much more likely to be an issue with wasm-pack than chumsky, I'd recommend asking on the relevant GitHub repo instead.

zesterer avatar Apr 11 '24 16:04 zesterer

Try building in release and see if the issue persists. In a project that I was working on, I found that the debug build included type information that was larger than some limitation in the wasm parser. When I built in release mode, that type information wasn't included, and so it worked. Its obviously not ideal, but at least its a workaround until a final solution is implemented.

toadslop avatar May 08 '24 11:05 toadslop