Skip to content

Adapt Go prototype with symbolic semantic tests and fixes - #469

Open
CaelmBleidd wants to merge 43 commits into
caelmbleidd/go-prototype-emilfrom
caelmbleidd/go-integration-tests
Open

CaelmBleidd wants to merge 43 commits into
caelmbleidd/go-prototype-emilfrom
caelmbleidd/go-integration-tests

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

The current Go frontend erased composite type identity and diverged from native Go on strings, value copies, pointers, interfaces and map keys. Preserve actual exported Go types and tuple schemas, UTF-8 indexing, array/struct value semantics and pointer identity. Map keys retain typed symbolic proxies and actual per-map payloads: +0/-0 compare equal, NaN does not, nil pointer keys remain valid, and guard-inactive range proxies cannot become phantom map entries. RHS effects occur before panic; nil map writes retain native failure behavior.

Based on #471 at 1000799, with #474 at 01cba79 as a genuine second parent. The shared input-reference-set engine fix belongs to #474 and is independently reviewable. JacoDB Go API is pinned to verified published a839f86ca8; producer #436 uses the actual buraindo/go branch.

Review typed schema conversion, mutable value copies, interface hashability and native map witnesses, including signed zero, NaN, nil pointers and hidden initial keys. Tests execute native Go oracles and replay symbolic witnesses; exporter and sample inventories are checked. Parent debug factories are replaced by this semantic harness, with bounded machine/solver lifetime.

Validation: all 305 native/solver/sample tests passed without skips after the final restack. The broader suite exposed discarded string-range index types and lost oversized-slice diagnostic causes; both are corrected without weakening tests or coverage. Four unsupported-boundary tests and final compilation/Detekt main/test passed after preserving exception causes. Exporter/native Go package tests passed. Linux CI exposed a borderline 5-second budget in the signed-zero input-map regression (95% coverage at 4.654 seconds). Only that test receives a bounded 30-second run/10-second solver budget; 100% coverage, all three outcomes and native replay for every witness remain required. The full native map regression suite and Detekt passed on final b574403, with repeated focused checks. Full CI run 38344995519 passed on this exact final head, including all 305 Go tests in Linux ci-go and all six other jobs. Existing limitations are kept explicit; this does not claim exhaustive Go language support. No upstream merge is included.

@CaelmBleidd
CaelmBleidd requested a review from buraindo October 9, 2026 10:05
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/go-integration-tests branch from 44d678e to 4d8528a Compare October 9, 2026 10:59
@CaelmBleidd CaelmBleidd changed the title Integrate experimental Go frontend with native semantic regressions Integrate experimental Go frontend with symbolic semantic expectations Oct 9, 2026
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/go-integration-tests branch from 670f659 to 6f89767 Compare October 9, 2026 13:19
@CaelmBleidd CaelmBleidd changed the title Integrate experimental Go frontend with symbolic semantic expectations Adapt Go prototype with symbolic semantic tests and fixes Oct 11, 2026
@CaelmBleidd
CaelmBleidd changed the base branch from main to caelmbleidd/go-prototype-emil October 11, 2026 15:54
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/go-integration-tests branch from 9cc0749 to bbd4db9 Compare October 11, 2026 15:58
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/go-prototype-emil branch from 11af4ec to 00194ce Compare October 11, 2026 15:58
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/go-integration-tests branch from bbd4db9 to c39d47e Compare October 12, 2026 13:13
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/go-prototype-emil branch from 124d218 to 921c56d Compare October 13, 2026 03:41
Import the SSA/JacoDB frontend from buraindo/go-jacodb at 717bd41 onto current main. Add native semantic assertions and witness replay, fix the reproduced arithmetic and collection defects, and keep pointer metadata local to Go. Pin the exporter toolchain, add CI, enforce style, and document the remaining experimental boundaries.
Replace the original coverage smoke factories with explicit categorized properties using the shared TestRunner. Require both discovery of expected branches and consistency of every collected execution. Preserve native oracle comparisons and witness replay, expose structured pointer/interface values and argument snapshots, and keep the newly detected frontend/model failures visible in the draft integration.
…e type"

This reverts commit d84934cf5a9c9dfc90e39f31822b41a2ce7db130.
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/go-integration-tests branch from c39d47e to ef0f81d Compare October 13, 2026 03:55
@CaelmBleidd
CaelmBleidd marked this pull request as ready for review October 13, 2026 04:17
val UINTPTR = BasicType(GoTypes.UINTPTR)
val FLOAT32 = BasicType(GoTypes.FLOAT32)
val FLOAT64 = BasicType(GoTypes.FLOAT64)
val STRING = SliceType(UINT8)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BasicType("string") -> BasicType(GoTypes.STRING)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants