Gate the portable bare-name dialect on the generated binding#5
Open
estebanzimanyi wants to merge 1 commit into
Open
Gate the portable bare-name dialect on the generated binding#5estebanzimanyi wants to merge 1 commit into
estebanzimanyi wants to merge 1 commit into
Conversation
Per RFC #920 and the MEOS-API cross-repo handoff, a binding is done when its generated symbol set is a superset of portableAliases.bareNames (29 canonical operator->bare-name pairs), verified with the same prefix rule as MEOS-API portable_parity.py: a bare name is backed iff a generated MEOS symbol == bareName or starts with bareName + "_", with nearestApproachDistance backed by the nad_* family. The MEOS C API already names every operator's backing function this way, so the JSON-codegen'd MEOS.NET bindings expose the dialect by construction, reusing each operator's own backing function. This adds the contract and its gate only, no per-binding aliases: - tools/portable-aliases.json: the 29-pair source of truth, vendored byte-identical from MEOS-API meta/portable-aliases.json; preferred from meos-idl.json#/portableAliases once the catalog folds it in. - tools/portable_parity.py: --check gate; 29/29, 0 unbacked, all six in-scope families (temporal, geo, cbuffer, npoint, pose, rgeo). - PortableAliasParityTests: language-independent MSTest mirror. - portable-aliases parity CI workflow runs both. - tools/README.md: documents the dialect and how to verify. Six-family coverage requires the MEOS 1.4 surface; MEOS 1.3 does not expose cbuffer/pose/rgeo operator functions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Realizes the portable bare-name dialect (RFC #920) for MEOS.NET per the
MEOS-API cross-repo handoff: a binding is done when its generated
symbol set ⊇
portableAliases.bareNames— the 29 canonicaloperator→bare-name pairs — verified with the same prefix rule as
MEOS-API
portable_parity.py: a bare name is backed iff a generatedMEOS symbol
== bareNameorstartsWith(bareName + "_"), withnearestApproachDistancebacked by the verifiednad_*family.MEOS C already names every operator's backing function this way, so the
JSON-codegen'd bindings expose the dialect by construction, each
portable name reusing the operator's own backing function — no
reimplementation, no type-qualified or per-binding forms. This change is
the contract plus its gate only;
codegen.pyand the generated bindingsare unchanged.
Contents
tools/portable-aliases.json— the 29-pair source of truth, vendoredbyte-identical from MEOS-API
meta/portable-aliases.json; the gateprefers
meos-idl.json#/portableAliasesautomatically once thecatalog folds it in.
tools/portable_parity.py --check— fails unless 29/29, 0 unbacked,across all six in-scope user-facing families:
temporal,geo,cbuffer,npoint,pose,rgeo.MEOS.NET.Tests/PortableAliasParityTests— language-independentMSTest mirror of the gate.
.github/workflows/portable-parity.yml— runs both on push/PR.tools/README.md— documents the dialect and verification.Result on this branch: 29/29 bare names backed, 0 unbacked;
six-family coverage temporal/geo/cbuffer/npoint/pose/rgeo all > 0.
Stacks on #4 (
bump/meos-1.4, which carries #3); base isbump/meos-1.4so the diff is just this delta. Six-family coverage requires the MEOS
1.4 surface — the MEOS 1.3 catalog does not expose cbuffer/pose/rgeo
operator functions, so #3's 1.3 line alone cannot satisfy the
six-family bar.