Skip to content

pagmo 2.14.0

Compare
Choose a tag to compare
@bluescarni bluescarni released this 04 Mar 19:57
· 490 commits to master since this release

This new pagmo release comes with a couple of very important internal changes in the project:

  • the Python bindings (pygmo) have been split off into a separate and independent project (https://github.com/esa/pygmo2). Although pagmo and pygmo were already clearly separated, residing into separate directories of the pagmo source tree, the fact that they were bundled together in the same repository was the source of a variety of complications in the build system and in the packaging pipeline, and also a source of confusion for newcomers to the project. Hopefully this new setup spells out more clearly the relation between pagmo and pygmo: pygmo is a Python extension module which depends on the pagmo C++ library.
  • We also took advantage of the project split to move the pygmo bindings from Boost.Python to the more modern pybind11 (https://github.com/pybind/pybind11). This switch should have a variety of benefits, including reduced CPU and memory usage during compilation, increased performance at runtime, better integration with NumPy, and reliance of a more actively maintained project.

The switch to pybind11 was a massive rework of the pygmo codebase, which, hopefully, should have small effects on pygmo users. The API of pygmo has not changed, however some small details did change (e.g., pybind11 sometimes translates C++ exceptions to Python differently from Boost.Python). We tested this pygmo release particularly thoroughly, however, because of the scope of the changes it is likely that we might have missed something. Please report any issue you find to our bugtracker:

https://github.com/esa/pygmo2/issues

This release also brings a couple of new features and the usual assortment of fixes and optimisations. The full changelogs, as usual, are available here:

https://esa.github.io/pagmo2/changelog.html
https://esa.github.io/pygmo2/changelog.html