Skip to content

Add shape annotations to meos-meta.json for binding codegens#2

Open
estebanzimanyi wants to merge 4 commits into
fix/stdbool-stubfrom
feat/shape-metadata
Open

Add shape annotations to meos-meta.json for binding codegens#2
estebanzimanyi wants to merge 4 commits into
fix/stdbool-stubfrom
feat/shape-metadata

Conversation

@estebanzimanyi
Copy link
Copy Markdown
Member

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.

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.
@estebanzimanyi estebanzimanyi changed the base branch from master to fix/stdbool-stub May 13, 2026 16:50
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant