[geos-devel] perl bindings for geos (Geo::Geos)

Ivan Baidakou i.baydakov at crazypanda.ru
Wed Aug 14 02:32:12 PDT 2019


Hello, 

We (i.e. crazy-panda.ru) are glad to announce perl bindings for geos [1]. The bindings are done 
for C++ geos interface, and mostly maches 1 to 1, when it is possible to keep API "perlish",
i.e. not to crash due to dangling reference.

The bindings where successfully tested for Linux and FreeBSD. At the moment for Windows bindings
are not available.


PS. There were a few compilation issues on NetBSD, reported by cpantesters (i.e. [2]). I wasn't 
able to figure out what's wrong here:

/home/cpan/pit/bare/conf/perl-5.14.1/.cpanplus/5.14.1/build/f497Xw7PTu/CPP-geos-3.7.0.3_8/geos-3.7.2/include/geos/geom/Coordinate.inl: In member function 'bool geos::geom::Coordinate::isNull() const':
/home/cpan/pit/bare/conf/perl-5.14.1/.cpanplus/5.14.1/build/f497Xw7PTu/CPP-geos-3.7.0.3_8/geos-3.7.2/build/include/geos/platform.h:73:29: error: 'isnan' was not declared in this scope
 #    define ISNAN(x) isnan(x)
                             ^
/home/cpan/pit/bare/conf/perl-5.14.1/.cpanplus/5.14.1/build/f497Xw7PTu/CPP-geos-3.7.0.3_8/geos-3.7.2/include/geos/geom/Coordinate.inl:38:10: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
/home/cpan/pit/bare/conf/perl-5.14.1/.cpanplus/5.14.1/build/f497Xw7PTu/CPP-geos-3.7.0.3_8/geos-3.7.2/build/include/geos/platform.h:73:29: note: suggested alternative:
 #    define ISNAN(x) isnan(x)
                             ^
/home/cpan/pit/bare/conf/perl-5.14.1/.cpanplus/5.14.1/build/f497Xw7PTu/CPP-geos-3.7.0.3_8/geos-3.7.2/include/geos/geom/Coordinate.inl:38:10: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
In file included from /home/cpan/pit/bare/conf/perl-5.14.1/.cpanplus/5.14.1/build/f497Xw7PTu/CPP-geos-3.7.0.3_8/geos-3.7.2/src/algorithm/Angle.cpp:19:0:
/usr/include/g++/cmath:648:5: note:   'std::isnan'
     isnan(_Tp __x)
     ^

however, disabling the following line

check_include_files(ieeefp.h HAVE_IEEEFP_H)

in CMakeLists.txt fixed the situation with compilation on NetBSD [3].


[1] https://metacpan.org/pod/release/DMOL/Geo-Geos-1.0.1/lib/Geo/Geos.pm
[2] http://www.cpantesters.org/cpan/report/5385b464-bd38-11e9-9447-c8c4cdff8d62
[3] http://matrix.cpantesters.org/?dist=CPP-geos%203.7.2.0


WBR,
Ivan Baidakou


More information about the geos-devel mailing list