No description
  • Scheme 96.6%
  • Makefile 3.4%
Find a file
2026-07-30 15:46:40 -06:00
.builds Build with JERBOA_NATIVE_FEATURES=tls (smaller, avoids OOM) 2026-07-21 18:37:45 -06:00
test fix: segment source so import-path renames skip string literals and comments (#31) 2026-07-21 19:20:45 -06:00
.gitignore jerboa-gerbil: converter from jerboa-emacs .ss to gerbil-emacs 2026-06-02 20:16:03 -06:00
AGENTS.md docs: remove jerboa-emacs restriction 2026-07-30 15:46:40 -06:00
convert.ss fix: segment source so import-path renames skip string literals and comments (#31) 2026-07-21 19:20:45 -06:00
gerbil.pkg jerboa-gerbil: converter from jerboa-emacs .ss to gerbil-emacs 2026-06-02 20:16:03 -06:00
LICENSE Switch to MIT license 2026-07-21 13:42:16 -06:00
Makefile build: add missing security/lint targets 2026-07-21 12:27:01 -06:00
README.md jerboa-gerbil: converter from jerboa-emacs .ss to gerbil-emacs 2026-06-02 20:16:03 -06:00
SECURITY.md Security hardening and release readiness 2026-06-23 10:49:50 -06:00

jerboa-gerbil

Tooling to port jerboa-emacs features to gerbil-emacs, written in Gerbil Scheme.

The two editors are forks of one ancestor and share the same Gerbil surface syntax, so porting a feature is mostly renaming import module paths and pointing Jerboa's "chez-powers" stdlib surface at jerboa-compat.

convert.ss

Rewrites a jerboa-emacs .ss source's imports to gerbil-emacs, textually (comments/formatting preserved), and warns about residual :jerboa-* refs that need a human:

gxi convert.ss INPUT.ss [-o OUTPUT.ss]      # default: stdout

Rename rules (specific before generic):

from to
:jerboa-emacs/chez-powers :jerboa-compat/powers
:jerboa-emacs/atom :jerboa-compat/atom
:jerboa-scintilla/… :gerbil-scintilla/…
:jerboa-qt/… :gerbil-qt/…
:jerboa-aws/… :gerbil-aws/… (no Gerbil lib yet — flagged)
:jerboa-emacs/… :gemacs/…

Library use: (import :jerboa-gerbil/convert)(convert-string text) returns (values new-text report residual-count).

Testing Gerbil from this session

gerbil-mcp can't be registered as an MCP server here (the jerboa-mcp loader occupies that slot), so drive it over stdio with the bundled client:

cd ~/mine/gerbil-mcp
node gmcp.mjs list
node gmcp.mjs gerbil_compile_check '{"file_path":"…","loadpath":["/Users/user/mine"]}'
node gmcp.mjs gerbil_eval '{"imports":[":jerboa-compat/powers"],"loadpath":["/Users/user/mine"],"expression":"…"}'

It pins GERBIL_MCP_GXI_PATH=/opt/gerbil/bin/gxi.

Status

Foundation complete: jerboa-compat (atom, lru-cache, stm, engine, powers) and this converter, both built and tested on Gerbil. End-to-end proof in ../proof-port. Remaining: port the ~484 cmd-* features that exist in jerboa-emacs but not gerbil-emacs (git/forge, org, editing, games, …).