Bump PyMEOS-CFFI to MEOS 1.4#19
Open
estebanzimanyi wants to merge 2 commits into
Open
Conversation
ba735f0 to
a888355
Compare
a4f3dbe to
7421d77
Compare
Regenerate the cdef and functions against the MEOS 1.4 surface. Also exclude macro-aliased internal accessors (SET_VAL_N / SET_OFFSETS_PTR / SPANSET_SP_N / TSEQUENCE(SET)_OFFSETS_PTR / TSEQUENCE(SET)_INST_N|SEQ_N) from the cdef: meos_internal.h declares them both as extern functions and as function-like macros, so although the nm filter keeps the symbols, the macro definition wins in the cffi set_source unit and the wrapper expands SET_VAL_N -> PointerGetDatum (not part of the MEOS ABI), failing to import. They are internal memory-layout accessors, not public binding surface.
7421d77 to
1f602f2
Compare
estebanzimanyi
added a commit
to estebanzimanyi/PyMEOS-CFFI
that referenced
this pull request
Jun 25, 2026
master predates the meos-idl.json-driven codegen, which lives in the open stack. Add tools/pin/compose-order.txt (the canonical fold manifest; MobilityDB#19 is the verified frontier containing MobilityDB#18) and GENERATION.md (the per-binding generator policy: PyMEOS-CFFI owns its generator in-repo at builder/build_pymeos_functions.py generating pymeos_cffi/functions.py from meos-idl.json; the low-level CFFI layer under the PyMEOS OO layer).
Make PyMEOS-CFFI a pure consumer of the MEOS-API catalog (meos-idl.json), removing the last place this repository parsed MEOS headers. builder/build_header.py no longer opens any .h file: it projects the ffibuilder.cdef header (builder/meos.h) from the catalog's structs, enums, macros and functions. Every MEOS type is an opaque handle at the CFFI boundary; ffibuilder.set_source #includes the real headers so CFFI resolves each layout against the installed library. build_pymeos.py derives its #include list from the catalog's own file field and compiles with every optional family enabled, matching the all-families libmeos. The catalog and the generated header are derived in CI and gitignored, never committed: the PR build workflow provisions meos-idl.json + an all-families libmeos once via the shared MobilityDB/MEOS-API provision-meos action (the same derivation the JVM bindings consume) and reuses that OS-independent catalog for the macOS builds.
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.
Vendors the MEOS 1.4 IDL (3544 functions, +1149 over 1.3) and regenerates pymeos_cffi/functions.py plus builder/meos.h on top of #18. Adds meos_cbuffer.h, meos_pose.h, and meos_rgeo.h to the builder header lists. Restores the GEOSContextHandle_t entry in undefined_types so the cdef strips geos_get_context, whose handle type is forward-declared opaque. Version bumped to 1.4.0a1.