When Boost.Geometry release?

Generic Geometry Library (GGL)The Boost 1.42 was released a week ago, however this release does not include Boost.Geometry (aka GGL) which was accepted 2 months ago. It is nothing uncommon, though many people have been asking obvious question, why Boost.Geometry is not there and when it will be there.

Boost.Geometry is accepted but with a sticky note attached with a list of issues that need to be solved before the library can be included in official Boost release. It means there is still plenty of work necessary to be done and as soon as they are done and confirmed, we’re in.

Hartmut Kaiser, the review manager, included compete and detailed list of all the issues that need to be addressed in the GGL review results report. Shortly, the contingencies are:

  • Robustness: complete review of all elements of the library to assure it allows to instantiate all algorithms with arbitrary number types. By design, it is possible to specialise types and algorithms of Boost.Geometry with GMP or CLN, so it computes with arbitrary-precision arithmetic. This feature is possible thanks to numeric_adaptor developed by Bruno and Barend. Also, details of computational complexity per algorithms shall be updated.
  • Concepts: during the review, a few problems have been revealed with adapting custom geometries for Boost.Geometry. The concepts are a moral backbone of the library, so they need to be sound making the adaptation process simpler as that’s what the whole idea of concepts in C++ is for.
  • Boolean operations: robustness and coping with different coordinate orders of polygons should be improved.
  • Documentation: currently only Doxygen-based documentation is available. This system does not work well for Boost, so migration to Quickbook system is to be done.
  • Testing: simply, a collection of basic unit tests is not enough and verification of the correctness of the algorithms in a wide range of use cases is necessary along with high volume and random tests.

There are also a few minor issues specified as non-contingencies, however.

It is quite a list and plenty of work that needs to be done and Barend replied on the list:

We’re working on the library, I don’t hope it will take us that long, but 1.42 was not feasable at all. I hope 1.43 but even that is already coming soon.

Tasks dispatched. Fingers crossed.

Generic Geometry Library accepted to Boost

Generic Geometry Library (GGL) Today, Hartmut Kaiser, manager of the review of the Generic Geometry Library, announced the official results of the review.

Here we go:

Formally this review ended with 12 YES and 2 NO votes. This result reflects the overall discussion and the general consensus of this library being worth to be included into Boost.

It means that formally the Generic Geometry Library has been approved to become a part of Boost C++ Libraries collection. Happy day!

Hartmut also writes:

It is worth highlighting that most of the reviewers emphasized the excellent quality of the library design.

I would like to send out my own kudos to Barend Gehrels and Bruno Lalande, the very core team, who started the project, designed and implemented the high-quality library and eventually released it as Open Source Software.

Boost will review Generic Geometry Library

Generic Geometry Library (GGL)Today afternoon, Barend Gehrels oficially submitted formal request of the Generic Geometry Library (GGL) to Boost C++ Libraries.

After a long journey through four previews and number of discussions, here and there on Boost mailing list and on GGL mailing list, and through the library presentation at BoostCon’08 and hard work on application of improvements to design and implementation contributed by previews reviewers and also by growing community of users, the Generic Geometry Library project finally has got his D-Day. Today official request has been posted to the Boost Community.

The design of the GGL library is stable. The library provides a variety of coherent functionality. Given that, the library has matured enough for formal review. Fair enough.

The Generic Geometry Library is considered as a general purpose library which is not bound to any specific domain. I believe this goal has been achieved very well. However, every use of a software library is a domain-specific use. Thus, next to built-in features, agnosticism (computing) and extensibility, an idea of GGL extensions has been defined. We* agreed that extensions should be supported in a very similar way to how the Generic Image Library (GIL) does it. So we are going to help to organize development of GGL extensions, where an extension is something more specific to domains, for example domain of GIS applications.

The review is put on the official Boost formal review schedule with Hartmut Kaiser as the review manager. Let’s get this party started:

Formal Review Request: Generic Geometry Library (GGL).

The Boost review itself is quite long, very detailed and fairly exhausting, for a library submitters, process. It feels like a kid standing still in front of a wall and other kids are bombarding him with snow balls. Having in memories process of Boost.Polygon library review I was witnessing a few weeks ago, GGL is going to take zillions of “snow balls” on the chin :-) Fingers crossed!

* I’ve joined the Generic Geometry Library project in April 2008 2009 and since then has tried contribute by evaluating, testing, fixing, porting, improving and extending to some small, hopefully useful, extent.

Talk on Geometry Template Library

Another video from BoostCon’09 conference. This time it is about the Geometry Template Library (GTL) for STL-like 2D operations by Lucanus Simonson and Gyuszi Suto:

Here is PDF document with slides from the conference talk. The GTL library was submitted to Boost C++ Libraries for formal review as Boost Polygon library. Performance was at large a significant subject of posted reviews and discussions. Barend and Bruno from Generic Geometry Library (GGL) have been working hard to build a comprehensive performance study of Open Source geometry libraries available on the market. Results and source code are available.