Remove all gherkin references
ober
0998a0e0fb421f7bc485440450620f306379fae4
--- a/Dockerfile +++ b/Dockerfile @@ -114,8 +114,7 @@ RUN cd /build/mine/jerboa/jerboa-native-rs && \ strip -S target/x86_64-unknown-linux-musl/release/libjerboa_native.a # ── Clone all common dependency repos ──────────────────────────────────────── -RUN git clone --depth 1 https://github.com/ober/gherkin.git && \ - git clone --depth 1 https://github.com/ober/chez-ssh.git && \ +RUN git clone --depth 1 https://github.com/ober/chez-ssh.git && \ git clone --depth 1 https://github.com/ober/chez-sqlite.git && \ git clone --depth 1 https://github.com/ober/chez-crypto.git && \ git clone --depth 1 https://github.com/ober/chez-ssl.git && \ @@ -160,7 +159,6 @@ RUN mkdir -p /build/sci-vendor && cd /build/sci-vendor && \ ENV JERBOA_MUSL_CHEZ_PREFIX=/build/chez-musl ENV JERBOA_HOME=/build/mine/jerboa ENV JERBOA=/build/mine/jerboa/lib -ENV GHERKIN=/build/mine/gherkin/src ENV AWK_DIR=/build/mine/jerboa-awk/lib ENV SED_DIR=/build/mine/jerboa-sed/lib ENV AWS_DIR=/build/mine/jerboa-aws/lib --- a/docs/hide.md +++ b/docs/hide.md @@ -14,7 +14,7 @@ A stock `jsh` build (20 MB, unstripped) exposes: | Category | Count | Source | |----------|-------|--------| | Home directory paths | 412 | Chez SFDs, Rust panics, C `__FILE__` | -| Sibling project paths | ~30 | gherkin, cargo registry | +| Sibling project paths | ~30 | cargo registry, etc. | | ELF symbols | 21,948 | `.symtab` (not stripped) | | DWARF debug sections | 13 | `.debug_*` | | Scheme symbol names | ~8,700 | FASL interned symbols | --- a/docs/optimization.md +++ b/docs/optimization.md @@ -209,9 +209,9 @@ This only affects compilation (via `compile-file`), not source loading. 6. **`debug-level 0`** — For release builds, allows maximum continuation optimization. -## 17. Empirical Results (gherkin-shell benchmarks) +## 17. Empirical Results (shell benchmarks) -Tested on gherkin-shell using shellbench. All numbers are executions/second (higher = better). +Tested with shellbench. All numbers are executions/second (higher = better). | Optimization | Avg Improvement | Best Test | Binary Size | |-------------|----------------|-----------|-------------| --- a/docs/static-binary-gotchas.md +++ b/docs/static-binary-gotchas.md @@ -194,7 +194,7 @@ Note: The **program** `.so` still uses memfd (for `Sscheme_script`), because `Ss ### The Problem -jerboa-shell's `.sls` files are auto-generated from Gerbil `.ss` sources by the Gherkin compiler (via `build-jerboa.ss`). The generated code frequently needs fixes that can't be done at the source level because: +jerboa-shell's `.sls` files are auto-generated from Gerbil `.ss` sources by the Gerbil compiler (via `build-jerboa.ss`). The generated code frequently needs fixes that can't be done at the source level because: 1. The Gerbil compiler drops `(only ...)` imports that look unused (e.g., parameter mutations) 2. The Gerbil compiler transforms `let` to `let*` and reorders definitions @@ -292,9 +292,8 @@ Changes to FFI bindings require updating BOTH: The boot file loads modules in this order: 1. **Jerboa stdlib** — `jerboa/core`, `jerboa/runtime`, `std/error`, `std/format`, `std/sort`, `std/pregexp`, `std/sugar`, `std/misc/*`, `std/stm`, `std/foreign`, `std/os/*`, `std/transducer`, `std/log`, `std/capability/*` -2. **Gherkin runtime** — `compat/types`, `compat/gambit-compat`, `runtime/*`, `reader/reader`, `compiler/compile`, `boot/gherkin` -3. **Compat layer** — `src/compat/gambit.so` -4. **Application modules** — `ffi`, `pregexp-compat`, `stage`, `static-compat`, `ast`, `registry`, `macros`, `util`, `environment`, `lexer`, `arithmetic`, `glob`, `fuzzy`, `history`, `parser`, `functions`, `signals`, `expander`, `redirect`, `control`, `jobs`, `builtins`, `pipeline`, `executor`, `completion`, `prompt`, `lineedit`, `fzf`, `script`, `startup`, `sandbox`, `main` +2. **Compat layer** — `src/compat/gambit.so` +3. **Application modules** — `ffi`, `pregexp-compat`, `stage`, `static-compat`, `ast`, `registry`, `macros`, `util`, `environment`, `lexer`, `arithmetic`, `glob`, `fuzzy`, `history`, `parser`, `functions`, `signals`, `expander`, `redirect`, `control`, `jobs`, `builtins`, `pipeline`, `executor`, `completion`, `prompt`, `lineedit`, `fzf`, `script`, `startup`, `sandbox`, `main` ### Adding a New Module --- a/gerbil-like.md +++ b/gerbil-like.md @@ -320,7 +320,7 @@ Translate Gerbil's FFI syntax to Chez's at macro-expansion time: (ffi-translate-type ret-type))])) ``` -The `c-declare` blocks need a compile-time step: extract C code, compile to `.so`, emit `load-shared-object`. This can be a build-system step rather than a macro — the `gherkin build` command handles it. +The `c-declare` blocks need a compile-time step: extract C code, compile to `.so`, emit `load-shared-object`. This is handled as a build-system step rather than a macro. FFI type mapping: @@ -374,10 +374,10 @@ Here's what gerbil-shell code looks like today: **This code would work unchanged.** Every form in it (`def`, `try`, `match`, `import`, `export`) is handled by the macro library. The `:std/*` imports resolve to native Chez libraries. The FFI imports compile to `foreign-procedure`. -## What Changes vs Current Gherkin +## What Changes vs Previous Gerbil-on-Chez Approach -| Aspect | Current Gherkin | New approach | -|--------|----------------|--------------| +| Aspect | Previous approach | New approach | +|--------|-------------------|--------------| | Gerbil's expander | Loaded and run on Chez | Not needed | | gambit-compat.sls | 1790 lines | Deleted | | MOP | 800+ lines simulating Gambit structs | ~200 lines on Chez records | @@ -401,8 +401,6 @@ The total codebase shrinks from ~50 files / 20K+ lines to roughly: | Module path mapping | ~100 | | **Total** | **~5200** | -vs. the current gherkin at ~20K+ lines across 50+ files. - ## What Gerbil Code Won't Work Being honest about what breaks: --- a/jerbuild.ss +++ b/jerbuild.ss @@ -710,7 +710,6 @@ (define (add-auto-imports translated-imports) ;; Always inject (jerboa core) and (jerboa runtime) if not already present. - ;; Gherkin-generated .sls files confirm these coexist with (std ...) in Docker. ;; Identifier conflicts with chezscheme are handled by *exclusion-triggers*. (let ([existing-libs (map unwrap-import-lib translated-imports)]) (let loop ([autos *auto-imports*] [result translated-imports])