Parse the MEOS headers with NDEBUG defined#67
Conversation
The catalog described eight assert-only catalog predicates (meos_basetype, alphanum_basetype, alphanum_temptype, set_basetype, talphanum_type, temporal_basetype, temptype_subtype, temptype_subtype_all) that no released libmeos exports: their declarations and definitions both sit behind "#ifndef NDEBUG", and the shipped library is a Release build. Bindings projected them into their FFI surface, where a call fails only at run time with an unresolved symbol. Define NDEBUG for the parse so the catalog describes the library bindings link against. Function count 4250 -> 4242 against MobilityDB e6d3cb410, the eight predicates being the whole difference.
|
The catalog is faithful here, and MEOS is the side that carries the defect. These eight are the only eight of sixty-one type predicates in Bindings already project and call them: GoMEOS emits Debug-only also keeps them out of every Release build, which is the gap the A MobilityDB change exports the eight; a Release build then carries all eight and the catalog needs no filter. |
|
Closing in favour of exporting the eight predicates from MEOS, so the catalog stays an unfiltered description of the library. |
Defines
NDEBUGfor the libclang parse, so the catalog describes the library that bindings link against.Eight catalog predicates —
meos_basetype,alphanum_basetype,alphanum_temptype,set_basetype,talphanum_type,temporal_basetype,temptype_subtype,temptype_subtype_all— exist only in a debug build. Their declarations inmeos/include/temporal/meos_catalog.hand their definitions inmeos_catalog.cboth sit behind#ifndef NDEBUG, andmeos_catalog.cnotes they are used only in the asserts. The released libmeos is a Release build and exports none of them, yet the catalog lists all eight and bindings project them into their FFI surface, where an unresolved symbol surfaces only at call time. JMEOS declares all eight.Against MobilityDB
e6d3cb410, with the catalog derived from a-DMEOS=ON -DALL=ONinstall, the function count is 4250 -> 4242 and those eight predicates are the whole difference.timestamptz_in,add_date_int,mul_tint_int,temporal_tsequence,temporal_as_tinstantandtnumber_avg_valueremain present.