Skip to content

About

Evidence-first OSS language bridges in Gooo: bounded native comparisons, provenance, and CI-governed contributions

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Gooo Language Bridge

Read Gooo source with syntax highlighting, then explore small comparisons with other language runtimes.

Highlight a Gooo file

Requires Go 1.25+ and network access to fetch Go modules. Download the floor.gooo sample into your current directory, then run:

go run github.com/kimjooyoon/gooo-language-bridge/examples/[email protected] floor.gooo > floor.html

This creates floor.html. Open it in a browser to read the highlighted source in a self-contained page. No Gooo compiler is needed; this command highlights the sample without executing it.

The published helper bundles the Gooo lexer with released Chroma v2.27.0. Gooo highlighting was accepted into Chroma v3 development; that merge is separate from a Chroma release. See the consumer guide for installation, JSON output and the exact availability distinction.

To explore language behavior next, run your first native observation without a Gooo compiler, or choose a browser/native example from the experiment catalog. CONTRIBUTING.md explains how to add a native observation or a Gooo semantic bridge.

First bridge: Python integer floor division

bridges/python-floor/main.gooo expresses Python-style floor division using Gooo Integer division and explicit sign corrections. For example, -7 / 3 truncates to -2 in the underlying integer calculation; this bridge returns -3. The 120 comparisons cover dividends -7..7 and nonzero divisors -4..4. This is a bounded semantic adapter, not a Python compiler or a general equivalence proof. The upstream documentation revision and licensing context are in provenance.json. For a practical migration example, read Python integer division to Go: it compares the native runtimes with the actual Gooo results and explains the negative-input counterexamples. A pinned GoLua witness also matches these 120 small pairs; its separate int64-wrap and zero-divisor observations show why this does not establish general Lua/Python integer equivalence. The executing Python runtime is recorded separately: it is not claimed to be that upstream revision.

String-length units across languages

bridges/text-length/main.gooo gives UTF-8 bytes, Unicode code points and UTF-16 code units separate stable field identities. For 🙂 these are 4, 1, 2; for 가 they are 3, 1, 1. Native Go, Python and Node.js operations independently check all three fields on 27 inputs, including encoding boundaries and 1024-byte strings. A 1025-byte input must be rejected.

Read String length across Go, Python and JavaScript for the executable example, counterexamples and scope. These are encoding units; graphemes, display width, normalization and browser engines are excluded.

Execution and completion have different input intent

An unfinished -ab group needs an error during execution and preservation during completion. The completion intent guide connects urfave/cli #2485 with a Gooo activity that gives the request mode and token classification stable identities. The verifier reproduces nine original mismatches, 20 patched/race matches and 20 Gooo matches across 12 distinct policy inputs. Gooo resolves the declared intent policy; tokenization and arbitrary CLI grammar validation stay outside its scope.

python3 tools/verify_cli_completion.py --gooo .bin/gooo

Defaults depend on presence

An explicit 0 or false should replace a default, not select it. The Tengo input-defaults bridge gives presence and value separate stable field identities. It compares 48 unique native maps with Gooo, including resets when an override disappears on a reused compiled script. The native observer and Gooo bindings also reject out-of-domain inputs; these adapter bounds do not restrict Tengo's general map semantics.

HCL adds a different distinction: an explicit null can acquire an optional non-null default, while a required missing attribute fails conversion. The HCL null/default bridge compares twenty requests with released HCL v2.24.0 and Gooo, retaining native nulls and the expected required-missing diagnostic.

Reproduce the semantic comparisons

Requires Python 3.9+, Go 1.27.3 and Node.js 22.23.1; no model, API key, service or paid runner.

mkdir -p .bin
GOBIN="$PWD/.bin" GOTOOLCHAIN=go1.27.3 go install github.com/kimjooyoon/meta-ontology-go/cmd/[email protected]
python3 tools/verify.py --gooo .bin/gooo
python3 tools/compare_text_length.py --gooo .bin/gooo

Inspect evidence/summary.json, execution.json, cases.json, and stderr. Exit zero requires Gooo PASS and exactly all 120 expected comparisons. A missing, partial, stale-version or malformed result fails closed. CI retains evidence even on failure. The offline evidence auditor checks a downloaded bundle against its captured hashes, exact local source and expected execution tuple without rerunning the engines. It also runs in required CI. For a Python-and-Git-only replay, follow the published 17-summary snapshot recipe. It uses retained evidence and a fixed source/execution tuple. Artifact hashes bind files, not authorship; GitHub's run and commit metadata provide the execution context.

Project management

Before starting a candidate, use the read-only contribution check to collect recent merge witnesses, linked open/closed PRs and recent comments in one bounded GitHub query. The sampled open PRs include formal review bodies and reviewed commits so earlier work can be inspected before repeating it. Gooo assigns a next-review reason; it never approves submission or declares the work unclaimed. Offline CI checks all 32 policy inputs.

The response planner and repository profiles retain actor roles, scope and material limitations before preparing a response. The real producer consumer connects saved technical observations to that plan while retaining unknown provenance and original failures.

For repeated local follow-up, the saved-material comparison retains a completed inspection only when all captured material, evaluation inputs and scope match. New feedback, changed criteria or incomplete evidence require inspection. This manual helper does not collect fresh remote activity or approve a contribution.

Use Issues for bounded bridge proposals and counterexamples, and PRs for source. See CONTRIBUTING.md and ROADMAP.md. This project complements the Gooo engine and existing ecosystem projects. Upstream acceptance is decided by each upstream project; a local passing bridge is never counted as an accepted contribution.

Reusable native experiment reports

The recorded Go test comparison reads two saved go test -json captures with an explicit case list. It separates new failures, resolved failures and controls even when both commands failed, without rebuilding a project or installing Gooo. Missing or incomplete records remain invalid; a difference alone is not a correctness verdict.

The saved review reply check compares an already submitted GitHub review with captured replies. Missing comment-line evidence leads to existing comment GETs, while original bodies and anchors remain bound. It neither fetches nor publishes, and never recommends another POST.

For published Gist evidence, the saved file-byte check binds a requested commit to its filenames and exact blob bytes. It keeps API text differences or truncation separate from the Git bytes and never recommends reposting. Saved inputs can be checked with Python alone.

The 32 bit Go integer parsing guide answers a real Cast maintainer request with an executed Linux/386 comparison. It explains the parser-width trap, shows all nine boundary results, and links the complete original failure/success capture. Read the saved results before repeating a run.

The JavaScript differential driver compares a trusted snapshot script in Node.js and an exact Goja or Sobek commit, optionally against a base commit. It retains typed case comparisons, source/runtime identities, original outputs and hashes. Unmerged PR heads use a verified Git checkout rather than relying on an unavailable canonical module version. The included example reproduces a historical normalization difference at two pinned pre-fix revisions; the guide links the accepted repair. A difference is not an approval or a standards verdict. No Gooo compiler is required for this native helper.

Upstream work

Contribution entry points observed October 22, 2026, with later acceptance updates dated separately:

Need Contribution Reproduction and scope
Reuse text decoding with a custom configuration decoder Koanf #464, submitted API change Public-API tests at the submitted commit cover custom text representations, duration composition, errors and unknown-key rejection. Native tests passed within the documented exclusions; hosted CI and acceptance remain unproven.
Understand byte counts versus UTF-8 regexps GoAWK Unicode guide, #308 merged October 25, 2026 Choose consistent string units. This documentation change does not alter the interpreter. Pinned CLI observations reproduce the two byte/character-mode examples and preserve the missing-gawk full-suite failure.
Review ownership or nested-map fixes GoJq constant ownership review and Koanf nil-map review The native experiment index links frozen observations, tested source identities, remaining differences and test limitations. Reviews are independent evidence, not acceptance.

These entry points require no Gooo compiler. Read the dated scope before adapting an experiment; the upstream PR is authoritative for its current status.

Yaegi #1738 fixes an existing interpreter report: operator assignments to compiled interface slices can lose the stored value and return a nil pointer. The patch introduces no Gooo dependency.

python3 tools/verify_yaegi.py

This fetches the pinned original and patch revisions, injects the same regression tests, and requires eleven original failures followed by sixteen patched passes and sixteen race-checked passes. Original JSON test events are retained in evidence/yaegi-1736/. The separately recorded mixed-type blank-assignment counterexample still fails on both revisions. This focused regression does not certify Yaegi's full suite. See the contribution ledger for scope and acceptance status.

Chroma #1410 merged Gooo source highlighting on October 22, 2026, with no Gooo runtime dependency. The accepted change targets Chroma v3 development; the published consumer below loads the same XML into the released Chroma v2.27.0 runtime. Try the published-Chroma consumer now: it renders self-contained HTML or source-preserving JSON tokens without building a Chroma fork.

python3 tools/verify_chroma.py

The command fetches the exact submitted revision, runs the full Chroma tests, race-checks the Gooo fixtures, verifies generated metadata and checks that all 128 expected tokens reconstruct the two source fixtures without Error tokens. Logs and hashes are retained under evidence/chroma-gooo/. Upstream acceptance is separately established by the merged PR and its successful test, lint and generation checks. The dated acceptance record binds the submitted heads, upstream merges and checks.

Chroma #1411, also merged on October 22, 2026, corrects Go imaginary literals such as 0b10i and 0x1p-2i being split before their i. Native Go compilation and scanner output independently establish the eighteen-case fixture's input scope; eleven token streams change and seven controls stay equal.

python3 tools/verify_chroma_go_numbers.py

This retains the original failing regression, patched/race passes, full tests and native token observations under evidence/chroma-go-numbers/. Its upstream test, lint and generation checks passed. The Go lexer patch and the Gooo language lexer are separate accepted contributions.

Text editing: one Delete press, one edit

Bubbles #1072 fixes Delete removing the next newline while deleting a line's final character. The independent editing bridge expresses the edit in Gooo and compares eight observations from the actual original/patched textarea.

python3 tools/verify_bubbles_delete.py --gooo .bin/gooo

Three original mismatches become eight patched, race-checked and Gooo matches. The packet retains original test events and exact source hashes. Native cursor positions are rune indices; the Gooo input explicitly names its UTF-8 byte offset. This focused comparison is separate from upstream CI approval and acceptance.

Proposed criterion study: wrapped TCP read resets

The Traefik criterion packet preserves original source, a two-file proposed diff and a real loopback TCP reset reproducer. It compares sixteen native decisions with a bounded Gooo policy, including NO_LOG for nil errors and controls that keep write failures in ERROR.

python3 tools/verify_read_reset.py --gooo .bin/gooo

This is an owned, unsubmitted proposal. Its standalone checks do not replace Traefik's full validation or human-authored upstream conversation requirements.

About

Evidence-first OSS language bridges in Gooo: bounded native comparisons, provenance, and CI-governed contributions

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages