Update chez-* vendor refs to jerboa-* (qt, scintilla, ssl, https, pcre2, ssh, sqlite, crypto, fuse)
ober
edd8bd05ecb7704de142e340ac77552748a79907
--- a/CLAUDE.md +++ b/CLAUDE.md @@ -269,4 +269,4 @@ The Qt backend is in `src/jerboa-emacs/qt/`. Each module corresponds to a TUI mo - `qt/echo.ss` — QLineEdit-based minibuffer - `qt/app.ss` — Application lifecycle, Qt event loop integration -Qt FFI uses `chez-qt` library. Run `make run-qt` to launch the Qt frontend. +Qt FFI uses `jerboa-qt` library. Run `make run-qt` to launch the Qt frontend. --- a/Makefile +++ b/Makefile @@ -2,11 +2,11 @@ VENDOR ?= $(CURDIR)/vendor JERBOA_REPO ?= https://git.sr.ht/~lisp/jerboa JERBOA_SHELL_REPO ?= https://git.sr.ht/~lisp/jerboa-shell -CHEZ_PCRE2_REPO ?= https://git.sr.ht/~lisp/chez-pcre2 -CHEZ_SCINTILLA_REPO ?= https://git.sr.ht/~lisp/chez-scintilla -CHEZ_QT_REPO ?= https://git.sr.ht/~lisp/chez-qt -CHEZ_SSL_REPO ?= https://git.sr.ht/~lisp/chez-ssl -CHEZ_HTTPS_REPO ?= https://git.sr.ht/~lisp/chez-https +JERBOA_PCRE2_REPO ?= https://git.sr.ht/~lisp/jerboa-pcre2 +JERBOA_SCINTILLA_REPO ?= https://git.sr.ht/~lisp/jerboa-scintilla +JERBOA_QT_REPO ?= https://git.sr.ht/~lisp/jerboa-qt +JERBOA_SSL_REPO ?= https://git.sr.ht/~lisp/jerboa-ssl +JERBOA_HTTPS_REPO ?= https://git.sr.ht/~lisp/jerboa-https JERBOA_AWS_REPO ?= https://git.sr.ht/~lisp/jerboa-aws JEMACS_FEATURES ?= @@ -26,7 +26,7 @@ else endif JEMACS_ENABLE_AWS := $(if $(filter aws,$(JEMACS_ENABLED_FEATURES)),1,0) -VENDOR_REPOS := jerboa jerboa-shell chez-pcre2 chez-scintilla chez-qt chez-ssl chez-https +VENDOR_REPOS := jerboa jerboa-shell jerboa-pcre2 jerboa-scintilla jerboa-qt jerboa-ssl jerboa-https ifeq ($(JEMACS_ENABLE_AWS),1) VENDOR_REPOS += jerboa-aws endif @@ -39,25 +39,25 @@ JSH_VENDOR ?= $(JSH_ROOT)/vendor COREUTILS ?= $(JSH_VENDOR)/jerboa-coreutils/lib JSH_AWK ?= $(JSH_VENDOR)/jerboa-awk/lib JSH_SED ?= $(JSH_VENDOR)/jerboa-sed/lib -CHEZ_SSH ?= $(JSH_VENDOR)/chez-ssh/src -CHEZ_SQLITE ?= $(JSH_VENDOR)/chez-sqlite/src -CHEZ_CRYPTO ?= $(JSH_VENDOR)/chez-crypto/src -CHEZ_FUSE ?= $(JSH_VENDOR)/chez-fuse/lib +JERBOA_SSH ?= $(JSH_VENDOR)/jerboa-ssh/src +JERBOA_SQLITE ?= $(JSH_VENDOR)/jerboa-sqlite/src +JERBOA_CRYPTO ?= $(JSH_VENDOR)/jerboa-crypto/src +JERBOA_FUSE ?= $(JSH_VENDOR)/jerboa-fuse/lib GHERKIN ?= $(VENDOR)/gherkin-runtime JAWS_ROOT ?= $(VENDOR)/jerboa-aws JAWS ?= $(JAWS_ROOT)/lib -CHEZ_SSL_ROOT ?= $(VENDOR)/chez-ssl -CSSL ?= $(CHEZ_SSL_ROOT)/src -CHEZ_HTTPS_ROOT ?= $(VENDOR)/chez-https -CHTTPS ?= $(CHEZ_HTTPS_ROOT)/src -CQT ?= $(VENDOR)/chez-qt -CHEZ_PCRE2_ROOT ?= $(VENDOR)/chez-pcre2 -CHEZ_SCINTILLA_ROOT ?= $(VENDOR)/chez-scintilla +JERBOA_SSL_ROOT ?= $(VENDOR)/jerboa-ssl +CSSL ?= $(JERBOA_SSL_ROOT)/src +JERBOA_HTTPS_ROOT ?= $(VENDOR)/jerboa-https +CHTTPS ?= $(JERBOA_HTTPS_ROOT)/src +CQT ?= $(VENDOR)/jerboa-qt +JERBOA_PCRE2_ROOT ?= $(VENDOR)/jerboa-pcre2 +JERBOA_SCINTILLA_ROOT ?= $(VENDOR)/jerboa-scintilla AWS_LIBDIRS := ifeq ($(JEMACS_ENABLE_AWS),1) AWS_LIBDIRS := :$(JAWS):$(CSSL):$(CHTTPS) endif -LIBDIRS = --libdirs lib:$(JERBOA)/lib:$(JSH):$(COREUTILS):$(JSH_AWK):$(JSH_SED):$(CHEZ_SSH):$(CHEZ_SQLITE):$(CHEZ_CRYPTO):$(CHEZ_FUSE):$(GHERKIN):$(CHEZ_PCRE2_ROOT):$(CHEZ_SCINTILLA_ROOT)/src:$(CQT)$(AWS_LIBDIRS) +LIBDIRS = --libdirs lib:$(JERBOA)/lib:$(JSH):$(COREUTILS):$(JSH_AWK):$(JSH_SED):$(JERBOA_SSH):$(JERBOA_SQLITE):$(JERBOA_CRYPTO):$(JERBOA_FUSE):$(GHERKIN):$(JERBOA_PCRE2_ROOT):$(JERBOA_SCINTILLA_ROOT)/src:$(CQT)$(AWS_LIBDIRS) JERBUILD = $(SCHEME) --libdirs $(JERBOA)/lib --script $(JERBOA)/jerbuild.ss # --- Platform detection ------------------------------------------------------- @@ -67,7 +67,7 @@ ifeq ($(UNAME_S),Darwin) # -undefined dynamic_lookup: allow symbols resolved at load time from the host process SHLIB_FLAGS := -dynamiclib -Wl,-undefined,dynamic_lookup PRELOAD_VAR := DYLD_INSERT_LIBRARIES - export DYLD_LIBRARY_PATH := .:$(CHEZ_PCRE2_ROOT):$(CHEZ_SCINTILLA_ROOT):$(CQT):$(JSH_ROOT):$(DYLD_LIBRARY_PATH) + export DYLD_LIBRARY_PATH := .:$(JERBOA_PCRE2_ROOT):$(JERBOA_SCINTILLA_ROOT):$(CQT):$(JSH_ROOT):$(DYLD_LIBRARY_PATH) PTY_LINK := XVFB_RUN := export QT_QPA_PLATFORM := cocoa @@ -79,7 +79,7 @@ else SHLIB_EXT := so SHLIB_FLAGS := -shared -fPIC PRELOAD_VAR := LD_PRELOAD - export LD_LIBRARY_PATH := .:$(CHEZ_PCRE2_ROOT):$(CHEZ_SCINTILLA_ROOT):$(CQT):$(JSH_ROOT):$(LD_LIBRARY_PATH) + export LD_LIBRARY_PATH := .:$(JERBOA_PCRE2_ROOT):$(JERBOA_SCINTILLA_ROOT):$(CQT):$(JSH_ROOT):$(LD_LIBRARY_PATH) PTY_LINK := -lutil XVFB_RUN := xvfb-run -a QT_INC_FALLBACK := /usr/include/x86_64-linux-gnu/qt6 @@ -88,16 +88,16 @@ else TS_LIB_DIR := /opt/tree-sitter-lib endif NATIVE_LIB := $(JERBOA)/lib/libjerboa_native.$(SHLIB_EXT) -SSL_SHIM := $(CHEZ_SSL_ROOT)/chez_ssl_shim.$(SHLIB_EXT) -PRELOAD_ENV := $(PRELOAD_VAR)=./libqt_shim.$(SHLIB_EXT):./qt_chez_shim.$(SHLIB_EXT):$(NATIVE_LIB):./libjsh-ffi.$(SHLIB_EXT):./libjsh_coreutils_stub.$(SHLIB_EXT):$(SSL_SHIM) +SSL_SHIM := $(JERBOA_SSL_ROOT)/jerboa_ssl_shim.$(SHLIB_EXT) +PRELOAD_ENV := $(PRELOAD_VAR)=./libqt_shim.$(SHLIB_EXT):./jerboa_qt_shim.$(SHLIB_EXT):$(NATIVE_LIB):./libjsh-ffi.$(SHLIB_EXT):./libjsh_coreutils_stub.$(SHLIB_EXT):$(SSL_SHIM) # ----------------------------------------------------------------------------- -export CHEZ_SCINTILLA_LIB := $(CHEZ_SCINTILLA_ROOT) -export CHEZ_PCRE2_LIB := $(CHEZ_PCRE2_ROOT) +export JERBOA_SCINTILLA_LIB := $(JERBOA_SCINTILLA_ROOT) +export JERBOA_PCRE2_LIB := $(JERBOA_PCRE2_ROOT) export JSH_FFI_LIB := $(JSH_ROOT) -export CHEZ_SSL_DIR := $(CHEZ_SSL_ROOT) -export CHEZ_QT_LIB := . -export CHEZ_QT_SHIM_DIR := . +export JERBOA_SSL_DIR := $(JERBOA_SSL_ROOT) +export JERBOA_QT_LIB := . +export JERBOA_QT_SHIM_DIR := . ifeq ($(UNAME_S),Darwin) export CHEZ_DIR := $(shell ls -d /opt/homebrew/lib/csv*/tarm64osx 2>/dev/null | head -1) endif @@ -155,11 +155,11 @@ vendor-deps: case "$$repo" in \ jerboa) url="$(JERBOA_REPO)" ;; \ jerboa-shell) url="$(JERBOA_SHELL_REPO)" ;; \ - chez-pcre2) url="$(CHEZ_PCRE2_REPO)" ;; \ - chez-scintilla) url="$(CHEZ_SCINTILLA_REPO)" ;; \ - chez-qt) url="$(CHEZ_QT_REPO)" ;; \ - chez-ssl) url="$(CHEZ_SSL_REPO)" ;; \ - chez-https) url="$(CHEZ_HTTPS_REPO)" ;; \ + jerboa-pcre2) url="$(JERBOA_PCRE2_REPO)" ;; \ + jerboa-scintilla) url="$(JERBOA_SCINTILLA_REPO)" ;; \ + jerboa-qt) url="$(JERBOA_QT_REPO)" ;; \ + jerboa-ssl) url="$(JERBOA_SSL_REPO)" ;; \ + jerboa-https) url="$(JERBOA_HTTPS_REPO)" ;; \ jerboa-aws) url="$(JERBOA_AWS_REPO)" ;; \ esac; \ dest="$(VENDOR)/$$repo"; \ @@ -183,7 +183,7 @@ vendor-deps: deps: vendor-deps $(MAKE) -C $(JSH_ROOT) vendor-deps $(MAKE) -C $(JERBOA) build - $(MAKE) -C $(CHEZ_PCRE2_ROOT) SCHEME=$(SCHEME) + $(MAKE) -C $(JERBOA_PCRE2_ROOT) SCHEME=$(SCHEME) # Generate lib/jerboa-emacs/*.sls from src/jerboa-emacs/*.ss (incremental) build: deps @@ -287,8 +287,8 @@ libqt_shim.$(SHLIB_EXT): vendor/qt_shim.cpp -o libqt_shim.$(SHLIB_EXT) \ $(QT_LIBS) $(QSCI_LIBS) -lvterm $(PTY_LINK) -qt_chez_shim.$(SHLIB_EXT): vendor/qt_chez_shim.c vendor/qt_shim.h - gcc $(SHLIB_FLAGS) -O2 -o qt_chez_shim.$(SHLIB_EXT) vendor/qt_chez_shim.c -Ivendor -DQT_SCINTILLA_AVAILABLE -Wall +jerboa_qt_shim.$(SHLIB_EXT): vendor/jerboa_qt_shim.c vendor/qt_shim.h + gcc $(SHLIB_FLAGS) -O2 -o jerboa_qt_shim.$(SHLIB_EXT) vendor/jerboa_qt_shim.c -Ivendor -DQT_SCINTILLA_AVAILABLE -Wall libjsh-ffi.$(SHLIB_EXT): $(JSH_ROOT)/ffi-shim.c gcc $(SHLIB_FLAGS) -O2 -o libjsh-ffi.$(SHLIB_EXT) $(JSH_ROOT)/ffi-shim.c -Wall @@ -299,21 +299,21 @@ libjsh_coreutils_stub.$(SHLIB_EXT): vendor/libjsh_coreutils_stub.a $(NATIVE_LIB): $(MAKE) -C $(JERBOA) native -$(SSL_SHIM): $(CHEZ_SSL_ROOT)/chez_ssl_shim.c - $(MAKE) -C $(CHEZ_SSL_ROOT) +$(SSL_SHIM): $(JERBOA_SSL_ROOT)/jerboa_ssl_shim.c + $(MAKE) -C $(JERBOA_SSL_ROOT) # macOS native binary — compile all modules + link jemacs-qt binary -macos: build libqt_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) repl_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) - $(MAKE) -C $(CHEZ_PCRE2_ROOT) SCHEME=$(SCHEME) +macos: build libqt_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) repl_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) + $(MAKE) -C $(JERBOA_PCRE2_ROOT) SCHEME=$(SCHEME) JSH_DIR=$(JSH) $(PRELOAD_ENV) $(SCHEME) $(LIBDIRS) --script build-binary-qt.ss ./jemacs-qt --version -run-qt: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) +run-qt: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) $(PRELOAD_ENV) $(SCHEME) $(LIBDIRS) --script qt-main.ss # Headless Qt with automation REPL (for Claude). Uses xvfb-run for # virtual display on Linux (static binary needs xcb). Auto-assigned REPL port. -run-qt-test: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) +run-qt-test: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) @rm -f $(HOME)/.jerboa-repl-port $(XVFB_RUN) $(PRELOAD_ENV) \ $(SCHEME) $(LIBDIRS) --script qt-main.ss --repl 0 & @@ -471,7 +471,7 @@ test-vtscreen: test-debug-repl: $(SCHEME) $(LIBDIRS) --program tests/test-debug-repl.ss -test-qt: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) +test-qt: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) QT_QPA_PLATFORM=offscreen $(PRELOAD_ENV) $(SCHEME) $(LIBDIRS) --script tests/test-qt.ss @if [ -f tests/test-qt-part2.ss ]; then \ QT_QPA_PLATFORM=offscreen $(PRELOAD_ENV) $(SCHEME) $(LIBDIRS) --script tests/test-qt-part2.ss; \ @@ -498,22 +498,22 @@ test-term-hang: binary-qt: build $(SCHEME) $(LIBDIRS) --script build-binary-qt.ss -# chez-scintilla shim. The C/C++ Scintilla vendor tree, when needed for TUI -# binaries, must live under the vendored chez-scintilla checkout. -SCI_DIR ?= $(CHEZ_SCINTILLA_ROOT) +# jerboa-scintilla shim. The C/C++ Scintilla vendor tree, when needed for TUI +# binaries, must live under the vendored jerboa-scintilla checkout. +SCI_DIR ?= $(JERBOA_SCINTILLA_ROOT) SCINTILLA_VENDOR ?= $(SCI_DIR)/vendor -chez_scintilla_shim.$(SHLIB_EXT): $(SCI_DIR)/chez_scintilla_shim.c +jerboa_scintilla_shim.$(SHLIB_EXT): $(SCI_DIR)/jerboa_scintilla_shim.c @test -d $(SCINTILLA_VENDOR) || \ - { echo "ERROR: SCINTILLA_VENDOR='$(SCINTILLA_VENDOR)' not found. Populate it from the chez-scintilla dependency or set SCINTILLA_VENDOR."; exit 1; } + { echo "ERROR: SCINTILLA_VENDOR='$(SCINTILLA_VENDOR)' not found. Populate it from the jerboa-scintilla dependency or set SCINTILLA_VENDOR."; exit 1; } gcc $(SHLIB_FLAGS) -O2 \ -I$(SCINTILLA_VENDOR)/scintilla/include \ -I$(SCINTILLA_VENDOR)/scintilla/src \ -I$(SCINTILLA_VENDOR)/scintilla/termbox \ -I$(SCINTILLA_VENDOR)/scintilla/termbox/termbox_next/src \ -I$(SCINTILLA_VENDOR)/lexilla/include \ - -o chez_scintilla_shim.$(SHLIB_EXT) \ - $(SCI_DIR)/chez_scintilla_shim.c \ + -o jerboa_scintilla_shim.$(SHLIB_EXT) \ + $(SCI_DIR)/jerboa_scintilla_shim.c \ -Wl,--whole-archive \ $(SCINTILLA_VENDOR)/scintilla/bin/scintilla.a \ $(SCINTILLA_VENDOR)/lexilla/bin/liblexilla.a \ @@ -521,16 +521,16 @@ chez_scintilla_shim.$(SHLIB_EXT): $(SCI_DIR)/chez_scintilla_shim.c -Wl,--no-whole-archive \ -lstdc++ -lpthread -Wall -# pcre2 shim — copied from chez-pcre2 (already built there) -PCRE2_DIR ?= $(CHEZ_PCRE2_ROOT) +# pcre2 shim — copied from jerboa-pcre2 (already built there) +PCRE2_DIR ?= $(JERBOA_PCRE2_ROOT) pcre2_shim.$(SHLIB_EXT): $(PCRE2_DIR)/pcre2_shim.$(SHLIB_EXT) cp $< $@ # TUI binary: embeds all Scheme code, links dynamically against system libs. -# Shims must be in the same directory as the binary (jemacs-main.c sets CHEZ_SCINTILLA_LIB -# and CHEZ_PCRE2_LIB to dirname(binary) when not already set in environment). -binary: build vterm_shim.$(SHLIB_EXT) chez_scintilla_shim.$(SHLIB_EXT) pcre2_shim.$(SHLIB_EXT) +# Shims must be in the same directory as the binary (jemacs-main.c sets JERBOA_SCINTILLA_LIB +# and JERBOA_PCRE2_LIB to dirname(binary) when not already set in environment). +binary: build vterm_shim.$(SHLIB_EXT) jerboa_scintilla_shim.$(SHLIB_EXT) pcre2_shim.$(SHLIB_EXT) find vendor/jerboa-shell -name '*.wpo' -delete 2>/dev/null; true $(SCHEME) $(LIBDIRS) --script build-binary.ss @@ -551,12 +551,12 @@ JERBOA_SRC ?= $(JERBOA) GHERKIN_SRC ?= $(CURDIR)/vendor/gherkin-runtime JSH_SRC ?= $(JSH_ROOT) JSH_VENDOR_SRC ?= $(JSH_SRC)/vendor -PCRE2_SRC ?= $(CHEZ_PCRE2_ROOT) -SCI_SRC ?= $(CHEZ_SCINTILLA_ROOT) +PCRE2_SRC ?= $(JERBOA_PCRE2_ROOT) +SCI_SRC ?= $(JERBOA_SCINTILLA_ROOT) QT_SRC ?= $(CQT) JAWS_SRC ?= $(JAWS) -CSSL_SRC ?= $(CHEZ_SSL_ROOT) -CHTTPS_SRC ?= $(CHEZ_HTTPS_ROOT) +CSSL_SRC ?= $(JERBOA_SSL_ROOT) +CHTTPS_SRC ?= $(JERBOA_HTTPS_ROOT) AWS_PODMAN_BUILD_CONTEXTS := AWS_PODMAN_RUN_MOUNTS := AWS_STATIC_LIBDIRS := @@ -566,16 +566,16 @@ AWS_LOCAL_STATIC_ENV := JEMACS_AWS_DISABLED=1 ifeq ($(JEMACS_ENABLE_AWS),1) AWS_PODMAN_BUILD_CONTEXTS := \ --build-context jaws-src=$(JAWS_SRC) \ - --build-context chez-ssl-src=$(CSSL_SRC) \ - --build-context chez-https-src=$(CHTTPS_SRC) + --build-context jerboa-ssl-src=$(CSSL_SRC) \ + --build-context jerboa-https-src=$(CHTTPS_SRC) AWS_PODMAN_RUN_MOUNTS := \ -v $(JAWS_SRC):/host-jaws:ro \ - -v $(CSSL_SRC):/host-chez-ssl:ro \ - -v $(CHTTPS_SRC):/host-chez-https:ro - AWS_STATIC_LIBDIRS := :/deps/jerboa-aws:/deps/chez-ssl/src:/deps/chez-https/src - AWS_STATIC_ENV := JAWS_DIR=/deps/jerboa-aws CHEZ_SSL_DIR=/deps/chez-ssl CHEZ_HTTPS_DIR=/deps/chez-https/src + -v $(CSSL_SRC):/host-jerboa-ssl:ro \ + -v $(CHTTPS_SRC):/host-jerboa-https:ro + AWS_STATIC_LIBDIRS := :/deps/jerboa-aws:/deps/jerboa-ssl/src:/deps/jerboa-https/src + AWS_STATIC_ENV := JAWS_DIR=/deps/jerboa-aws JERBOA_SSL_DIR=/deps/jerboa-ssl JERBOA_HTTPS_DIR=/deps/jerboa-https/src AWS_LOCAL_STATIC_LIBDIRS := :$(JAWS):$(CSSL):$(CHTTPS) - AWS_LOCAL_STATIC_ENV := JAWS_DIR=$(JAWS) CHEZ_SSL_DIR=$(CHEZ_SSL_ROOT) CHEZ_HTTPS_DIR=$(CHTTPS) + AWS_LOCAL_STATIC_ENV := JAWS_DIR=$(JAWS) JERBOA_SSL_DIR=$(JERBOA_SSL_ROOT) JERBOA_HTTPS_DIR=$(CHTTPS) endif # Use stub if the Rust musl build hasn't been compiled yet (regular file check) _RUST_COREUTILS := $(JSH_SRC)/rust-coreutils/target/x86_64-unknown-linux-musl/release/libjsh_coreutils.a @@ -657,17 +657,17 @@ build-jemacs-qt-static: check-root ar rcs /deps/qt-shim/libqt_shim.a \ /deps/qt-shim/qt_shim_static.o; \ fi && \ - cp -a /src/vendor/chez-qt/. /deps/chez-qt/ && \ - find /deps/chez-qt -name '*.so' -delete && \ - find /deps/chez-qt -name '*.wpo' -delete && \ - /opt/chez/bin/scheme --libdirs /deps/chez-qt \ - --compile-imported-libraries --script /deps/chez-qt/compile-libs.ss && \ - cp /src/vendor/chez-pcre2-ffi-static.ss /deps/chez-pcre2/chez-pcre2/ffi.ss && \ - /opt/chez/bin/scheme --libdirs /deps/chez-pcre2 \ - --compile-imported-libraries --script /src/vendor/chez-pcre2-compile-libs.ss && \ - cp /src/vendor/chez-scintilla-ffi-static.sls /deps/chez-scintilla/src/chez-scintilla/ffi.sls && \ - JEMACS_STATIC=1 /opt/chez/bin/scheme --libdirs /deps/chez-scintilla/src \ - --compile-imported-libraries --script /src/vendor/chez-scintilla-compile-libs.ss && \ + cp -a /src/vendor/jerboa-qt/. /deps/jerboa-qt/ && \ + find /deps/jerboa-qt -name '*.so' -delete && \ + find /deps/jerboa-qt -name '*.wpo' -delete && \ + /opt/chez/bin/scheme --libdirs /deps/jerboa-qt \ + --compile-imported-libraries --script /deps/jerboa-qt/compile-libs.ss && \ + cp /src/vendor/jerboa-pcre2-ffi-static.ss /deps/jerboa-pcre2/jerboa-pcre2/ffi.ss && \ + /opt/chez/bin/scheme --libdirs /deps/jerboa-pcre2 \ + --compile-imported-libraries --script /src/vendor/jerboa-pcre2-compile-libs.ss && \ + cp /src/vendor/jerboa-scintilla-ffi-static.sls /deps/jerboa-scintilla/src/jerboa-scintilla/ffi.sls && \ + JEMACS_STATIC=1 /opt/chez/bin/scheme --libdirs /deps/jerboa-scintilla/src \ + --compile-imported-libraries --script /src/vendor/jerboa-scintilla-compile-libs.ss && \ cp /src/vendor/jerboa-net-tcp-static.sls /deps/jerboa/lib/std/net/tcp.sls && \ cp /src/vendor/jerboa-net-tcp-raw-static.sls /deps/jerboa/lib/std/net/tcp-raw.sls && \ cp /src/vendor/jerboa-net-uri.sls /deps/jerboa/lib/std/net/uri.sls && \ @@ -699,19 +699,19 @@ build-jemacs-qt-static: check-root gcc -c -O2 -o /tmp/jemacs-build/treesitter_queries.o \ /src/support/treesitter_queries.c -Wall && \ if [ "$(JEMACS_ENABLE_AWS)" = "1" ]; then \ - cp /src/vendor/chez-ssl-static.sls /deps/chez-ssl/src/chez-ssl.sls && \ + cp /src/vendor/jerboa-ssl-static.sls /deps/jerboa-ssl/src/jerboa-ssl.sls && \ cp /src/vendor/jerboa-aws-crypto-native.sls /deps/jerboa-aws/jerboa-aws/crypto.sls && \ - find /deps/chez-ssl -name '*.so' -delete && find /deps/chez-ssl -name '*.wpo' -delete && \ - find /deps/chez-https -name '*.so' -delete && find /deps/chez-https -name '*.wpo' -delete && \ + find /deps/jerboa-ssl -name '*.so' -delete && find /deps/jerboa-ssl -name '*.wpo' -delete && \ + find /deps/jerboa-https -name '*.so' -delete && find /deps/jerboa-https -name '*.wpo' -delete && \ find /deps/jerboa-aws -name '*.so' -delete && find /deps/jerboa-aws -name '*.wpo' -delete && \ JEMACS_STATIC=1 /opt/chez/bin/scheme \ - --libdirs /deps/chez-ssl/src:/deps/jerboa/lib \ - --compile-imported-libraries -q --script /src/vendor/chez-ssl-compile-libs.ss && \ + --libdirs /deps/jerboa-ssl/src:/deps/jerboa/lib \ + --compile-imported-libraries -q --script /src/vendor/jerboa-ssl-compile-libs.ss && \ JEMACS_STATIC=1 /opt/chez/bin/scheme \ - --libdirs /deps/chez-https/src:/deps/chez-ssl/src \ - --compile-imported-libraries -q --script /src/vendor/chez-https-compile-libs.ss && \ + --libdirs /deps/jerboa-https/src:/deps/jerboa-ssl/src \ + --compile-imported-libraries -q --script /src/vendor/jerboa-https-compile-libs.ss && \ JEMACS_STATIC=1 /opt/chez/bin/scheme \ - --libdirs /deps/jerboa-aws:/deps/chez-https/src:/deps/chez-ssl/src:/deps/jerboa/lib \ + --libdirs /deps/jerboa-aws:/deps/jerboa-https/src:/deps/jerboa-ssl/src:/deps/jerboa/lib \ --compile-imported-libraries -q --script /src/vendor/jerboa-aws-compile-libs.ss; \ else \ echo "Skipping AWS static feature modules"; \ @@ -722,10 +722,10 @@ build-jemacs-qt-static: check-root JERBOA_DIR=/deps/jerboa/lib \ JSH_DIR=/deps/jsh/src \ GHERKIN_DIR=/src/vendor/gherkin-runtime \ - CHEZ_PCRE2_DIR=/deps/chez-pcre2 \ - CHEZ_SCINTILLA_DIR=/deps/chez-scintilla/src \ - CHEZ_QT_DIR=/deps/chez-qt \ - CHEZ_QT_SHIM_DIR=/deps/qt-shim \ + JERBOA_PCRE2_DIR=/deps/jerboa-pcre2 \ + JERBOA_SCINTILLA_DIR=/deps/jerboa-scintilla/src \ + JERBOA_QT_DIR=/deps/jerboa-qt \ + JERBOA_QT_SHIM_DIR=/deps/qt-shim \ JSH_COREUTILS_LIB=/deps/jsh/libjsh_coreutils.a \ $(AWS_STATIC_ENV) \ TREE_SITTER_INCLUDE=/opt/tree-sitter-include \ @@ -735,7 +735,7 @@ build-jemacs-qt-static: check-root TREE_SITTER_QUERIES_OBJ=/tmp/jemacs-build/treesitter_queries.o \ PKG_CONFIG_PATH=/opt/qt6-static/lib/pkgconfig \ /opt/chez/bin/scheme \ - --libdirs lib:/deps/jerboa/lib:/deps/jsh/src:/deps/jsh/vendor/jerboa-coreutils/lib:/deps/jsh/vendor/jerboa-awk/lib:/deps/jsh/vendor/jerboa-sed/lib:/deps/jsh/vendor/chez-ssh/src:/deps/jsh/vendor/chez-sqlite/src:/deps/jsh/vendor/chez-crypto/src:/deps/jsh/vendor/chez-fuse/lib:/src/vendor/gherkin-runtime:/deps/chez-pcre2:/deps/chez-scintilla/src:/deps/chez-qt$(AWS_STATIC_LIBDIRS) \ + --libdirs lib:/deps/jerboa/lib:/deps/jsh/src:/deps/jsh/vendor/jerboa-coreutils/lib:/deps/jsh/vendor/jerboa-awk/lib:/deps/jsh/vendor/jerboa-sed/lib:/deps/jsh/vendor/jerboa-ssh/src:/deps/jsh/vendor/jerboa-sqlite/src:/deps/jsh/vendor/jerboa-crypto/src:/deps/jsh/vendor/jerboa-fuse/lib:/src/vendor/gherkin-runtime:/deps/jerboa-pcre2:/deps/jerboa-scintilla/src:/deps/jerboa-qt$(AWS_STATIC_LIBDIRS) \ --script build-binary-qt.ss linux-static-qt-podman: ensure-podman-deps @@ -772,11 +772,11 @@ linux-static-qt-podman: ensure-podman-deps -q --script /tmp/compile-jerboa-core.ss && \ echo 'COMPILED: jerboa core + prelude'; \ if [ '$(JEMACS_ENABLE_AWS)' = '1' ]; then \ - mkdir -p /deps/jerboa-aws /deps/chez-ssl/src /deps/chez-https/src && \ + mkdir -p /deps/jerboa-aws /deps/jerboa-ssl/src /deps/jerboa-https/src && \ cp -a /host-jaws/. /deps/jerboa-aws/ && \ - cp -a /host-chez-ssl/. /deps/chez-ssl/ && \ - cp -a /host-chez-https/. /deps/chez-https/ && \ - echo 'SYNC: jerboa-aws, chez-ssl, chez-https copied'; \ + cp -a /host-jerboa-ssl/. /deps/jerboa-ssl/ && \ + cp -a /host-jerboa-https/. /deps/jerboa-https/ && \ + echo 'SYNC: jerboa-aws, jerboa-ssl, jerboa-https copied'; \ else \ echo 'SYNC: AWS feature disabled'; \ fi; \ @@ -789,9 +789,9 @@ linux-static-qt-podman: ensure-podman-deps # ============================================================================= # Scintilla/termbox/Lexilla C/C++ source + headers used to build static -# archives inside the Alpine container. Keep this under chez-scintilla's +# archives inside the Alpine container. Keep this under jerboa-scintilla's # vendored checkout. -SCI_VENDOR_SRC ?= $(CHEZ_SCINTILLA_ROOT)/vendor +SCI_VENDOR_SRC ?= $(JERBOA_SCINTILLA_ROOT)/vendor # Fast static TUI binary via Podman. # Builds Scintilla+termbox+Lexilla from source, then ./jemacs (~5-10 min). @@ -811,12 +811,12 @@ build-jemacs-tui-static: check-root cd /src && find lib -name '*.so' -o -name '*.wpo' | xargs rm -f 2>/dev/null; \ find /src/src/jerboa-emacs -name '*.ss' | sed 's|/src/src/|/src/lib/|; s|\.ss$$|.sls|' | xargs rm -f 2>/dev/null; \ cd /src && make build SCHEME=/opt/chez/bin/scheme JERBOA=/deps/jerboa && \ - cp /src/vendor/chez-pcre2-ffi-static.ss /deps/chez-pcre2/chez-pcre2/ffi.ss && \ - /opt/chez/bin/scheme --libdirs /deps/chez-pcre2 \ - --compile-imported-libraries --script /src/vendor/chez-pcre2-compile-libs.ss && \ - cp /src/vendor/chez-scintilla-ffi-static.sls /deps/chez-scintilla/src/chez-scintilla/ffi.sls && \ - JEMACS_STATIC=1 /opt/chez/bin/scheme --libdirs /deps/chez-scintilla/src \ - --compile-imported-libraries --script /src/vendor/chez-scintilla-compile-libs.ss && \ + cp /src/vendor/jerboa-pcre2-ffi-static.ss /deps/jerboa-pcre2/jerboa-pcre2/ffi.ss && \ + /opt/chez/bin/scheme --libdirs /deps/jerboa-pcre2 \ + --compile-imported-libraries --script /src/vendor/jerboa-pcre2-compile-libs.ss && \ + cp /src/vendor/jerboa-scintilla-ffi-static.sls /deps/jerboa-scintilla/src/jerboa-scintilla/ffi.sls && \ + JEMACS_STATIC=1 /opt/chez/bin/scheme --libdirs /deps/jerboa-scintilla/src \ + --compile-imported-libraries --script /src/vendor/jerboa-scintilla-compile-libs.ss && \ cp /src/vendor/jerboa-net-tcp-static.sls /deps/jerboa/lib/std/net/tcp.sls && \ cp /src/vendor/jerboa-net-tcp-raw-static.sls /deps/jerboa/lib/std/net/tcp-raw.sls && \ cp /src/vendor/jerboa-net-uri.sls /deps/jerboa/lib/std/net/uri.sls && \ @@ -851,17 +851,17 @@ build-jemacs-tui-static: check-root JERBOA_DIR=/deps/jerboa/lib \ JSH_DIR=/deps/jsh/src \ GHERKIN_DIR=/src/vendor/gherkin-runtime \ - CHEZ_PCRE2_DIR=/deps/chez-pcre2 \ - CHEZ_SCINTILLA_DIR=/deps/chez-scintilla/src \ + JERBOA_PCRE2_DIR=/deps/jerboa-pcre2 \ + JERBOA_SCINTILLA_DIR=/deps/jerboa-scintilla/src \ SCI_VENDOR_DIR=/deps/sci-vendor \ JSH_COREUTILS_LIB=/deps/jsh/libjsh_coreutils.a \ /opt/chez/bin/scheme \ - --libdirs lib:/deps/jerboa/lib:/deps/jsh/src:/deps/jsh/vendor/jerboa-coreutils/lib:/deps/jsh/vendor/jerboa-awk/lib:/deps/jsh/vendor/jerboa-sed/lib:/deps/jsh/vendor/chez-ssh/src:/deps/jsh/vendor/chez-sqlite/src:/deps/jsh/vendor/chez-crypto/src:/deps/jsh/vendor/chez-fuse/lib:/src/vendor/gherkin-runtime:/deps/chez-pcre2:/deps/chez-scintilla/src \ + --libdirs lib:/deps/jerboa/lib:/deps/jsh/src:/deps/jsh/vendor/jerboa-coreutils/lib:/deps/jsh/vendor/jerboa-awk/lib:/deps/jsh/vendor/jerboa-sed/lib:/deps/jsh/vendor/jerboa-ssh/src:/deps/jsh/vendor/jerboa-sqlite/src:/deps/jsh/vendor/jerboa-crypto/src:/deps/jsh/vendor/jerboa-fuse/lib:/src/vendor/gherkin-runtime:/deps/jerboa-pcre2:/deps/jerboa-scintilla/src \ --script build-binary.ss linux-static-tui-podman: ensure-podman-deps @test -d $(SCI_VENDOR_SRC) || \ - { echo "ERROR: SCI_VENDOR_SRC='$(SCI_VENDOR_SRC)' not found. Populate it from the chez-scintilla dependency or set SCI_VENDOR_SRC."; exit 1; } + { echo "ERROR: SCI_VENDOR_SRC='$(SCI_VENDOR_SRC)' not found. Populate it from the jerboa-scintilla dependency or set SCI_VENDOR_SRC."; exit 1; } $(PODMAN) run --rm $(PODMAN_RUN_FLAGS) \ --ulimit nofile=8192:8192 \ -v $(CURDIR):/src:z \ @@ -899,8 +899,8 @@ MUSL_CHEZ_DIR = $(shell ls -d /build/chez-musl/lib/csv*/ta6le 2>/dev/null | head MUSL_SCHEME = /usr/local/bin/scheme MUSL_DEPS ?= $(VENDOR) MUSL_JERBOA ?= $(MUSL_DEPS)/jerboa -MUSL_PCRE2 ?= $(MUSL_DEPS)/chez-pcre2 -MUSL_SCINTILLA ?= $(MUSL_DEPS)/chez-scintilla +MUSL_PCRE2 ?= $(MUSL_DEPS)/jerboa-pcre2 +MUSL_SCINTILLA ?= $(MUSL_DEPS)/jerboa-scintilla MUSL_JSH_ROOT ?= $(MUSL_DEPS)/jerboa-shell MUSL_JSH ?= $(MUSL_JSH_ROOT)/src MUSL_SCI_VENDOR ?= /build/sci-vendor @@ -938,14 +938,14 @@ linux-tui-local: vendor-deps | $(MUSL_SCHEME) --libdirs $(MUSL_JERBOA)/lib -q rm -f $(MUSL_JERBOA)/lib/jerboa/*.wpo $(MUSL_SCHEME) --libdirs $(MUSL_JERBOA)/lib --script $(MUSL_JERBOA)/jerbuild.ss src/ lib/ - cp vendor/chez-pcre2-ffi-static.ss $(MUSL_PCRE2)/chez-pcre2/ffi.ss + cp vendor/jerboa-pcre2-ffi-static.ss $(MUSL_PCRE2)/jerboa-pcre2/ffi.ss $(MUSL_SCHEME) --libdirs $(MUSL_PCRE2) \ - --compile-imported-libraries --script vendor/chez-pcre2-compile-libs.ss - rm -f $(MUSL_PCRE2)/chez-pcre2/*.wpo - cp vendor/chez-scintilla-ffi-static.sls $(MUSL_SCINTILLA)/src/chez-scintilla/ffi.sls + --compile-imported-libraries --script vendor/jerboa-pcre2-compile-libs.ss + rm -f $(MUSL_PCRE2)/jerboa-pcre2/*.wpo + cp vendor/jerboa-scintilla-ffi-static.sls $(MUSL_SCINTILLA)/src/jerboa-scintilla/ffi.sls JEMACS_STATIC=1 $(MUSL_SCHEME) --libdirs $(MUSL_SCINTILLA)/src \ - --compile-imported-libraries --script vendor/chez-scintilla-compile-libs.ss - rm -f $(MUSL_SCINTILLA)/src/chez-scintilla/*.wpo + --compile-imported-libraries --script vendor/jerboa-scintilla-compile-libs.ss + rm -f $(MUSL_SCINTILLA)/src/jerboa-scintilla/*.wpo cp vendor/jerboa-net-tcp-static.sls $(MUSL_JERBOA)/lib/std/net/tcp.sls cp vendor/jerboa-net-tcp-raw-static.sls $(MUSL_JERBOA)/lib/std/net/tcp-raw.sls cp vendor/jerboa-net-uri.sls $(MUSL_JERBOA)/lib/std/net/uri.sls @@ -980,11 +980,11 @@ linux-tui-local: vendor-deps JERBOA_DIR=$(MUSL_JERBOA)/lib \ JSH_DIR=$(MUSL_JSH) \ GHERKIN_DIR=$(GHERKIN) \ - CHEZ_PCRE2_DIR=$(MUSL_PCRE2) \ - CHEZ_SCINTILLA_DIR=$(MUSL_SCINTILLA)/src \ + JERBOA_PCRE2_DIR=$(MUSL_PCRE2) \ + JERBOA_SCINTILLA_DIR=$(MUSL_SCINTILLA)/src \ SCI_VENDOR_DIR=$(MUSL_SCI_VENDOR) \ $(MUSL_SCHEME) \ - --libdirs lib:$(MUSL_JERBOA)/lib:$(MUSL_JSH):$(COREUTILS):$(JSH_AWK):$(JSH_SED):$(CHEZ_SSH):$(CHEZ_SQLITE):$(CHEZ_CRYPTO):$(CHEZ_FUSE):$(GHERKIN):$(MUSL_PCRE2):$(MUSL_SCINTILLA)/src \ + --libdirs lib:$(MUSL_JERBOA)/lib:$(MUSL_JSH):$(COREUTILS):$(JSH_AWK):$(JSH_SED):$(JERBOA_SSH):$(JERBOA_SQLITE):$(JERBOA_CRYPTO):$(JERBOA_FUSE):$(GHERKIN):$(MUSL_PCRE2):$(MUSL_SCINTILLA)/src \ --script build-binary.ss @echo "" @echo "=== jemacs static TUI binary built ===" @@ -1028,10 +1028,10 @@ linux-qt-local: vendor-deps find vendor/gherkin-runtime -name '*.wpo' -delete 2>/dev/null; true find vendor/jerboa-shell -name '*.so' -delete 2>/dev/null; true find vendor/jerboa-shell -name '*.wpo' -delete 2>/dev/null; true - find vendor/chez-ssl -name '*.so' -delete 2>/dev/null; true - find vendor/chez-ssl -name '*.wpo' -delete 2>/dev/null; true - find vendor/chez-https -name '*.so' -delete 2>/dev/null; true - find vendor/chez-https -name '*.wpo' -delete 2>/dev/null; true + find vendor/jerboa-ssl -name '*.so' -delete 2>/dev/null; true + find vendor/jerboa-ssl -name '*.wpo' -delete 2>/dev/null; true + find vendor/jerboa-https -name '*.so' -delete 2>/dev/null; true + find vendor/jerboa-https -name '*.wpo' -delete 2>/dev/null; true find vendor/jerboa-aws -name '*.so' -delete 2>/dev/null; true find vendor/jerboa-aws -name '*.wpo' -delete 2>/dev/null; true @echo "Recompiling jerboa core + prelude..." @@ -1039,22 +1039,22 @@ linux-qt-local: vendor-deps | $(MUSL_SCHEME) --libdirs $(MUSL_JERBOA)/lib -q rm -f $(MUSL_JERBOA)/lib/jerboa/*.wpo $(MUSL_SCHEME) --libdirs $(MUSL_JERBOA)/lib --script $(MUSL_JERBOA)/jerbuild.ss src/ lib/ - # Set up writable chez-qt copy from vendor (compile Scheme library) - mkdir -p /tmp/jemacs-build/chez-qt - cp -a vendor/chez-qt/. /tmp/jemacs-build/chez-qt/ - find /tmp/jemacs-build/chez-qt -name '*.so' -delete 2>/dev/null; true - find /tmp/jemacs-build/chez-qt -name '*.wpo' -delete 2>/dev/null; true - JEMACS_STATIC=1 $(MUSL_SCHEME) --libdirs /tmp/jemacs-build/chez-qt \ - --compile-imported-libraries --script /tmp/jemacs-build/chez-qt/compile-libs.ss - rm -f /tmp/jemacs-build/chez-qt/chez-qt/*.wpo - cp vendor/chez-pcre2-ffi-static.ss $(MUSL_PCRE2)/chez-pcre2/ffi.ss + # Set up writable jerboa-qt copy from vendor (compile Scheme library) + mkdir -p /tmp/jemacs-build/jerboa-qt + cp -a vendor/jerboa-qt/. /tmp/jemacs-build/jerboa-qt/ + find /tmp/jemacs-build/jerboa-qt -name '*.so' -delete 2>/dev/null; true + find /tmp/jemacs-build/jerboa-qt -name '*.wpo' -delete 2>/dev/null; true + JEMACS_STATIC=1 $(MUSL_SCHEME) --libdirs /tmp/jemacs-build/jerboa-qt \ + --compile-imported-libraries --script /tmp/jemacs-build/jerboa-qt/compile-libs.ss + rm -f /tmp/jemacs-build/jerboa-qt/jerboa-qt/*.wpo + cp vendor/jerboa-pcre2-ffi-static.ss $(MUSL_PCRE2)/jerboa-pcre2/ffi.ss $(MUSL_SCHEME) --libdirs $(MUSL_PCRE2) \ - --compile-imported-libraries --script vendor/chez-pcre2-compile-libs.ss - rm -f $(MUSL_PCRE2)/chez-pcre2/*.wpo - cp vendor/chez-scintilla-ffi-static.sls $(MUSL_SCINTILLA)/src/chez-scintilla/ffi.sls + --compile-imported-libraries --script vendor/jerboa-pcre2-compile-libs.ss + rm -f $(MUSL_PCRE2)/jerboa-pcre2/*.wpo + cp vendor/jerboa-scintilla-ffi-static.sls $(MUSL_SCINTILLA)/src/jerboa-scintilla/ffi.sls JEMACS_STATIC=1 $(MUSL_SCHEME) --libdirs $(MUSL_SCINTILLA)/src \ - --compile-imported-libraries --script vendor/chez-scintilla-compile-libs.ss - rm -f $(MUSL_SCINTILLA)/src/chez-scintilla/*.wpo + --compile-imported-libraries --script vendor/jerboa-scintilla-compile-libs.ss + rm -f $(MUSL_SCINTILLA)/src/jerboa-scintilla/*.wpo cp vendor/jerboa-net-tcp-static.sls $(MUSL_JERBOA)/lib/std/net/tcp.sls cp vendor/jerboa-net-tcp-raw-static.sls $(MUSL_JERBOA)/lib/std/net/tcp-raw.sls cp vendor/jerboa-net-uri.sls $(MUSL_JERBOA)/lib/std/net/uri.sls @@ -1085,19 +1085,19 @@ linux-qt-local: vendor-deps rm -f lib/jerboa/*.wpo # Compile optional SSL/HTTPS/AWS feature modules @if [ "$(JEMACS_ENABLE_AWS)" = "1" ]; then \ - cp vendor/chez-ssl-static.sls vendor/chez-ssl/src/chez-ssl.sls && \ + cp vendor/jerboa-ssl-static.sls vendor/jerboa-ssl/src/jerboa-ssl.sls && \ cp vendor/jerboa-aws-crypto-native.sls $(JAWS)/jerboa-aws/crypto.sls && \ - find vendor/chez-ssl -name '*.so' -delete; find vendor/chez-ssl -name '*.wpo' -delete; \ - find vendor/chez-https -name '*.so' -delete; find vendor/chez-https -name '*.wpo' -delete; \ + find vendor/jerboa-ssl -name '*.so' -delete; find vendor/jerboa-ssl -name '*.wpo' -delete; \ + find vendor/jerboa-https -name '*.so' -delete; find vendor/jerboa-https -name '*.wpo' -delete; \ find vendor/jerboa-aws -name '*.so' -delete; find vendor/jerboa-aws -name '*.wpo' -delete; \ JEMACS_STATIC=1 $(MUSL_SCHEME) \ - --libdirs vendor/chez-ssl/src:$(MUSL_JERBOA)/lib \ - --compile-imported-libraries -q --script vendor/chez-ssl-compile-libs.ss && \ - find vendor/chez-ssl -name '*.wpo' -delete && \ + --libdirs vendor/jerboa-ssl/src:$(MUSL_JERBOA)/lib \ + --compile-imported-libraries -q --script vendor/jerboa-ssl-compile-libs.ss && \ + find vendor/jerboa-ssl -name '*.wpo' -delete && \ JEMACS_STATIC=1 $(MUSL_SCHEME) \ - --libdirs vendor/chez-https/src:vendor/chez-ssl/src \ - --compile-imported-libraries -q --script vendor/chez-https-compile-libs.ss && \ - find vendor/chez-https -name '*.wpo' -delete && \ + --libdirs vendor/jerboa-https/src:vendor/jerboa-ssl/src \ + --compile-imported-libraries -q --script vendor/jerboa-https-compile-libs.ss && \ + find vendor/jerboa-https -name '*.wpo' -delete && \ JEMACS_STATIC=1 $(MUSL_SCHEME) \ --libdirs $(JAWS):$(CHTTPS):$(CSSL):$(MUSL_JERBOA)/lib \ --compile-imported-libraries -q --script vendor/jerboa-aws-compile-libs.ss && \ @@ -1118,10 +1118,10 @@ linux-qt-local: vendor-deps JERBOA_DIR=$(MUSL_JERBOA)/lib \ JSH_DIR=$(MUSL_JSH) \ GHERKIN_DIR=$(GHERKIN) \ - CHEZ_PCRE2_DIR=$(MUSL_PCRE2) \ - CHEZ_SCINTILLA_DIR=$(MUSL_SCINTILLA)/src \ - CHEZ_QT_DIR=/tmp/jemacs-build/chez-qt \ - CHEZ_QT_SHIM_DIR=/opt/qt-shim \ + JERBOA_PCRE2_DIR=$(MUSL_PCRE2) \ + JERBOA_SCINTILLA_DIR=$(MUSL_SCINTILLA)/src \ + JERBOA_QT_DIR=/tmp/jemacs-build/jerboa-qt \ + JERBOA_QT_SHIM_DIR=/opt/qt-shim \ JSH_COREUTILS_LIB=vendor/libjsh_coreutils_stub.a \ $(AWS_LOCAL_STATIC_ENV) \ TREE_SITTER_INCLUDE=/opt/tree-sitter-include \ @@ -1131,7 +1131,7 @@ linux-qt-local: vendor-deps TREE_SITTER_QUERIES_OBJ=/tmp/jemacs-build/treesitter_queries.o \ PKG_CONFIG_PATH=/opt/qt6-static/lib/pkgconfig \ $(MUSL_SCHEME) \ - --libdirs lib:$(MUSL_JERBOA)/lib:$(MUSL_JSH):$(COREUTILS):$(JSH_AWK):$(JSH_SED):$(CHEZ_SSH):$(CHEZ_SQLITE):$(CHEZ_CRYPTO):$(CHEZ_FUSE):$(GHERKIN):$(MUSL_PCRE2):$(MUSL_SCINTILLA)/src:/tmp/jemacs-build/chez-qt$(AWS_LOCAL_STATIC_LIBDIRS) \ + --libdirs lib:$(MUSL_JERBOA)/lib:$(MUSL_JSH):$(COREUTILS):$(JSH_AWK):$(JSH_SED):$(JERBOA_SSH):$(JERBOA_SQLITE):$(JERBOA_CRYPTO):$(JERBOA_FUSE):$(GHERKIN):$(MUSL_PCRE2):$(MUSL_SCINTILLA)/src:/tmp/jemacs-build/jerboa-qt$(AWS_LOCAL_STATIC_LIBDIRS) \ --script build-binary-qt.ss @echo "" @echo "=== jemacs-qt static binary built ===" @@ -1148,8 +1148,8 @@ STRESS_CYCLES ?= STRESS_ENV = SCHEME="$(SCHEME)" LIBDIRS="$(LIBDIRS)" XVFB_RUN="$(XVFB_RUN)" QT_MAIN="$(CURDIR)/qt-main.ss" JEMACS_QT="$(CURDIR)/jemacs-qt" STRESS_CYCLES="$(STRESS_CYCLES)" # Launch jemacs-qt (interpreted) headless with REPL for manual stress testing -stress-run: build repl_shim.so libqt_shim.so vterm_shim.so qt_chez_shim.so - xvfb-run -a env LD_PRELOAD=./qt_chez_shim.so \ +stress-run: build repl_shim.so libqt_shim.so vterm_shim.so jerboa_qt_shim.so + xvfb-run -a env LD_PRELOAD=./jerboa_qt_shim.so \ $(SCHEME) $(LIBDIRS) --script qt-main.ss --repl $(STRESS_PORT) # Launch jemacs-qt (static binary) under gdb with REPL for crash diagnosis @@ -1168,38 +1168,38 @@ stress-test: $(SCHEME) $(LIBDIRS) --script tests/stress-test.ss --port $(STRESS_PORT) --profile $(STRESS_PROFILE) # Focused all-in-one stress profiles. -stress-window: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) +stress-window: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) $(STRESS_ENV) scripts/run-stress-profile.sh window interpreted stress-window-static: $(STRESS_ENV) scripts/run-stress-profile.sh window static -stress-buffer: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) +stress-buffer: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) $(STRESS_ENV) scripts/run-stress-profile.sh buffer interpreted stress-buffer-static: $(STRESS_ENV) scripts/run-stress-profile.sh buffer static -stress-edit: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) +stress-edit: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) $(STRESS_ENV) scripts/run-stress-profile.sh edit interpreted stress-edit-static: $(STRESS_ENV) scripts/run-stress-profile.sh edit static -stress-file: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) +stress-file: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) $(STRESS_ENV) scripts/run-stress-profile.sh file interpreted stress-file-static: $(STRESS_ENV) scripts/run-stress-profile.sh file static -stress-chaos: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) +stress-chaos: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) $(STRESS_ENV) scripts/run-stress-profile.sh chaos interpreted stress-chaos-static: $(STRESS_ENV) scripts/run-stress-profile.sh chaos static # Backward-compatible aliases for the historical all-in-one burn-in. -stress-burn: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) +stress-burn: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) libjsh-ffi.$(SHLIB_EXT) libjsh_coreutils_stub.$(SHLIB_EXT) $(NATIVE_LIB) $(SSL_SHIM) $(STRESS_ENV) scripts/run-stress-profile.sh chaos interpreted # Backward-compatible alias for static gdb burn-in. @@ -1226,11 +1226,11 @@ scenario-test: $(if $(SCENARIO_NO_SHOTS),--no-screenshots) # All-in-one: launch interpreted jemacs-qt + run scenario driver -scenario-burn: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) qt_chez_shim.$(SHLIB_EXT) +scenario-burn: build repl_shim.$(SHLIB_EXT) libqt_shim.$(SHLIB_EXT) vterm_shim.$(SHLIB_EXT) jerboa_qt_shim.$(SHLIB_EXT) @echo "=== Starting jemacs-qt scenario burn-in ===" @rm -f $(HOME)/.jerboa-repl-port scenario-run.log scenario-failures.log @rm -rf scenario-screenshots - $(XVFB_RUN) env CHEZ_QT_SHIM_DIR=$(CURDIR) $(PRELOAD_ENV) \ + $(XVFB_RUN) env JERBOA_QT_SHIM_DIR=$(CURDIR) $(PRELOAD_ENV) \ $(SCHEME) $(LIBDIRS) --script $(CURDIR)/qt-main.ss --repl 0 & @for i in $$(seq 1 30); do \ [ -f $(HOME)/.jerboa-repl-port ] && break; \ @@ -1297,10 +1297,10 @@ scenario-burn-static: # Behavioral regression tests: headless jemacs-qt + deterministic REPL test driver # Tests key routing, window splitting, terminal focus, and related invariants. -test-behavioral: build repl_shim.so libqt_shim.so vterm_shim.so qt_chez_shim.so +test-behavioral: build repl_shim.so libqt_shim.so vterm_shim.so jerboa_qt_shim.so @echo "=== Starting jemacs-qt behavioral tests ===" @rm -f $(HOME)/.jerboa-repl-port - @xvfb-run -a env CHEZ_QT_SHIM_DIR=$(CURDIR) \ + @xvfb-run -a env JERBOA_QT_SHIM_DIR=$(CURDIR) \ $(SCHEME) $(LIBDIRS) --script $(CURDIR)/qt-main.ss --repl 0 & @for i in $$(seq 1 30); do \ [ -f $(HOME)/.jerboa-repl-port ] && break; \ --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ A Chez Scheme port of the jerboa-based Emacs-like text editor, featuring a TUI ( jerboa-emacs is an Emacs-inspired editor built on top of: - **[jerboa](https://github.com/jerboa-scheme)** — Chez Scheme runtime with Gerbil-compatible stdlib -- **[chez-scintilla](https://github.com/jafourni/chez-scintilla)** — Scintilla editor component FFI bindings +- **[jerboa-scintilla](https://github.com/jafourni/jerboa-scintilla)** — Scintilla editor component FFI bindings - **[jerboa-shell (jsh)](https://github.com/jafourni/jerboa-shell)** — POSIX shell interpreter -- **[chez-qt](https://github.com/jafourni/chez-qt)** — Qt 5/6 GUI bindings (Qt backend only) +- **[jerboa-qt](https://github.com/jafourni/jerboa-qt)** — Qt 5/6 GUI bindings (Qt backend only) The TUI backend runs in a terminal using Scintilla's text model. The Qt backend provides a full graphical interface. @@ -22,8 +22,8 @@ The TUI backend runs in a terminal using Scintilla's text model. The Qt backend | jerboa | Gerbil-compat stdlib | `vendor/jerboa` | | jerboa-shell (jsh) | Shell interpreter | `vendor/jerboa-shell` | | gherkin runtime | Scheme dialect runtime | `vendor/gherkin-runtime` | -| chez-scintilla | Scintilla editor FFI | `vendor/chez-scintilla` | -| chez-pcre2 | PCRE2 regex FFI | `vendor/chez-pcre2` | +| jerboa-scintilla | Scintilla editor FFI | `vendor/jerboa-scintilla` | +| jerboa-pcre2 | PCRE2 regex FFI | `vendor/jerboa-pcre2` | ### Additional (Qt backend) @@ -31,7 +31,7 @@ The TUI backend runs in a terminal using Scintilla's text model. The Qt backend |------------|---------|----------| | Qt 5 or Qt 6 | GUI framework | system | | QScintilla | Qt Scintilla widget | system | -| chez-qt | Qt FFI bindings | `vendor/chez-qt` | +| jerboa-qt | Qt FFI bindings | `vendor/jerboa-qt` | ## Build @@ -120,9 +120,9 @@ This runs: test-tier0, test-tier2, test-tier3, test-tier4, test-tier5, test-org, The Makefile sets these automatically: ``` -LD_LIBRARY_PATH = vendor/chez-pcre2:vendor/chez-scintilla:vendor/chez-qt:vendor/jerboa-shell -CHEZ_SCINTILLA_LIB = vendor/chez-scintilla -CHEZ_PCRE2_LIB = vendor/chez-pcre2 +LD_LIBRARY_PATH = vendor/jerboa-pcre2:vendor/jerboa-scintilla:vendor/jerboa-qt:vendor/jerboa-shell +JERBOA_SCINTILLA_LIB = vendor/jerboa-scintilla +JERBOA_PCRE2_LIB = vendor/jerboa-pcre2 ``` ## Source Layout --- a/build-binary-qt.ss +++ b/build-binary-qt.ss @@ -6,7 +6,7 @@ ;; Produces: ./jemacs-qt (single ELF binary with embedded boot files + program) ;; ;; All boot files are embedded as C byte arrays via Sregister_boot_file_bytes. -;; FFI shims are compiled into the binary (pcre2_shim, qt_chez_shim). +;; FFI shims are compiled into the binary (pcre2_shim, jerboa_qt_shim). ;; libqt_shim.so is loaded at runtime — it must be in the same directory as ;; the binary or on LD_LIBRARY_PATH. ;; @@ -109,26 +109,26 @@ (or (getenv "JSH_DIR") (repo-path "vendor/jerboa-shell/src"))) (define pcre2-dir - (or (getenv "CHEZ_PCRE2_DIR") - (repo-path "vendor/chez-pcre2"))) + (or (getenv "JERBOA_PCRE2_DIR") + (repo-path "vendor/jerboa-pcre2"))) (define sci-dir - (or (getenv "CHEZ_SCINTILLA_DIR") - (repo-path "vendor/chez-scintilla/src"))) + (or (getenv "JERBOA_SCINTILLA_DIR") + (repo-path "vendor/jerboa-scintilla/src"))) (define qt-dir - (or (getenv "CHEZ_QT_DIR") - (repo-path "vendor/chez-qt"))) + (or (getenv "JERBOA_QT_DIR") + (repo-path "vendor/jerboa-qt"))) (define qt-shim-dir - (or (getenv "CHEZ_QT_SHIM_DIR") + (or (getenv "JERBOA_QT_SHIM_DIR") (repo-path "vendor"))) (define jaws-dir (or (getenv "JAWS_DIR") (repo-path "vendor/jerboa-aws/lib"))) -(define chez-ssl-dir - (or (getenv "CHEZ_SSL_DIR") - (repo-path "vendor/chez-ssl"))) -(define chez-https-dir - (or (getenv "CHEZ_HTTPS_DIR") - (repo-path "vendor/chez-https/src"))) +(define jerboa-ssl-dir + (or (getenv "JERBOA_SSL_DIR") + (repo-path "vendor/jerboa-ssl"))) +(define jerboa-https-dir + (or (getenv "JERBOA_HTTPS_DIR") + (repo-path "vendor/jerboa-https/src"))) ;; Static build detection (needed before dep checks) (define jemacs-static? @@ -155,12 +155,12 @@ (list (format "~a/jerboa/core.so" jerboa-dir) (format "~a/libqt_shim.a" qt-shim-dir)) ;; Dynamic: only check shim files — Scheme libs are compiled by step 1 - (list (format "qt_chez_shim.~a" shlib-ext) + (list (format "jerboa_qt_shim.~a" shlib-ext) (format "~a/pcre2_shim.~a" pcre2-dir shlib-ext) (format "libqt_shim.~a" shlib-ext))) (if jemacs-static? (list "jerboa core.so" "libqt_shim.a") - (list (format "qt_chez_shim.~a" shlib-ext) + (list (format "jerboa_qt_shim.~a" shlib-ext) (format "pcre2_shim.~a" shlib-ext) (format "libqt_shim.~a" shlib-ext)))) @@ -175,8 +175,8 @@ (printf "Features: ~a~n" *jemacs-enabled-features*) (when aws-enabled? (printf "jaws dir: ~a~n" jaws-dir) - (printf "chez-ssl dir: ~a~n" chez-ssl-dir) - (printf "chez-https dir:~a~n" chez-https-dir)) + (printf "jerboa-ssl dir: ~a~n" jerboa-ssl-dir) + (printf "jerboa-https dir:~a~n" jerboa-https-dir)) ;; --- Step 1: Compile all modules + entry point --- (printf "~n[1/7] Compiling all modules (optimize-level 3, WPO)...~n") @@ -236,16 +236,16 @@ (format "~a/compat/~a.so" gherkin-dir (symbol-path tail)))) ((runtime) (format "~a/runtime/~a.so" gherkin-dir (symbol-path tail))) - ((chez-pcre2) - (format "~a/chez-pcre2/~a.so" pcre2-dir (symbol-path tail))) - ((chez-scintilla) - (format "~a/chez-scintilla/~a.so" sci-dir (symbol-path tail))) - ((chez-qt) - (format "~a/chez-qt/~a.so" qt-dir (symbol-path tail))) - ((chez-ssl) - (format "~a/src/chez-ssl.so" chez-ssl-dir)) - ((chez-https) - (format "~a/chez-https.so" chez-https-dir)) + ((jerboa-pcre2) + (format "~a/jerboa-pcre2/~a.so" pcre2-dir (symbol-path tail))) + ((jerboa-scintilla) + (format "~a/jerboa-scintilla/~a.so" sci-dir (symbol-path tail))) + ((jerboa-qt) + (format "~a/jerboa-qt/~a.so" qt-dir (symbol-path tail))) + ((jerboa-ssl) + (format "~a/src/jerboa-ssl.so" jerboa-ssl-dir)) + ((jerboa-https) + (format "~a/jerboa-https.so" jerboa-https-dir)) ((jerboa-aws) (format "~a/jerboa-aws/~a.so" jaws-dir (symbol-path tail))) ((jerboa-emacs) @@ -271,8 +271,8 @@ (append (list "lib/jerboa-emacs/qt/commands-aws-native.so" - (format "~a/src/chez-ssl.so" chez-ssl-dir) - (format "~a/chez-https.so" chez-https-dir)) + (format "~a/src/jerboa-ssl.so" jerboa-ssl-dir) + (format "~a/jerboa-https.so" jerboa-https-dir)) (map (lambda (m) (format "~a/jerboa-aws/~a.so" jaws-dir m)) @@ -326,35 +326,35 @@ (display "Error: pcre2 shim compilation failed\n") (exit 1))) -;; qt_chez_shim — use jerboa-emacs deferred-callback version (avoids Sactivate_thread GC deadlock) +;; jerboa_qt_shim — use jerboa-emacs deferred-callback version (avoids Sactivate_thread GC deadlock) (let* ((qt-cflags (shell-output "pkg-config --cflags Qt6Widgets" ""))) ;; Static .o for static builds - (let ((cmd (format "gcc -c -O2 -DQT_SCINTILLA_AVAILABLE -o jemacs-qt-chez-shim.o vendor/qt_chez_shim.c -I~a ~a -Wall 2>&1" + (let ((cmd (format "gcc -c -O2 -DQT_SCINTILLA_AVAILABLE -o jemacs-qt-chez-shim.o vendor/jerboa_qt_shim.c -I~a ~a -Wall 2>&1" qt-shim-dir qt-cflags))) (unless (= 0 (system cmd)) - (display "Error: qt_chez_shim compilation failed\n") + (display "Error: jerboa_qt_shim compilation failed\n") (exit 1))) ;; Shared library for dynamic builds (platform-appropriate flags + extension) (unless jemacs-static? (let* ((shlib-flags (if macos-build? "-dynamiclib -Wl,-undefined,dynamic_lookup" "-shared -fPIC")) - (cmd (format "gcc ~a -O2 -DQT_SCINTILLA_AVAILABLE -o qt_chez_shim.~a vendor/qt_chez_shim.c -I~a ~a -Wall 2>&1" + (cmd (format "gcc ~a -O2 -DQT_SCINTILLA_AVAILABLE -o jerboa_qt_shim.~a vendor/jerboa_qt_shim.c -I~a ~a -Wall 2>&1" shlib-flags shlib-ext qt-shim-dir qt-cflags))) (unless (= 0 (system cmd)) - (display "Error: qt_chez_shim shlib compilation failed\n") + (display "Error: jerboa_qt_shim shlib compilation failed\n") (exit 1))))) ;; Static: generate + compile foreign symbol registration table ;; (dlopen(NULL) is a stub in musl static builds, so we use Sforeign_symbol instead) (when jemacs-static? ;; scheme.h lives in chez-dir (same dir as libkernel.a) - (let* ((ffi-path (format "~a/chez-qt/ffi.ss" qt-dir)) - (pcre2-ffi-path (format "~a/chez-pcre2/ffi.ss" pcre2-dir)) + (let* ((ffi-path (format "~a/jerboa-qt/ffi.ss" qt-dir)) + (pcre2-ffi-path (format "~a/jerboa-pcre2/ffi.ss" pcre2-dir)) (include-dir chez-dir) ;; Generate the C file by scanning ALL FFI source files: - ;; chez-qt/ffi.ss, chez-pcre2/ffi.ss — specific files - ;; jsh-dir/, jerboa-dir/, chez-ssl-dir/src, lib/jerboa-emacs/ — recursive + ;; jerboa-qt/ffi.ss, jerboa-pcre2/ffi.ss — specific files + ;; jsh-dir/, jerboa-dir/, jerboa-ssl-dir/src, lib/jerboa-emacs/ — recursive ;; (catches all transitive deps) ;; Strip Scheme line comments (;; ...) before matching to avoid placeholder strings ;; like "c_name", "c_func", "c_function_name" that appear in macro doc comments. @@ -363,7 +363,7 @@ ;; define-foreign name "c-name" — jsh macro (C name is the second string) (gen-cmd (format - "{ { cat ~a ~a; find ~a ~a/jerboa ~a/std/os ~a/std/net ~a/std/crypto ~a/std/security ~a/chez-scintilla ~a/src lib/jerboa-emacs lib/jerboa -name '*.sls' -o -name '*.ss' | xargs cat 2>/dev/null; } | \ + "{ { cat ~a ~a; find ~a ~a/jerboa ~a/std/os ~a/std/net ~a/std/crypto ~a/std/security ~a/jerboa-scintilla ~a/src lib/jerboa-emacs lib/jerboa -name '*.sls' -o -name '*.ss' | xargs cat 2>/dev/null; } | \ sed 's/;;.*//' | grep -oE '(foreign-procedure|foreign-entry\\?) \"[^\"]*\"' | sed 's/.* \"//;s/\"//'; \ { cat ~a ~a; } | sed 's/;;.*//' | grep -o 'define-optional-ffi [^ ]* \"[^\"]*\"' | sed 's/.*define-optional-ffi [^ ]* \"//;s/\"//'; \ find ~a -name '*.sls' -o -name '*.ss' | \ @@ -389,7 +389,7 @@ echo \"}\" >> qt_static_symbols.c && \ rm /tmp/ffi_syms.txt && \ echo OK" ffi-path pcre2-ffi-path - jsh-dir jerboa-dir jerboa-dir jerboa-dir jerboa-dir jerboa-dir sci-dir chez-ssl-dir + jsh-dir jerboa-dir jerboa-dir jerboa-dir jerboa-dir jerboa-dir sci-dir jerboa-ssl-dir ffi-path pcre2-ffi-path jsh-dir)) (result (shell-output gen-cmd ""))) @@ -451,32 +451,32 @@ echo OK" (display "Error: embed-crypto.c compilation failed\n") (exit 1))) -;; jsh ssh-agent stub (chez_ssh_agent_stop referenced in main.sls but not needed for jemacs) +;; jsh ssh-agent stub (jerboa_ssh_agent_stop referenced in main.sls but not needed for jemacs) (let ((stub-file "jemacs-qt-ssh-agent-stub.c")) (call-with-output-file stub-file (lambda (out) (fprintf out "/* Stub — jemacs doesn't use ssh-agent */~n") - (fprintf out "void chez_ssh_agent_stop(void) {}~n") - (fprintf out "int chez_ssh_agent_is_running(void) { return 0; }~n")) + (fprintf out "void jerboa_ssh_agent_stop(void) {}~n") + (fprintf out "int jerboa_ssh_agent_is_running(void) { return 0; }~n")) 'replace) (let ((cmd (format "gcc -c -O2 -o jemacs-qt-ssh-agent-stub.o ~a -Wall 2>&1" stub-file))) (unless (= 0 (system cmd)) (display "Error: ssh-agent stub compilation failed\n") (exit 1)))) -;; chez-scintilla stubs (TUI-only — Qt never calls these; stubs allow foreign-procedure defs) +;; jerboa-scintilla stubs (TUI-only — Qt never calls these; stubs allow foreign-procedure defs) (when jemacs-static? - (let* ((cmd "gcc -c -O2 -o jemacs-qt-sci-stubs.o support/chez_scintilla_stubs.c -Wall 2>&1")) + (let* ((cmd "gcc -c -O2 -o jemacs-qt-sci-stubs.o support/jerboa_scintilla_stubs.c -Wall 2>&1")) (unless (= 0 (system cmd)) - (display "Error: chez_scintilla_stubs.c compilation failed\n") + (display "Error: jerboa_scintilla_stubs.c compilation failed\n") (exit 1)))) -;; chez-ssl shim (TLS FFI for jerboa-aws EC2 API calls) +;; jerboa-ssl shim (TLS FFI for jerboa-aws EC2 API calls) (when (and jemacs-static? aws-enabled?) - (let* ((cmd (format "gcc -c -O2 -o jemacs-qt-chez-ssl-shim.o ~a/chez_ssl_shim.c -Wall 2>&1" - chez-ssl-dir))) + (let* ((cmd (format "gcc -c -O2 -o jemacs-qt-jerboa-ssl-shim.o ~a/jerboa_ssl_shim.c -Wall 2>&1" + jerboa-ssl-dir))) (unless (= 0 (system cmd)) - (display "Error: chez_ssl_shim.c compilation failed\n") + (display "Error: jerboa_ssl_shim.c compilation failed\n") (exit 1)))) ;; pty shim (needed for static builds — pty_* symbols from support/pty_shim.c) @@ -631,7 +631,7 @@ grep -v '^$' | grep -v '^register_static_foreign_symbols$'") "/tmp/jemacs-build/crypto_stub.o" "")) ;; jsh Rust coreutils static library (musl build, pre-compiled on host) (jsh-coreutils-lib (or (getenv "JSH_COREUTILS_LIB") "")) - (aws-ssl-obj (if aws-enabled? "jemacs-qt-chez-ssl-shim.o" "")) + (aws-ssl-obj (if aws-enabled? "jemacs-qt-jerboa-ssl-shim.o" "")) (ssl-libs (if aws-enabled? (let ((pkgconf (shell-output "pkg-config --static --libs openssl 2>/dev/null" ""))) (if (> (string-length pkgconf) 0) @@ -718,7 +718,7 @@ jemacs-qt-jsh-ffi.o jemacs-qt-embed-crypto.o jemacs-qt-ssh-agent-stub.o \ "qt_static_symbols.o" "qt_static_symbols.c") '()) (if (and jemacs-static? aws-enabled?) - '("jemacs-qt-chez-ssl-shim.o") + '("jemacs-qt-jerboa-ssl-shim.o") '()))) (printf "~n========================================~n") @@ -740,11 +740,11 @@ jemacs-qt-jsh-ffi.o jemacs-qt-embed-crypto.o jemacs-qt-ssh-agent-stub.o \ (printf "~nBundle (keep these together):~n") (printf " ./jemacs-qt~n") (printf " ./libqt_shim.~a~n" shlib-ext) - (printf " ./qt_chez_shim.~a~n" shlib-ext) + (printf " ./jerboa_qt_shim.~a~n" shlib-ext) (printf " ./pcre2_shim.~a~n" shlib-ext) (printf " ./vterm_shim.so~n") (printf "~nRun:~n") (printf " ./jemacs-qt # launch Qt editor~n") (printf " ./jemacs-qt file.txt # open file~n") (printf "~nInstall:~n") - (printf " cp jemacs-qt libqt_shim.so qt_chez_shim.so pcre2_shim.so vterm_shim.so /usr/local/bin/~n"))) + (printf " cp jemacs-qt libqt_shim.so jerboa_qt_shim.so pcre2_shim.so vterm_shim.so /usr/local/bin/~n"))) --- a/build-binary.ss +++ b/build-binary.ss @@ -89,16 +89,16 @@ (or (getenv "JSH_DIR") (repo-path "vendor/jerboa-shell/src"))) (define pcre2-dir - (or (getenv "CHEZ_PCRE2_DIR") - (repo-path "vendor/chez-pcre2"))) + (or (getenv "JERBOA_PCRE2_DIR") + (repo-path "vendor/jerboa-pcre2"))) (define sci-dir - (or (getenv "CHEZ_SCINTILLA_DIR") - (repo-path "vendor/chez-scintilla/src"))) + (or (getenv "JERBOA_SCINTILLA_DIR") + (repo-path "vendor/jerboa-scintilla/src"))) ;; Scintilla vendor dir: contains scintilla.a, liblexilla.a, termbox.a and the -;; C header files needed to compile chez_scintilla_shim.c. +;; C header files needed to compile jerboa_scintilla_shim.c. (define sci-vendor-dir (or (getenv "SCI_VENDOR_DIR") - (repo-path "vendor/chez-scintilla/vendor"))) + (repo-path "vendor/jerboa-scintilla/vendor"))) ;; Static build detection (define jemacs-static? @@ -185,16 +185,16 @@ (format "~a/compat/~a.so" gherkin-dir (symbol-path tail)))) ((runtime) (format "~a/runtime/~a.so" gherkin-dir (symbol-path tail))) - ((chez-pcre2) - (format "~a/chez-pcre2/~a.so" pcre2-dir (symbol-path tail))) - ((chez-scintilla) - (format "~a/chez-scintilla/~a.so" sci-dir (symbol-path tail))) - ((chez-qt) - (format "~a/chez-qt/~a.so" qt-dir (symbol-path tail))) - ((chez-ssl)