feat(meos): expose the tbigint temporal family + always-covers; audit the full public surface (stacks on #18)#19
Closed
estebanzimanyi wants to merge 1 commit into
Conversation
… the full public surface The MEOS facade exposes the tbigint temporal type (MeosOpsTBigint, emitted by tools/codegen/emit_tbigint_facade.py from the public meos.h tbigint surface intersected with the jar) alongside the existing bigint set/span classes, and the always-covers functions (acovers_*) via the gap forwarders. The parity audit counts meos_h3.h (the H3/th3index family) so the denominator is the full MEOS public C surface, not a subset. The facade exposes 2296 of the 2296 JMEOS-bindable public MEOS functions across all families (core/geo/cbuffer/npoint/pose/rgeo/h3), and the SQL surface 1068 of 1068.
estebanzimanyi
added a commit
to estebanzimanyi/MobilityFlink
that referenced
this pull request
May 31, 2026
… surface Add a generated, tier-aware Java facade over the MEOS public API, organized as one Java class per MEOS object-model class plus one per public-MEOS-header for free functions: - 50 `MeosOps<Class>` classes (751 methods): one per MEOS object-model class (TFloat, TInt, TBool, TText, TGeomPoint, TGeogPoint, TCbuffer, TNpoint, TPose, TRGeometry, TBox, STBox, Set, Span, SpanSet, …). - 6 `MeosOpsFree<Header>` classes (1,346 methods): one per public MEOS header for functions not assigned to any object-model class (MeosOpsFreeCore, MeosOpsFreeGeo, MeosOpsFreeCbuffer, MeosOpsFreeNpoint, MeosOpsFreePose, MeosOpsFreeRgeo). - 1 shared `MeosOpsRuntime` (single `MEOS_AVAILABLE` static-init across all 56 facades). Each emitted method forwards to `functions.GeneratedFunctions.<name>(...)` after probing the shared `MeosOpsRuntime.MEOS_AVAILABLE` flag. Each method carries a Javadoc tier marker (stateless / bounded-state / windowed / cross-stream / io-meta) so consumers know the per-method wiring shape. Total emit: 2,097 of JMEOS PR MobilityDB#19's 2,699-method surface (77.7%); remainder is the JMEOS-deliberately-omitted type-catalog helpers plus the streaming-relevance-baseline ambiguous (59) and sequence-only (14) buckets, both surfaced separately for design decisions before emit. Two generators under flink-processor/tools/codegen/: - codegen-oo.py: reads JMEOS jar signatures via javap-p + streaming-relevance baseline + MEOS object model → emits per-OO-class facades. - codegen-free.py: same shape, but for functions not in the OO model → emits per-header facades. Both are ~250 LOC, deterministic, audit-by-regeneration. Manifests record provenance (JMEOS method total, baseline target count, emit count, per-tier breakdown, per-class/per-header method count, sample of functions absent from JMEOS). Coexists with the existing berlinmod.MEOSBridge hand-written BerlinMOD-scoped bridge (high-level, query-shaped); the generated MeosOps* facades expose the raw MEOS surface tier-by-tier (low-level, catalog-shaped). Both share the same MEOS_AVAILABLE discipline and `functions.GeneratedFunctions` delegation. Stacks on feat/jmeos-bridge-swap; additive-only; touches no existing file. Locally compile-verified against the union of JMEOS PR MobilityDB#19's jmeos-core + PR MobilityDB#18's utils.spatial (the latter needed by MEOSBridge, separately tracked). (cherry picked from commit e5707ac)
c086a78 to
01100f0
Compare
Member
Author
|
Superseded by the Path-B consolidation: the former 18-deep stack is collapsed into two reviewable topical PRs on top of the merged scaffold — MEOS integration #30 → benchmark #31 — each one clean squashed commit with the generated-facade bulk, dead family-flag profiles, committed target/ artifacts, and invented synthetic corpus removed. Closing as folded into #30/#31. |
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.
The MEOS facade exposes the tbigint temporal type (MeosOpsTBigint, emitted by tools/codegen/emit_tbigint_facade.py from the public meos.h tbigint surface intersected with the jar) alongside the existing bigint set/span classes, and the always-covers functions (acovers_*) via the gap forwarders. The parity audit counts meos_h3.h (the H3/th3index family) so the denominator is the full MEOS public C surface. The facade exposes 2296 of the 2296 JMEOS-bindable public MEOS functions across all families, and the SQL surface 1068 of 1068.