[geos-devel] Open issues

strk at refractions.net strk at refractions.net
Mon Oct 30 08:29:55 EST 2006


On Mon, Oct 30, 2006 at 12:24:16PM +0100, Markus Schaber wrote:
> Hi,
> 
> I'm just trying to summarize our discussion on #postgis.
> 
> The open issues for GEOS seem to be:
> 
> - The enum GEOSGeomTypeId was renamed to GEOSGeomTypes - this
>   might break compatibility with clients. Why was it done, and should
>   it be reverted?

Reason for modification was clash with a function name:
http://lists.refractions.net/pipermail/geos-devel/2006-July/002437.html

I guess nobody was using the enum by name, or would have noticed
the same problem as reported in that message, so hopefully
the change would also be source-level compatible with all existing
clients. As for binary compatibility there are no functions 
taking or returning by enum name (only int-returning function)
so there should be no problem.

> - Our "typedef struct GEOSGeom_t *GEOSGeom;" used in function arguments
>   as "const GEOSGeom" actually defines an unmodifiable Pointer to a
>   modifiable Geometry. This is the reason for those "type qualifiers
>   ignored on return type" warnings.
>   Possible solutions:
>   - Include the "const" into the typedef, as the C-API does not expose
>     any in-place modificators.
>   - Remove the "*" from the typedef, and declare the Pointers explicitly
>     in the function definitions
>   We will have to dig into whether this might break any clients.

I'd like to hear opinion of others on this.
Making the pointer part visible is probably the cleanest thing to do,
but clients will suffer from this. Maybe should *add* new typedefs
so that old clients will still work w/out  modification but new code
can use the new typedefs ?

> - The same for "typedef struct GEOSCoordSeq_t *GEOSCoordSeq;".

CoordSeq has mutator so one of the options above is unavailable.

> - Missing regression test for Polygonizer.

We really need this 

> - Inclusion of capi/geostest into "make check".

geostest run was included in 'make check', but it's a very lame approach
(diff against an expected output - where output sliglty changes between
hosts - floats hell)


--strk;



More information about the geos-devel mailing list