GEOS 3.8.0 RC3

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

GEOS 3.8.0 RC3

Paul Ramsey
Hi all GEOS people,

*Especially packagers...* (This package fixes one last regression
noticed in QGIS.)

3.8.0 will be released in 48 hours if no blockers are raised.

In support of that we would like
your help testing out the final project. You’ll find that there are
lots of performance improvements, we hope, and improved reliability in
common operations.

http://download.osgeo.org/geos/geos-3.8.0rc2.tar.bz2

Please report any issues you find in building or running tests on the
GEOS ticket tracker https://trac.osgeo.org/geos/ or to this list.

- New things:
  - CAPI: GEOSBuildArea (#952, Even Rouault)
  - CAPI: GEOSMakeValid (#952, Even Rouault)
  - CAPI: GEOSPolygonize_valid (#727, Dan Baston)
  - CAPI: GEOSCoverageUnion (Dan Baston)
  - CAPI: GEOSCoordSeq_setXY, GEOSCoordSeq_setXYZ,
          GEOSCoordSeq_getXY, GEOSCoordSeq_getXYZ (Dan Baston)
  - CAPI: GEOSMinimumBoundingCircle (#735)
  - CAPI: GEOSGeom_createPointFromXY (Dan Baston)

- Improvements:
  - Improve overall performance by reducing of heap allocations (Dan Baston)
  - Improve performance and robustness of GEOSPointOnSurface (Martin Davis)
  - Improve performance of GEOSPolygonize for cases with many potential
    holes (#748, Dan Baston)
  - Support extended precision calculations (ttmath) and port JTS
    improvements related to extended precision (Paul Ramsey, Mateusz Loskot)
  - Improve performance of GEOSPolygonize for cases with many or complex
    shells (Dan Baston, Martin Davis)
  - Improve performance of Delaunay triangulations / Voronoi Diagrams
    (Dan Baston)
  - Improve performance of prepared geometry operations (Dan Baston)
  - Improve robustness of Delaunay triangulations (Paul Ramsey, Martin Davis)
  - Improve performance of unary union for lines (Dan Baston)
  - Improve general predicate, overlay, and buffer performance (Dan
Baston, Paul Ramsey)
  - Improve cascaded union performance (Paul Ramsey, Martin Davis)
  - Allocate default GeometryFactory singleton on the stack (Sandro Mani)
  - Harmonize XML tests with JTS and harmonize cmake/autoconf
    test running (Paul Ramsey)
  - CMake modernization (Mateusz Loskot, Paul Ramsey, Dan Baston)
  - Return unique_ptr from most methods that produce a new geometry (Dan Baston)

- Changes:
  - Constructive geometry functions in CAPI now preserve SRID
    of input arguments in output (#896)
_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: GEOS 3.8.0 RC3

rmrodriguez
Hi,

I've run scan-build against the project and it shows ~30 issues,
some minor and some important.

I've created a PR addressing them (https://github.com/libgeos/geos/pull/238)
but there is still 12 more in case someone wants to have a look before
me (I'll try
to finish with them tomorrow).

On Tue, Oct 8, 2019 at 7:42 PM Paul Ramsey <[hidden email]> wrote:

>
> Hi all GEOS people,
>
> *Especially packagers...* (This package fixes one last regression
> noticed in QGIS.)
>
> 3.8.0 will be released in 48 hours if no blockers are raised.
>
> In support of that we would like
> your help testing out the final project. You’ll find that there are
> lots of performance improvements, we hope, and improved reliability in
> common operations.
>
> http://download.osgeo.org/geos/geos-3.8.0rc2.tar.bz2
>
> Please report any issues you find in building or running tests on the
> GEOS ticket tracker https://trac.osgeo.org/geos/ or to this list.
>
> - New things:
>   - CAPI: GEOSBuildArea (#952, Even Rouault)
>   - CAPI: GEOSMakeValid (#952, Even Rouault)
>   - CAPI: GEOSPolygonize_valid (#727, Dan Baston)
>   - CAPI: GEOSCoverageUnion (Dan Baston)
>   - CAPI: GEOSCoordSeq_setXY, GEOSCoordSeq_setXYZ,
>           GEOSCoordSeq_getXY, GEOSCoordSeq_getXYZ (Dan Baston)
>   - CAPI: GEOSMinimumBoundingCircle (#735)
>   - CAPI: GEOSGeom_createPointFromXY (Dan Baston)
>
> - Improvements:
>   - Improve overall performance by reducing of heap allocations (Dan Baston)
>   - Improve performance and robustness of GEOSPointOnSurface (Martin Davis)
>   - Improve performance of GEOSPolygonize for cases with many potential
>     holes (#748, Dan Baston)
>   - Support extended precision calculations (ttmath) and port JTS
>     improvements related to extended precision (Paul Ramsey, Mateusz Loskot)
>   - Improve performance of GEOSPolygonize for cases with many or complex
>     shells (Dan Baston, Martin Davis)
>   - Improve performance of Delaunay triangulations / Voronoi Diagrams
>     (Dan Baston)
>   - Improve performance of prepared geometry operations (Dan Baston)
>   - Improve robustness of Delaunay triangulations (Paul Ramsey, Martin Davis)
>   - Improve performance of unary union for lines (Dan Baston)
>   - Improve general predicate, overlay, and buffer performance (Dan
> Baston, Paul Ramsey)
>   - Improve cascaded union performance (Paul Ramsey, Martin Davis)
>   - Allocate default GeometryFactory singleton on the stack (Sandro Mani)
>   - Harmonize XML tests with JTS and harmonize cmake/autoconf
>     test running (Paul Ramsey)
>   - CMake modernization (Mateusz Loskot, Paul Ramsey, Dan Baston)
>   - Return unique_ptr from most methods that produce a new geometry (Dan Baston)
>
> - Changes:
>   - Constructive geometry functions in CAPI now preserve SRID
>     of input arguments in output (#896)
> _______________________________________________
> geos-devel mailing list
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/geos-devel



--
Raúl Marín Rodríguez
carto.com
_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: GEOS 3.8.0 RC3

Regina Obe
In reply to this post by Paul Ramsey
Shouldn't this be linking to:

http://download.osgeo.org/geos/geos-3.8.0rc3.tar.bz2

-----Original Message-----
From: geos-devel [mailto:[hidden email]] On Behalf Of Paul Ramsey
Sent: Tuesday, October 8, 2019 1:42 PM
To: GEOS Development List <[hidden email]>
Subject: [geos-devel] GEOS 3.8.0 RC3

Hi all GEOS people,

*Especially packagers...* (This package fixes one last regression noticed in QGIS.)

3.8.0 will be released in 48 hours if no blockers are raised.

In support of that we would like
your help testing out the final project. You ll find that there are lots of performance improvements, we hope, and improved reliability in common operations.

http://download.osgeo.org/geos/geos-3.8.0rc2.tar.bz2

Please report any issues you find in building or running tests on the GEOS ticket tracker https://trac.osgeo.org/geos/ or to this list.

- New things:
  - CAPI: GEOSBuildArea (#952, Even Rouault)
  - CAPI: GEOSMakeValid (#952, Even Rouault)
  - CAPI: GEOSPolygonize_valid (#727, Dan Baston)
  - CAPI: GEOSCoverageUnion (Dan Baston)
  - CAPI: GEOSCoordSeq_setXY, GEOSCoordSeq_setXYZ,
          GEOSCoordSeq_getXY, GEOSCoordSeq_getXYZ (Dan Baston)
  - CAPI: GEOSMinimumBoundingCircle (#735)
  - CAPI: GEOSGeom_createPointFromXY (Dan Baston)

- Improvements:
  - Improve overall performance by reducing of heap allocations (Dan Baston)
  - Improve performance and robustness of GEOSPointOnSurface (Martin Davis)
  - Improve performance of GEOSPolygonize for cases with many potential
    holes (#748, Dan Baston)
  - Support extended precision calculations (ttmath) and port JTS
    improvements related to extended precision (Paul Ramsey, Mateusz Loskot)
  - Improve performance of GEOSPolygonize for cases with many or complex
    shells (Dan Baston, Martin Davis)
  - Improve performance of Delaunay triangulations / Voronoi Diagrams
    (Dan Baston)
  - Improve performance of prepared geometry operations (Dan Baston)
  - Improve robustness of Delaunay triangulations (Paul Ramsey, Martin Davis)
  - Improve performance of unary union for lines (Dan Baston)
  - Improve general predicate, overlay, and buffer performance (Dan Baston, Paul Ramsey)
  - Improve cascaded union performance (Paul Ramsey, Martin Davis)
  - Allocate default GeometryFactory singleton on the stack (Sandro Mani)
  - Harmonize XML tests with JTS and harmonize cmake/autoconf
    test running (Paul Ramsey)
  - CMake modernization (Mateusz Loskot, Paul Ramsey, Dan Baston)
  - Return unique_ptr from most methods that produce a new geometry (Dan Baston)

- Changes:
  - Constructive geometry functions in CAPI now preserve SRID
    of input arguments in output (#896)
_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: GEOS 3.8.0 RC3

Paul Ramsey
In reply to this post by rmrodriguez
This all seems like good fodder for 3.8.1

P

> On Oct 8, 2019, at 11:15 AM, [hidden email] wrote:
>
> Hi,
>
> I've run scan-build against the project and it shows ~30 issues,
> some minor and some important.
>
> I've created a PR addressing them (https://github.com/libgeos/geos/pull/238)
> but there is still 12 more in case someone wants to have a look before
> me (I'll try
> to finish with them tomorrow).
>
> On Tue, Oct 8, 2019 at 7:42 PM Paul Ramsey <[hidden email]> wrote:
>>
>> Hi all GEOS people,
>>
>> *Especially packagers...* (This package fixes one last regression
>> noticed in QGIS.)
>>
>> 3.8.0 will be released in 48 hours if no blockers are raised.
>>
>> In support of that we would like
>> your help testing out the final project. You’ll find that there are
>> lots of performance improvements, we hope, and improved reliability in
>> common operations.
>>
>> http://download.osgeo.org/geos/geos-3.8.0rc2.tar.bz2
>>
>> Please report any issues you find in building or running tests on the
>> GEOS ticket tracker https://trac.osgeo.org/geos/ or to this list.
>>
>> - New things:
>>  - CAPI: GEOSBuildArea (#952, Even Rouault)
>>  - CAPI: GEOSMakeValid (#952, Even Rouault)
>>  - CAPI: GEOSPolygonize_valid (#727, Dan Baston)
>>  - CAPI: GEOSCoverageUnion (Dan Baston)
>>  - CAPI: GEOSCoordSeq_setXY, GEOSCoordSeq_setXYZ,
>>          GEOSCoordSeq_getXY, GEOSCoordSeq_getXYZ (Dan Baston)
>>  - CAPI: GEOSMinimumBoundingCircle (#735)
>>  - CAPI: GEOSGeom_createPointFromXY (Dan Baston)
>>
>> - Improvements:
>>  - Improve overall performance by reducing of heap allocations (Dan Baston)
>>  - Improve performance and robustness of GEOSPointOnSurface (Martin Davis)
>>  - Improve performance of GEOSPolygonize for cases with many potential
>>    holes (#748, Dan Baston)
>>  - Support extended precision calculations (ttmath) and port JTS
>>    improvements related to extended precision (Paul Ramsey, Mateusz Loskot)
>>  - Improve performance of GEOSPolygonize for cases with many or complex
>>    shells (Dan Baston, Martin Davis)
>>  - Improve performance of Delaunay triangulations / Voronoi Diagrams
>>    (Dan Baston)
>>  - Improve performance of prepared geometry operations (Dan Baston)
>>  - Improve robustness of Delaunay triangulations (Paul Ramsey, Martin Davis)
>>  - Improve performance of unary union for lines (Dan Baston)
>>  - Improve general predicate, overlay, and buffer performance (Dan
>> Baston, Paul Ramsey)
>>  - Improve cascaded union performance (Paul Ramsey, Martin Davis)
>>  - Allocate default GeometryFactory singleton on the stack (Sandro Mani)
>>  - Harmonize XML tests with JTS and harmonize cmake/autoconf
>>    test running (Paul Ramsey)
>>  - CMake modernization (Mateusz Loskot, Paul Ramsey, Dan Baston)
>>  - Return unique_ptr from most methods that produce a new geometry (Dan Baston)
>>
>> - Changes:
>>  - Constructive geometry functions in CAPI now preserve SRID
>>    of input arguments in output (#896)
>> _______________________________________________
>> geos-devel mailing list
>> [hidden email]
>> https://lists.osgeo.org/mailman/listinfo/geos-devel
>
>
>
> --
> Raúl Marín Rodríguez
> carto.com
> _______________________________________________
> geos-devel mailing list
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/geos-devel

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: GEOS 3.8.0 RC3

Paul Ramsey
In reply to this post by Regina Obe
Yep, getting punchy, time to release.

P

> On Oct 8, 2019, at 11:17 AM, Regina Obe <[hidden email]> wrote:
>
> Shouldn't this be linking to:
>
> http://download.osgeo.org/geos/geos-3.8.0rc3.tar.bz2
>
> -----Original Message-----
> From: geos-devel [mailto:[hidden email]] On Behalf Of Paul Ramsey
> Sent: Tuesday, October 8, 2019 1:42 PM
> To: GEOS Development List <[hidden email]>
> Subject: [geos-devel] GEOS 3.8.0 RC3
>
> Hi all GEOS people,
>
> *Especially packagers...* (This package fixes one last regression noticed in QGIS.)
>
> 3.8.0 will be released in 48 hours if no blockers are raised.
>
> In support of that we would like
> your help testing out the final project. You ll find that there are lots of performance improvements, we hope, and improved reliability in common operations.
>
> http://download.osgeo.org/geos/geos-3.8.0rc2.tar.bz2
>
> Please report any issues you find in building or running tests on the GEOS ticket tracker https://trac.osgeo.org/geos/ or to this list.
>
> - New things:
>  - CAPI: GEOSBuildArea (#952, Even Rouault)
>  - CAPI: GEOSMakeValid (#952, Even Rouault)
>  - CAPI: GEOSPolygonize_valid (#727, Dan Baston)
>  - CAPI: GEOSCoverageUnion (Dan Baston)
>  - CAPI: GEOSCoordSeq_setXY, GEOSCoordSeq_setXYZ,
>          GEOSCoordSeq_getXY, GEOSCoordSeq_getXYZ (Dan Baston)
>  - CAPI: GEOSMinimumBoundingCircle (#735)
>  - CAPI: GEOSGeom_createPointFromXY (Dan Baston)
>
> - Improvements:
>  - Improve overall performance by reducing of heap allocations (Dan Baston)
>  - Improve performance and robustness of GEOSPointOnSurface (Martin Davis)
>  - Improve performance of GEOSPolygonize for cases with many potential
>    holes (#748, Dan Baston)
>  - Support extended precision calculations (ttmath) and port JTS
>    improvements related to extended precision (Paul Ramsey, Mateusz Loskot)
>  - Improve performance of GEOSPolygonize for cases with many or complex
>    shells (Dan Baston, Martin Davis)
>  - Improve performance of Delaunay triangulations / Voronoi Diagrams
>    (Dan Baston)
>  - Improve performance of prepared geometry operations (Dan Baston)
>  - Improve robustness of Delaunay triangulations (Paul Ramsey, Martin Davis)
>  - Improve performance of unary union for lines (Dan Baston)
>  - Improve general predicate, overlay, and buffer performance (Dan Baston, Paul Ramsey)
>  - Improve cascaded union performance (Paul Ramsey, Martin Davis)
>  - Allocate default GeometryFactory singleton on the stack (Sandro Mani)
>  - Harmonize XML tests with JTS and harmonize cmake/autoconf
>    test running (Paul Ramsey)
>  - CMake modernization (Mateusz Loskot, Paul Ramsey, Dan Baston)
>  - Return unique_ptr from most methods that produce a new geometry (Dan Baston)
>
> - Changes:
>  - Constructive geometry functions in CAPI now preserve SRID
>    of input arguments in output (#896)
> _______________________________________________
> geos-devel mailing list
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/geos-devel
>
> _______________________________________________
> geos-devel mailing list
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/geos-devel

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: GEOS 3.8.0 RC3

Greg Troxel-2
In reply to this post by Paul Ramsey
rc3 seems to be in good order from the pkgsrc viewpoint.

* a digression about 3.7.3

I updated pkgsrc belatedly from 3.7.1 to 3.7.3 and tests passed on
netbsd-8/amd64.

There is a C++ ABI break from 3.7.1 to 3.7.3, which was unexpected.  Due
to libtool adding in dependency libs from the .la file, gdal links to
geos-3.7.3.so, even though it ought to just link to geos_c.  This is
arguably a libtool bug (and perhaps only on pkgsrc, but I think bigger),
so this ABI break is notabable, even if there are really zero direct
users, and even if the 3.7.3 library has the same ABI as the 3.7.1
library.  While I expect ABI breaks across major versions, I don't
expect them on micro releases and this surprised me.

* report on 3.8.0rc3

With 3.8.0rc3, on netbsd-8/amd64, it built and passed geos's own test suite.

a few very minor things, probably not worth the risk of changing other
than perhaps adjusting NEWS:

  There are header files removed from the set of installed files.  I
  don't see these presumed API withdrawals in NEWS.  (I am not saying
  this is wrong, just that I don't understand.)

  NEWS doesn't mention if there is an ABI break of the C++ API.  In
  pkgsrc, there are no known users of this now.  But, libtool adds
  dependency_libs to the link lines of depending packages, so even
  things that don't use the C++ API end up linked against the lib
  (arguably a bug, unknown extent of where this happens), and have to be
  recompiled, so an API break is noteworthy.

  I have a stray patch to geos-config.in, to add in @LDFLAGS@ to the
  --ldflags command.  I am really unclear if anyone ever sent it
  upstream from pkgsrc.  Also, there are --libs arguments that also
  include -Llibdir, which seems wrong.  Best to talk about this post
  release I think -- not new or urgent.

  I have a stray patch to capi/geos_ts_c.cpp, which uses const char *
  instead of str in NOTICE_MESSAGE and ERROR_MESSAGE.  I am unclear on
  the origin of this patch, but it claims that non-POD types in variadic
  functions are UB.   Also seems best to defer to post release -- also
  not new or urgent.

Removed header files:
  include/geos/algorithm/CGAlgorithms.h
  include/geos/algorithm/CentroidArea.h
  include/geos/algorithm/CentroidLine.h
  include/geos/algorithm/CentroidPoint.h
  include/geos/algorithm/MCPointInRing.h
  include/geos/algorithm/PointInRing.h
  include/geos/algorithm/SIRtreePointInRing.h
  include/geos/algorithm/SimplePointInRing.h
  include/geos/geom/Lineal.h
  include/geos/geom/Polygonal.h
  include/geos/geom/Puntal.h
  include/geos/noding/SingleInteriorIntersectionFinder.h
  include/geos/platform.h
  include/geos/timeval.h

----------------------------------------
$NetBSD: patch-ae,v 1.6 2018/09/11 16:13:29 gdt Exp $

TODO: explain what's in LDFLAGS.
TODO: explain why --libs has -L in the first place (vs --ldflags).
TODO: report upstream.

--- tools/geos-config.in.orig 2018-08-19 10:49:14.000000000 +0000
+++ tools/geos-config.in
@@ -58,7 +58,7 @@ case $1 in
       echo -L${libdir} -lgeos -lm
       ;;
     --ldflags)
-      echo -L${libdir}
+      echo -L${libdir} @LDFLAGS@
       ;;
     --includes)
       echo ${prefix}/include
----------------------------------------
$NetBSD: patch-capi_geos__ts__c.cpp,v 1.2 2018/09/11 16:13:29 gdt Exp $

\todo Document this patch.   It appears to be that passing non-POD types
to variadic functions is UB.

\todo File a bug upstream, if appropriate.

--- capi/geos_ts_c.cpp.orig 2015-09-08 16:31:02.000000000 +0000
+++ capi/geos_ts_c.cpp
@@ -214,7 +214,7 @@ typedef struct GEOSContextHandle_HS
     }
 
     void
-    NOTICE_MESSAGE(string fmt, ...)
+    NOTICE_MESSAGE(const char *fmt, ...)
     {
       if (NULL == noticeMessageOld && NULL == noticeMessageNew) {
         return;
@@ -222,7 +222,7 @@ typedef struct GEOSContextHandle_HS
 
       va_list args;
       va_start(args, fmt);
-      int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt.c_str(), args);
+      int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt, args);
       va_end(args);
 
       if (result > 0) {
@@ -235,7 +235,7 @@ typedef struct GEOSContextHandle_HS
     }
 
     void
-    ERROR_MESSAGE(string fmt, ...)
+    ERROR_MESSAGE(const char *fmt, ...)
     {
       if (NULL == errorMessageOld && NULL == errorMessageNew) {
         return;
@@ -243,7 +243,7 @@ typedef struct GEOSContextHandle_HS
 
       va_list args;
       va_start(args, fmt);
-      int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt.c_str(), args);
+      int result = vsnprintf(msgBuffer, sizeof(msgBuffer) - 1, fmt, args);
       va_end(args);
 
       if (result > 0) {
----------------------------------------
_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel