From ecc350ca5c2eb50be8309c5f14f8bf0d87db9a02 Mon Sep 17 00:00:00 2001 From: Moon Flower Date: Mon, 12 Oct 2026 08:46:23 +0330 Subject: a --- src/tools/mklspwasm.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 src/tools/mklspwasm.sh (limited to 'src/tools/mklspwasm.sh') diff --git a/src/tools/mklspwasm.sh b/src/tools/mklspwasm.sh new file mode 100755 index 0000000..56ba43b --- /dev/null +++ b/src/tools/mklspwasm.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# builds the language server as WebAssembly: editors/vscode/server/lsp.wasm by +# default, or the path given as the first argument. the server is the compiler +# and src/lsp/server.zc on the map and genome that src/tools/mklsp.sh made in build/lsp, +# and the microcore (src/micro/micro.c) runs them. the host is client/wasmproc.js. +# needs clang with the wasm32 target and wasm-ld; run src/tools/mklsp.sh first. +# src/tools/mklspwasm.sh [outfile.wasm] +set -e +cd "$(dirname "$0")/../.." +OUT=${1:-editors/vscode/server/lsp.wasm} +LSP_BUILD_DIR=${LSP_BUILD_DIR:-build/lsp} +if [ "${LSP_REUSE_BUILD:-0}" != 1 ]; then bash src/tools/mklsp.sh "$LSP_BUILD_DIR" >/dev/null; fi +[ -f "$LSP_BUILD_DIR/src/lsp_genome.h" ] || { echo "mklspwasm: no language server image in $LSP_BUILD_DIR" >&2; exit 1; } +clang --target=wasm32 -O2 -w -fwrapv -nostdlib -fno-builtin -mbulk-memory -DJTYPE=int -DUSE_LSP_GENOME \ + -I"$LSP_BUILD_DIR/src" -Isrc/micro src/micro/micro.c src/micro/port_wasm_stream.c \ + -Wl,--no-entry -Wl,--export=wasm_chunk -Wl,--export=wasm_chunk_cap -Wl,--export=wasm_feed \ + -Wl,--export=wasm_close -Wl,--export=wasm_start -Wl,--export=wasm_resume \ + -Wl,--export=memory -Wl,--allow-undefined -Wl,--initial-memory=41943040 -Wl,-z,stack-size=65536 \ + -o "$OUT" +ls -l "$OUT" -- cgit v1.2.3