Add shape annotations to meos-meta.json for binding codegens#2
Open
estebanzimanyi wants to merge 4 commits into
Open
Add shape annotations to meos-meta.json for binding codegens#2estebanzimanyi wants to merge 4 commits into
estebanzimanyi wants to merge 4 commits into
Conversation
Documents and seeds the per-function shape catalog under functions.<c_name>.shape so binding codegens can resolve array-return lengths, parallel output arrays, multi-input groups, and explicit non-wrappable functions without inventing per-binding metadata. The shape keys are: arrayReturn.lengthFrom (accessor or param), outputArrays (parallel out-parameters sharing the primary length), namedOutputs (scalar out-parameters whose name is neither result nor value), arrayInputGroup (N parallel input slices sharing one count), and skip. Initial coverage closes the 32 GoMEOS codegen TODOs: the *_values family routes through set_num_values / spanset_num_spans / temporal_num_instants accessors; the *_split family declares its time_bins / value_bins / space_bins parallel outputs; the skiplist family is marked skip; tpointseq_make_coords declares its four parallel input arrays; tempsubtype_from_string and geom_min_bounding_radius mark subtype and radius as named outputs.
ed46170 to
fd4d0ce
Compare
Adds shape.nullable across 38 functions covering 52 (function, param) pairs that accept NULL: aggregator transfn state slots, optional shift / scale / duration windows, tile origin overrides, tz_str and extra config strings, geo_as_geojson srs, and tsequenceset_make_gaps maxt. Adds shape.outputArrays for tbox_as_hexwkb / stbox_as_hexwkb (size) and the three *_time_tiles count outputs that the existing auto-detect heuristic does not reach. Lets PyMEOS-CFFI's build_pymeos_functions.py replace its hardcoded nullable_parameters and output_parameters sets with reads from the IDL.
stbox_quad_split returns an STBox array whose length lives in its trailing int *count parameter. Without the entry, bindings expose count as a user-facing input.
Match the existing geoset_values pattern. Bindings now know the length comes from set_num_values rather than treating these as free-floating Cbuffer ** / Pose ** returns.
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.
Documents and seeds the per-function shape catalog under functions.<c_name>.shape so binding codegens can resolve array-return lengths, parallel output arrays, multi-input groups, and explicit non-wrappable functions without inventing per-binding metadata. The shape keys are: arrayReturn.lengthFrom (accessor or param), outputArrays (parallel out-parameters sharing the primary length), namedOutputs (scalar out-parameters whose name is neither result nor value), arrayInputGroup (N parallel input slices sharing one count), and skip. Initial coverage closes the 32 GoMEOS codegen TODOs: the *_values family routes through set_num_values / spanset_num_spans / temporal_num_instants accessors; the *_split family declares its time_bins / value_bins / space_bins parallel outputs; the skiplist family is marked skip; tpointseq_make_coords declares its four parallel input arrays; tempsubtype_from_string and geom_min_bounding_radius mark subtype and radius as named outputs.