Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.

Boost.Python

Acknowledgments

Dave Abrahams is the architect, designer, and implementor of Boost.Python.

Brett Calcott contributed and maintains the Visual Studio project files and documentation.

Gottfried Ganßauge supplied support for opaque pointer conversions, complete with documentation and a regression test (and I didn't even have to ask him for those)!

Joel de Guzman implemented the default argument support and wrote the excellent tutorial documentation.

Ralf W. Grosse-Kunstleve implemented the pickle support, and has enthusiastically supported the library since its birth, contributing to design decisions and providing invaluable real-world insight into user requirements. Ralf has written some extensions for converting C++ containers that I hope will be incorporated into the library soon. He also implemented the cross-module support in the first version of Boost.Python. More importantly, Ralf makes sure nobody forgets the near-perfect synergy of C++ and Python for solving the problems of large-scale software construction.

Aleksey Gurtovoy wrote an incredible C++ Template Metaprogramming Library which allows Boost.Python to perform much of its compile-time magic. In addition, Aleksey very generously contributed his time and deep knowledge of the quirks of various buggy compilers to help us get around problems at crucial moments.

Paul Mensonides, building on the work Vesa Karvonen, wrote a similarly amazing Preprocessor Metaprogramming Library, and generously contributed the time and expertise to get it working in the Boost.Python library, rewriting much of Boost.Python to use the new preproccessor metaprogramming constructs and helping us to work around buggy and slow C++ preprocessors.

Bruno da Silva de Oliveira contributed the ingenious Pyste ("Pie-Steh") code generator.

Nikolay Mladenov contributed staticmethod support.

Martin Casado solved some sticky problems which allow us to build the Boost.Python shared library for AIX's crazy dynamic linking model.

Achim Domma contributed some of the Object Wrappers and HTML templates for this documentation. Dave Hawkes contributed inspiration for the use of the scope class to simplify module definition syntax. Pearu Pearson wrote some of the test cases that are in the current test suite.

The development of this version of Boost.Python was funded in part by the Lawrence Livermore National Laboratories and by the Computational Crystallography Initiative at Lawrence Berkeley National Laboratories.

Ullrich Koethe had independently developed a similar system. When he discovered Boost.Python v1, he generously contributed countless hours of coding and much insight into improving it. He is responsible for an early version of the support for function overloading and wrote the support for reflecting C++ inheritance relationships. He has helped to improve error-reporting from both Python and C++ (we hope to do as well in v2 again soon), and has designed the original support for exposing numeric operators, including a way to avoid explicit coercion by means of overloading.

The members of the boost mailing list and the Python community supplied invaluable early feedback. In particular, Ron Clarke, Mark Evans, Anton Gluck, Chuck Ingold, Prabhu Ramachandran, and Barry Scott took the brave step of trying to use Boost.Python while it was still in early stages of development.

The first version of Boost.Python would not have been possible without the support of Dragon Systems, which supported its development and release as a Boost library.


Revised 26 November, 2002

© Copyright Dave Abrahams 2002.