aboutsummaryrefslogtreecommitdiff
path: root/src/tools/mklsp.sh
diff options
context:
space:
mode:
authorGravatar Moon Flower <moonflower@elhenney.local> 2026-10-12 08:46:23 +0330
committerGravatar Moon Flower <moonflower@elhenney.local> 2026-10-12 08:46:23 +0330
commitecc350ca5c2eb50be8309c5f14f8bf0d87db9a02 (patch)
tree70e0af76a1b13affff7c6cc8aac7b3e6ef960478 /src/tools/mklsp.sh
a
Diffstat (limited to 'src/tools/mklsp.sh')
-rwxr-xr-xsrc/tools/mklsp.sh14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/tools/mklsp.sh b/src/tools/mklsp.sh
new file mode 100755
index 0000000..5edf14a
--- /dev/null
+++ b/src/tools/mklsp.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+# builds the language server: src/tools/mklsp.sh [outdir] leaves outdir/zclsp.
+# the server is the real compiler (src/compiler/compiler.zc) in check mode plus
+# src/lsp/server.zc. its memory map is sized to that program by src/tools/automap.sh,
+# so the genome slot is as big as it needs to be and no bigger.
+set -e
+cd "$(dirname "$0")/../.."
+O=${1:-build/lsp}; CC=${CC:-gcc}
+# DOCS=1: the image carries the doc comments, so hover can show what a name is for
+DOCS=1 bash src/tools/automap.sh lsp "$O" src/lsp/server.zc >/dev/null
+rm -rf "$O/src"; mkdir -p "$O/src"
+cp src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h "$O/memmap.h" "$O/src/"
+cp "$O/genome.h" "$O/src/lsp_genome.h"
+$CC -O2 -w -fwrapv -DJTYPE=int -DZY_SANDBOX -DUSE_LSP_GENOME "$O/src/core.c" "$O/src/io_linux.c" -I"$O/src" -o "$O/zclsp"