Compatibility report¶
This report is generated by running the same fixtures under the pinned Babashka release and the current Gobb binary. Each fixture runs in an isolated working directory. The harness compares standard output, standard error, exit status, and filesystem effects.
Current result¶
- 28 exact matches
- 2 documented differences
- 0 unexpected differences
- 0 unexpected matches
| Status | Area | Fixture | Description |
|---|---|---|---|
| ✓ Match | cli |
:cli/expression |
Evaluate an expression |
| ✓ Match | cli |
:cli/arguments |
Bind expression command-line arguments |
| ✓ Match | execution-state |
:cli/expression-file |
Bind BB's expression source marker |
| ✓ Match | reader |
:reader/collections |
Read and print nested collection literals |
| ✓ Match | reader |
:reader/bb-feature |
Select the :bb reader-conditional branch |
| ○ Known difference | reader |
:reader/gobb-feature |
Select Gobb's additional reader-conditional branch |
| ✓ Match | reader |
:reader/data-readers |
Load a tagged-literal reader from data_readers.clj |
| ✓ Match | printing |
:printing/basic |
Preserve print and prn output |
| ✓ Match | namespace |
:namespace/switch |
Create and switch the current namespace |
| ✓ Match | dynamic-vars |
:vars/dynamic |
Bind dynamic command-line state |
| ✓ Match | script-loading |
:loading/script |
Load a script with arguments |
| ✓ Match | execution-state |
:loading/script-state |
Bind absolute file, arguments, and working directory |
| ✓ Match | script-loading |
:loading/require |
Require source from an explicit classpath |
| ✓ Match | script-loading |
:loading/repeated-require |
Repeated require preserves the loaded namespace |
| ✓ Match | script-loading |
:loading/resource |
Resolve and read a resource from the runtime classpath |
| ✓ Match | script-loading |
:loading/preloads |
Evaluate BABASHKA_PRELOADS before the expression |
| ✓ Match | script-loading |
:loading/init |
Evaluate --init before the expression |
| ✓ Match | invocation |
:invocation/main |
Invoke a namespace -main with command-line arguments |
| ✓ Match | invocation |
:invocation/main-var |
Invoke a qualified var through -m |
| ✓ Match | invocation |
:invocation/exec |
Invoke a qualified var through -x with parsed options |
| ✓ Match | runtime |
:runtime/working-directory |
Normalize each isolated working directory |
| ✓ Match | execution-state |
:runtime/environment |
Expose the inherited process environment |
| ✓ Match | runtime |
:runtime/timestamp |
Normalize a declared millisecond timestamp |
| ✓ Match | errors |
:errors/exception-data |
Preserve structured exception data |
| ✓ Match | errors |
:io/stderr |
Bind err as the standard error writer |
| ✓ Match | execution-state |
:io/stdin |
Bind in as the standard input reader |
| ✓ Match | exit |
:exit/nonzero |
Preserve an explicit nonzero exit status |
| ○ Known difference | filesystem |
:filesystem/write |
Write a deterministic filesystem effect |
| ✓ Match | compiled-programs |
:compiled/main |
Compile and execute a namespace containing -main |
| ✓ Match | compiled-programs |
:compiled/host-state |
Keep runtime and compiled namespace and binding state aligned |
Differences¶
:reader/gobb-feature¶
Known difference. The :gobb feature is intentionally active only under Gobb
:filesystem/write¶
Known difference. Glojure's core spit host adapter is not linked into Gobb yet
Reproduce¶
Full per-fixture commands and raw and normalized results are retained in .cache/compat/fixtures/. The machine-readable aggregate is .cache/compat/report.edn.
The harness normalizes only the declared sources of nondeterminism:
working-directory: Replace each isolated fixture directory withplatform-separators: Use forward slashes in captured paths on every platformtimestamp: Replace explicitly declared millisecond timestampsprocess-id: Replace explicitly declared process identifiersport: Replace explicitly declared ephemeral port numbers