·
7 commits
to main
since this release
LilyPond 2.26.1 (stable line,
upstream g8d6b320) compiled to wasm32-unknown-wasi,
built by recipe 0.1.3.
Verified on this runner: the module engraves SVG under wasmtime before publishing.
Running it
Needs a WASI Preview 1 host with WebAssembly exception handling (the
module uses the modern try_table/exnref encoding), the asset tree
mounted, and Guile's Scheme library available:
wasmtime run -W exceptions=y \
--dir "$PWD/work::/work" \
--dir "$PWD/lilypond::/lilypond" \
--dir "<guile>/share/guile/3.0::/guile" \
--dir "<guile>/lib/guile/3.0/ccache::/guile-ccache" \
--env LILYPOND_DATADIR=/lilypond \
--env FONTCONFIG_FILE=/lilypond/fonts/fonts.conf \
--env GUILE_LOAD_PATH=/guile \
--env GUILE_LOAD_COMPILED_PATH=/guile-ccache \
--env GUILE_SYSTEM_PATH=/guile \
--env GUILE_SYSTEM_COMPILED_PATH=/guile-ccache \
--env HOME=/work/home --env TMPDIR=/work/tmp \
--env XDG_CACHE_HOME=/work/cache \
--argv0 /lilypond \
lilypond-wasi-2.26.1-stable.wasm \
--formats=svg -o /work/out /work/in.ly
Mounting the bytecode tarball as (and appending
to ) cuts startup ~5x —
measured 4.7 s -> 0.9 s for a small score.
Formats are SVG and EPS. PDF and PNG need Ghostscript, which cannot
run under WASI — convert host-side, or use native LilyPond.
Nix users need none of this: the flake's nixConfig points at
lilypond-wasi.cachix.org (pass --accept-flake-config).