From 39f243f76b83381e059cc655c458bf3a7990750b Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Wed, 19 Mar 2003 01:47:30 +0000 Subject: [PATCH] Check in html and pdf versions [SVN r17985] --- doc/PyConDC_2003/bpl.html | 1117 +++++++++++++++++++++++++++ doc/PyConDC_2003/bpl.pdf | Bin 0 -> 156689 bytes doc/PyConDC_2003/bpl.txt | 12 +- doc/PyConDC_2003/python_cpp_mix.jpg | Bin 0 -> 22831 bytes 4 files changed, 1118 insertions(+), 11 deletions(-) create mode 100755 doc/PyConDC_2003/bpl.html create mode 100755 doc/PyConDC_2003/bpl.pdf create mode 100755 doc/PyConDC_2003/python_cpp_mix.jpg diff --git a/doc/PyConDC_2003/bpl.html b/doc/PyConDC_2003/bpl.html new file mode 100755 index 00000000..49b2fd39 --- /dev/null +++ b/doc/PyConDC_2003/bpl.html @@ -0,0 +1,1117 @@ + + + + + + +Building Hybrid Systems with Boost.Python + + + + + + + + +
+

Building Hybrid Systems with Boost.Python

+ +++ + + + + + + + + + + + + + +
Author:David Abrahams
Contact:dave@boost-consulting.com
Organization:Boost Consulting
Date:2003-03-13
Author:Ralf W. Grosse-Kunstleve
Copyright:Copyright David Abrahams and Ralf W. Grosse-Kunstleve 2003. All rights reserved
+ +
+

Abstract

+

Boost.Python is an open source C++ library which provides a concise +IDL-like interface for binding C++ classes and functions to +Python. Leveraging the full power of C++ compile-time introspection +and of recently developed metaprogramming techniques, this is achieved +entirely in pure C++, without introducing a new syntax. +Boost.Python's rich set of features and high-level interface make it +possible to engineer packages from the ground up as hybrid systems, +giving programmers easy and coherent access to both the efficient +compile-time polymorphism of C++ and the extremely convenient run-time +polymorphism of Python.

+
+
+

Introduction

+

Python and C++ are in many ways as different as two languages could +be: while C++ is usually compiled to machine-code, Python is +interpreted. Python's dynamic type system is often cited as the +foundation of its flexibility, while in C++ static typing is the +cornerstone of its efficiency. C++ has an intricate and difficult +compile-time meta-language, while in Python, practically everything +happens at runtime.

+

Yet for many programmers, these very differences mean that Python and +C++ complement one another perfectly. Performance bottlenecks in +Python programs can be rewritten in C++ for maximal speed, and +authors of powerful C++ libraries choose Python as a middleware +language for its flexible system integration capabilities. +Furthermore, the surface differences mask some strong similarities:

+
    +
  • 'C'-family control structures (if, while, for...)
  • +
  • Support for object-orientation, functional programming, and generic +programming (these are both multi-paradigm programming languages.)
  • +
  • Comprehensive operator overloading facilities, recognizing the +importance of syntactic variability for readability and +expressivity.
  • +
  • High-level concepts such as collections and iterators.
  • +
  • High-level encapsulation facilities (C++: namespaces, Python: modules) +to support the design of re-usable libraries.
  • +
  • Exception-handling for effective management of error conditions.
  • +
  • C++ idioms in common use, such as handle/body classes and +reference-counted smart pointers mirror Python reference semantics.
  • +
+

Given Python's rich 'C' interoperability API, it should in principle +be possible to expose C++ type and function interfaces to Python with +an analogous interface to their C++ counterparts. However, the +facilities provided by Python alone for integration with C++ are +relatively meager. Compared to C++ and Python, 'C' has only very +rudimentary abstraction facilities, and support for exception-handling +is completely missing. 'C' extension module writers are required to +manually manage Python reference counts, which is both annoyingly +tedious and extremely error-prone. Traditional extension modules also +tend to contain a great deal of boilerplate code repetition which +makes them difficult to maintain, especially when wrapping an evolving +API.

+

These limitations have lead to the development of a variety of wrapping +systems. SWIG is probably the most popular package for the +integration of C/C++ and Python. A more recent development is SIP, +which was specifically designed for interfacing Python with the Qt +graphical user interface library. Both SWIG and SIP introduce their +own specialized languages for customizing inter-language bindings. +This has certain advantages, but having to deal with three different +languages (Python, C/C++ and the interface language) also introduces +practical and mental difficulties. The CXX package demonstrates an +interesting alternative. It shows that at least some parts of +Python's 'C' API can be wrapped and presented through a much more +user-friendly C++ interface. However, unlike SWIG and SIP, CXX does +not include support for wrapping C++ classes as new Python types.

+

The features and goals of Boost.Python overlap significantly with +many of these other systems. That said, Boost.Python attempts to +maximize convenience and flexibility without introducing a separate +wrapping language. Instead, it presents the user with a high-level +C++ interface for wrapping C++ classes and functions, managing much of +the complexity behind-the-scenes with static metaprogramming. +Boost.Python also goes beyond the scope of earlier systems by +providing:

+
    +
  • Support for C++ virtual functions that can be overridden in Python.
  • +
  • Comprehensive lifetime management facilities for low-level C++ +pointers and references.
  • +
  • Support for organizing extensions as Python packages, +with a central registry for inter-language type conversions.
  • +
  • A safe and convenient mechanism for tying into Python's powerful +serialization engine (pickle).
  • +
  • Coherence with the rules for handling C++ lvalues and rvalues that +can only come from a deep understanding of both the Python and C++ +type systems.
  • +
+

The key insight that sparked the development of Boost.Python is that +much of the boilerplate code in traditional extension modules could be +eliminated using C++ compile-time introspection. Each argument of a +wrapped C++ function must be extracted from a Python object using a +procedure that depends on the argument type. Similarly the function's +return type determines how the return value will be converted from C++ +to Python. Of course argument and return types are part of each +function's type, and this is exactly the source from which +Boost.Python deduces most of the information required.

+

This approach leads to user guided wrapping: as much information is +extracted directly from the source code to be wrapped as is possible +within the framework of pure C++, and some additional information is +supplied explicitly by the user. Mostly the guidance is mechanical +and little real intervention is required. Because the interface +specification is written in the same full-featured language as the +code being exposed, the user has unprecedented power available when +she does need to take control.

+
+
+

Boost.Python Design Goals

+

The primary goal of Boost.Python is to allow users to expose C++ +classes and functions to Python using nothing more than a C++ +compiler. In broad strokes, the user experience should be one of +directly manipulating C++ objects from Python.

+

However, it's also important not to translate all interfaces too +literally: the idioms of each language must be respected. For +example, though C++ and Python both have an iterator concept, they are +expressed very differently. Boost.Python has to be able to bridge the +interface gap.

+

It must be possible to insulate Python users from crashes resulting +from trivial misuses of C++ interfaces, such as accessing +already-deleted objects. By the same token the library should +insulate C++ users from low-level Python 'C' API, replacing +error-prone 'C' interfaces like manual reference-count management and +raw PyObject pointers with more-robust alternatives.

+

Support for component-based development is crucial, so that C++ types +exposed in one extension module can be passed to functions exposed in +another without loss of crucial information like C++ inheritance +relationships.

+

Finally, all wrapping must be non-intrusive, without modifying or +even seeing the original C++ source code. Existing C++ libraries have +to be wrappable by third parties who only have access to header files +and binaries.

+
+
+

Hello Boost.Python World

+

And now for a preview of Boost.Python, and how it improves on the raw +facilities offered by Python. Here's a function we might want to +expose:

+
+char const* greet(unsigned x)
+{
+   static char const* const msgs[] = { "hello", "Boost.Python", "world!" };
+
+   if (x > 2) 
+       throw std::range_error("greet: index out of range");
+
+   return msgs[x];
+}
+
+

To wrap this function in standard C++ using the Python 'C' API, we'd +need something like this:

+
+extern "C" // all Python interactions use 'C' linkage and calling convention
+{
+    // Wrapper to handle argument/result conversion and checking
+    PyObject* greet_wrap(PyObject* args, PyObject * keywords)
+    {
+         int x;
+         if (PyArg_ParseTuple(args, "i", &x))    // extract/check arguments
+         {
+             char const* result = greet(x);      // invoke wrapped function
+             return PyString_FromString(result); // convert result to Python
+         }
+         return 0;                               // error occurred
+    }
+
+    // Table of wrapped functions to be exposed by the module
+    static PyMethodDef methods[] = {
+        { "greet", greet_wrap, METH_VARARGS, "return one of 3 parts of a greeting" }
+        , { NULL, NULL, 0, NULL } // sentinel
+    };
+
+    // module initialization function
+    DL_EXPORT init_hello()
+    {
+        (void) Py_InitModule("hello", methods); // add the methods to the module
+    }
+}
+
+

Now here's the wrapping code we'd use to expose it with Boost.Python:

+
+#include <boost/python.hpp>
+using namespace boost::python;
+BOOST_PYTHON_MODULE(hello)
+{
+    def("greet", greet, "return one of 3 parts of a greeting");
+}
+
+

and here it is in action:

+
+>>> import hello
+>>> for x in range(3):
+...     print hello.greet(x)
+...
+hello
+Boost.Python
+world!
+
+

Aside from the fact that the 'C' API version is much more verbose, +it's worth noting a few things that it doesn't handle correctly:

+
    +
  • The original function accepts an unsigned integer, and the Python +'C' API only gives us a way of extracting signed integers. The +Boost.Python version will raise a Python exception if we try to pass +a negative number to hello.greet, but the other one will proceed +to do whatever the C++ implementation does when converting an +negative integer to unsigned (usually wrapping to some very large +number), and pass the incorrect translation on to the wrapped +function.
  • +
  • That brings us to the second problem: if the C++ greet() +function is called with a number greater than 2, it will throw an +exception. Typically, if a C++ exception propagates across the +boundary with code generated by a 'C' compiler, it will cause a +crash. As you can see in the first version, there's no C++ +scaffolding there to prevent this from happening. Functions wrapped +by Boost.Python automatically include an exception-handling layer +which protects Python users by translating unhandled C++ exceptions +into a corresponding Python exception.
  • +
  • A slightly more-subtle limitation is that the argument conversion +used in the Python 'C' API case can only get that integer x in +one way. PyArg_ParseTuple can't convert Python long objects +(arbitrary-precision integers) which happen to fit in an unsigned +int but not in a signed long, nor will it ever handle a +wrapped C++ class with a user-defined implicit operator unsigned +int() conversion. Boost.Python's dynamic type conversion +registry allows users to add arbitrary conversion methods.
  • +
+
+
+

Library Overview

+

This section outlines some of the library's major features. Except as +neccessary to avoid confusion, details of library implementation are +omitted.

+
+

Exposing Classes

+

C++ classes and structs are exposed with a similarly-terse interface. +Given:

+
+struct World
+{
+    void set(std::string msg) { this->msg = msg; }
+    std::string greet() { return msg; }
+    std::string msg;
+};
+
+

The following code will expose it in our extension module:

+
+#include <boost/python.hpp>
+BOOST_PYTHON_MODULE(hello)
+{
+    class_<World>("World")
+        .def("greet", &World::greet)
+        .def("set", &World::set)
+    ;
+}
+
+

Although this code has a certain pythonic familiarity, people +sometimes find the syntax bit confusing because it doesn't look like +most of the C++ code they're used to. All the same, this is just +standard C++. Because of their flexible syntax and operator +overloading, C++ and Python are great for defining domain-specific +(sub)languages +(DSLs), and that's what we've done in Boost.Python. To break it down:

+
+class_<World>("World")
+
+

constructs an unnamed object of type class_<World> and passes +"World" to its constructor. This creates a new-style Python class +called World in the extension module, and associates it with the +C++ type World in the Boost.Python type conversion registry. We +might have also written:

+
+class_<World> w("World");
+
+

but that would've been more verbose, since we'd have to name w +again to invoke its def() member function:

+
+w.def("greet", &World::greet)
+
+

There's nothing special about the location of the dot for member +access in the original example: C++ allows any amount of whitespace on +either side of a token, and placing the dot at the beginning of each +line allows us to chain as many successive calls to member functions +as we like with a uniform syntax. The other key fact that allows +chaining is that class_<> member functions all return a reference +to *this.

+

So the example is equivalent to:

+
+class_<World> w("World");
+w.def("greet", &World::greet);
+w.def("set", &World::set);
+
+

It's occasionally useful to be able to break down the components of a +Boost.Python class wrapper in this way, but the rest of this article +will stick to the terse syntax.

+

For completeness, here's the wrapped class in use:

+
+>>> import hello
+>>> planet = hello.World()
+>>> planet.set('howdy')
+>>> planet.greet()
+'howdy'
+
+
+

Constructors

+

Since our World class is just a plain struct, it has an +implicit no-argument (nullary) constructor. Boost.Python exposes the +nullary constructor by default, which is why we were able to write:

+
+>>> planet = hello.World()
+
+

However, well-designed classes in any language may require constructor +arguments in order to establish their invariants. Unlike Python, +where __init__ is just a specially-named method, In C++ +constructors cannot be handled like ordinary member functions. In +particular, we can't take their address: &World::World is an +error. The library provides a different interface for specifying +constructors. Given:

+
+struct World
+{
+    World(std::string msg); // added constructor
+    ...
+
+

we can modify our wrapping code as follows:

+
+class_<World>("World", init<std::string>())
+    ...
+
+

of course, a C++ class may have additional constructors, and we can +expose those as well by passing more instances of init<...> to +def():

+
+class_<World>("World", init<std::string>())
+    .def(init<double, double>())
+    ...
+
+

Boost.Python allows wrapped functions, member functions, and +constructors to be overloaded to mirror C++ overloading.

+
+
+

Data Members and Properties

+

Any publicly-accessible data members in a C++ class can be easily +exposed as either readonly or readwrite attributes:

+
+class_<World>("World", init<std::string>())
+    .def_readonly("msg", &World::msg)
+    ...
+
+

and can be used directly in Python:

+
+>>> planet = hello.World('howdy')
+>>> planet.msg
+'howdy'
+
+

This does not result in adding attributes to the World instance +__dict__, which can result in substantial memory savings when +wrapping large data structures. In fact, no instance __dict__ +will be created at all unless attributes are explicitly added from +Python. Boost.Python owes this capability to the new Python 2.2 type +system, in particular the descriptor interface and property type.

+

In C++, publicly-accessible data members are considered a sign of poor +design because they break encapsulation, and style guides usually +dictate the use of "getter" and "setter" functions instead. In +Python, however, __getattr__, __setattr__, and since 2.2, +property mean that attribute access is just one more +well-encapsulated syntactic tool at the programmer's disposal. +Boost.Python bridges this idiomatic gap by making Python property +creation directly available to users. If msg were private, we +could still expose it as attribute in Python as follows:

+
+class_<World>("World", init<std::string>())
+    .add_property("msg", &World::greet, &World::set)
+    ...
+
+

The example above mirrors the familiar usage of properties in Python +2.2+:

+
+>>> class World(object):
+...     __init__(self, msg):
+...         self.__msg = msg
+...     def greet(self):
+...         return self.__msg
+...     def set(self, msg):
+...         self.__msg = msg
+...     msg = property(greet, set)
+
+
+
+

Operator Overloading

+

The ability to write arithmetic operators for user-defined types has +been a major factor in the success of both languages for numerical +computation, and the success of packages like NumPy attests to the +power of exposing operators in extension modules. Boost.Python +provides a concise mechanism for wrapping operator overloads. The +example below shows a fragment from a wrapper for the Boost rational +number library:

+
+class_<rational<int> >("rational_int")
+  .def(init<int, int>()) // constructor, e.g. rational_int(3,4)
+  .def("numerator", &rational<int>::numerator)
+  .def("denominator", &rational<int>::denominator)
+  .def(-self)        // __neg__ (unary minus)
+  .def(self + self)  // __add__ (homogeneous)
+  .def(self * self)  // __mul__
+  .def(self + int()) // __add__ (heterogenous)
+  .def(int() + self) // __radd__
+  ...
+
+

The magic is performed using a simplified application of "expression +templates" [VELD1995], a technique originally developed for +optimization of high-performance matrix algebra expressions. The +essence is that instead of performing the computation immediately, +operators are overloaded to construct a type representing the +computation. In matrix algebra, dramatic optimizations are often +available when the structure of an entire expression can be taken into +account, rather than evaluating each operation "greedily". +Boost.Python uses the same technique to build an appropriate Python +method object based on expressions involving self.

+
+
+

Inheritance

+

C++ inheritance relationships can be represented to Boost.Python by adding +an optional bases<...> argument to the class_<...> template +parameter list as follows:

+
+class_<Derived, bases<Base1,Base2> >("Derived")
+     ...
+
+

This has two effects:

+
    +
  1. When the class_<...> is created, Python type objects +corresponding to Base1 and Base2 are looked up in +Boost.Python's registry, and are used as bases for the new Python +Derived type object, so methods exposed for the Python Base1 +and Base2 types are automatically members of the Derived +type. Because the registry is global, this works correctly even if +Derived is exposed in a different module from either of its +bases.
  2. +
  3. C++ conversions from Derived to its bases are added to the +Boost.Python registry. Thus wrapped C++ methods expecting (a +pointer or reference to) an object of either base type can be +called with an object wrapping a Derived instance. Wrapped +member functions of class T are treated as though they have an +implicit first argument of T&, so these conversions are +neccessary to allow the base class methods to be called for derived +objects.
  4. +
+

Of course it's possible to derive new Python classes from wrapped C++ +class instances. Because Boost.Python uses the new-style class +system, that works very much as for the Python built-in types. There +is one significant detail in which it differs: the built-in types +generally establish their invariants in their __new__ function, so +that derived classes do not need to call __init__ on the base +class before invoking its methods :

+
+>>> class L(list):
+...      def __init__(self):
+...          pass
+...
+>>> L().reverse()
+>>> 
+
+

Because C++ object construction is a one-step operation, C++ instance +data cannot be constructed until the arguments are available, in the +__init__ function:

+
+>>> class D(SomeBoostPythonClass):
+...      def __init__(self):
+...          pass
+...
+>>> D().some_boost_python_method()
+Traceback (most recent call last):
+  File "<stdin>", line 1, in ?
+TypeError: bad argument type for built-in operation
+
+

This happened because Boost.Python couldn't find instance data of type +SomeBoostPythonClass within the D instance; D's __init__ +function masked construction of the base class. It could be corrected +by either removing D's __init__ function or having it call +SomeBoostPythonClass.__init__(...) explicitly.

+
+
+

Virtual Functions

+

Deriving new types in Python from extension classes is not very +interesting unless they can be used polymorphically from C++. In +other words, Python method implementations should appear to override +the implementation of C++ virtual functions when called through base +class pointers/references from C++. Since the only way to alter the +behavior of a virtual function is to override it in a derived class, +the user must build a special derived class to dispatch a polymorphic +class' virtual functions:

+
+//
+// interface to wrap:
+//
+class Base
+{
+ public:
+    virtual int f(std::string x) { return 42; }
+    virtual ~Base();
+};
+
+int calls_f(Base const& b, std::string x) { return b.f(x); }
+
+//
+// Wrapping Code
+//
+
+// Dispatcher class
+struct BaseWrap : Base
+{
+    // Store a pointer to the Python object
+    BaseWrap(PyObject* self_) : self(self_) {}
+    PyObject* self;
+
+    // Default implementation, for when f is not overridden
+    int f_default(std::string x) { return this->Base::f(x); }
+    // Dispatch implementation
+    int f(std::string x) { return call_method<int>(self, "f", x); }
+};
+
+...
+    def("calls_f", calls_f);
+    class_<Base, BaseWrap>("Base")
+        .def("f", &Base::f, &BaseWrap::f_default)
+        ;
+
+

Now here's some Python code which demonstrates:

+
+>>> class Derived(Base):
+...     def f(self, s):
+...          return len(s)
+...
+>>> calls_f(Base(), 'foo')
+42
+>>> calls_f(Derived(), 'forty-two')
+9
+
+

Things to notice about the dispatcher class:

+
    +
  • The key element which allows overriding in Python is the +call_method invocation, which uses the same global type +conversion registry as the C++ function wrapping does to convert its +arguments from C++ to Python and its return type from Python to C++.
  • +
  • Any constructor signatures you wish to wrap must be replicated with +an initial PyObject* argument
  • +
  • The dispatcher must store this argument so that it can be used to +invoke call_method
  • +
  • The f_default member function is needed when the function being +exposed is not pure virtual; there's no other way Base::f can be +called on an object of type BaseWrap, since it overrides f.
  • +
+
+
+

Deeper Reflection on the Horizon?

+

Admittedly, this formula is tedious to repeat, especially on a project +with many polymorphic classes. That it is neccessary reflects some +limitations in C++'s compile-time introspection capabilities: there's +no way to enumerate the members of a class and find out which are +virtual functions. At least one very promising project has been +started to write a front-end which can generate these dispatchers (and +other wrapping code) automatically from C++ headers.

+

Pyste is being developed by Bruno da Silva de Oliveira. It builds on +GCC_XML, which generates an XML version of GCC's internal program +representation. Since GCC is a highly-conformant C++ compiler, this +ensures correct handling of the most-sophisticated template code and +full access to the underlying type system. In keeping with the +Boost.Python philosophy, a Pyste interface description is neither +intrusive on the code being wrapped, nor expressed in some unfamiliar +language: instead it is a 100% pure Python script. If Pyste is +successful it will mark a move away from wrapping everything directly +in C++ for many of our users. It will also allow us the choice to +shift some of the metaprogram code from C++ to Python. We expect that +soon, not only our users but the Boost.Python developers themselves +will be "thinking hybrid" about their own code.

+
+
+
+

Serialization

+

Serialization is the process of converting objects in memory to a +form that can be stored on disk or sent over a network connection. The +serialized object (most often a plain string) can be retrieved and +converted back to the original object. A good serialization system will +automatically convert entire object hierarchies. Python's standard +pickle module is just such a system. It leverages the language's strong +runtime introspection facilities for serializing practically arbitrary +user-defined objects. With a few simple and unintrusive provisions this +powerful machinery can be extended to also work for wrapped C++ objects. +Here is an example:

+
+#include <string>
+
+struct World
+{
+    World(std::string a_msg) : msg(a_msg) {}
+    std::string greet() const { return msg; }
+    std::string msg;
+};
+
+#include <boost/python.hpp>
+using namespace boost::python;
+
+struct World_picklers : pickle_suite
+{
+  static tuple
+  getinitargs(World const& w) { return make_tuple(w.greet()); }
+};
+
+BOOST_PYTHON_MODULE(hello)
+{
+    class_<World>("World", init<std::string>())
+        .def("greet", &World::greet)
+        .def_pickle(World_picklers())
+    ;
+}
+
+

Now let's create a World object and put it to rest on disk:

+
+>>> import hello
+>>> import pickle
+>>> a_world = hello.World("howdy")
+>>> pickle.dump(a_world, open("my_world", "w"))
+
+

In a potentially different script on a potentially different +computer with a potentially different operating system:

+
+>>> import pickle
+>>> resurrected_world = pickle.load(open("my_world", "r"))
+>>> resurrected_world.greet()
+'howdy'
+
+

Of course the cPickle module can also be used for faster +processing.

+

Boost.Python's pickle_suite fully supports the pickle protocol +defined in the standard Python documentation. Like a __getinitargs__ +function in Python, the pickle_suite's getinitargs() is responsible for +creating the argument tuple that will be use to reconstruct the pickled +object. The other elements of the Python pickling protocol, +__getstate__ and __setstate__ can be optionally provided via C++ +getstate and setstate functions. C++'s static type system allows the +library to ensure at compile-time that nonsensical combinations of +functions (e.g. getstate without setstate) are not used.

+

Enabling serialization of more complex C++ objects requires a little +more work than is shown in the example above. Fortunately the +object interface (see next section) greatly helps in keeping the +code manageable.

+
+
+

Object interface

+

Experienced 'C' language extension module authors will be familiar +with the ubiquitous PyObject*, manual reference-counting, and the +need to remember which API calls return "new" (owned) references or +"borrowed" (raw) references. These constraints are not just +cumbersome but also a major source of errors, especially in the +presence of exceptions.

+

Boost.Python provides a class object which automates reference +counting and provides conversion to Python from C++ objects of +arbitrary type. This significantly reduces the learning effort for +prospective extension module writers.

+

Creating an object from any other type is extremely simple:

+
+object s("hello, world");  // s manages a Python string
+
+

object has templated interactions with all other types, with +automatic to-python conversions. It happens so naturally that it's +easily overlooked:

+
+object ten_Os = 10 * s[4]; // -> "oooooooooo"
+
+

In the example above, 4 and 10 are converted to Python objects +before the indexing and multiplication operations are invoked.

+

The extract<T> class template can be used to convert Python objects +to C++ types:

+
+double x = extract<double>(o);
+
+

If a conversion in either direction cannot be performed, an +appropriate exception is thrown at runtime.

+

The object type is accompanied by a set of derived types +that mirror the Python built-in types such as list, dict, +tuple, etc. as much as possible. This enables convenient +manipulation of these high-level types from C++:

+
+dict d;
+d["some"] = "thing";
+d["lucky_number"] = 13;
+list l = d.keys();
+
+

This almost looks and works like regular Python code, but it is pure +C++. Of course we can wrap C++ functions which accept or return +object instances.

+
+
+
+

Thinking hybrid

+

Because of the practical and mental difficulties of combining +programming languages, it is common to settle a single language at the +outset of any development effort. For many applications, performance +considerations dictate the use of a compiled language for the core +algorithms. Unfortunately, due to the complexity of the static type +system, the price we pay for runtime performance is often a +significant increase in development time. Experience shows that +writing maintainable C++ code usually takes longer and requires far +more hard-earned working experience than developing comparable Python +code. Even when developers are comfortable working exclusively in +compiled languages, they often augment their systems by some type of +ad hoc scripting layer for the benefit of their users without ever +availing themselves of the same advantages.

+

Boost.Python enables us to think hybrid. Python can be used for +rapidly prototyping a new application; its ease of use and the large +pool of standard libraries give us a head start on the way to a +working system. If necessary, the working code can be used to +discover rate-limiting hotspots. To maximize performance these can +be reimplemented in C++, together with the Boost.Python bindings +needed to tie them back into the existing higher-level procedure.

+

Of course, this top-down approach is less attractive if it is clear +from the start that many algorithms will eventually have to be +implemented in C++. Fortunately Boost.Python also enables us to +pursue a bottom-up approach. We have used this approach very +successfully in the development of a toolbox for scientific +applications. The toolbox started out mainly as a library of C++ +classes with Boost.Python bindings, and for a while the growth was +mainly concentrated on the C++ parts. However, as the toolbox is +becoming more complete, more and more newly added functionality can be +implemented in Python.

+

python_cpp_mix.jpg

+

This figure shows the estimated ratio of newly added C++ and Python +code over time as new algorithms are implemented. We expect this +ratio to level out near 70% Python. Being able to solve new problems +mostly in Python rather than a more difficult statically typed +language is the return on our investment in Boost.Python. The ability +to access all of our code from Python allows a broader group of +developers to use it in the rapid development of new applications.

+
+
+

Development history

+

The first version of Boost.Python was developed in 2000 by Dave +Abrahams at Dragon Systems, where he was privileged to have Tim Peters +as a guide to "The Zen of Python". One of Dave's jobs was to develop +a Python-based natural language processing system. Since it was +eventually going to be targeting embedded hardware, it was always +assumed that the compute-intensive core would be rewritten in C++ to +optimize speed and memory footprint 4. The project also wanted to +test all of its C++ code using Python test scripts 5. The only +tool we knew of for binding C++ and Python was SWIG, and at the time +its handling of C++ was weak. It would be false to claim any deep +insight into the possible advantages of Boost.Python's approach at +this point. Dave's interest and expertise in fancy C++ template +tricks had just reached the point where he could do some real damage, +and Boost.Python emerged as it did because it filled a need and +because it seemed like a cool thing to try.

+

This early version was aimed at many of the same basic goals we've +described in this paper, differing most-noticeably by having a +slightly more cumbersome syntax and by lack of special support for +operator overloading, pickling, and component-based development. +These last three features were quickly added by Ullrich Koethe and +Ralf Grosse-Kunstleve 6, and other enthusiastic contributors arrived +on the scene to contribute enhancements like support for nested +modules and static member functions.

+

By early 2001 development had stabilized and few new features were +being added, however a disturbing new fact came to light: Ralf had +begun testing Boost.Python on pre-release versions of a compiler using +the EDG front-end, and the mechanism at the core of Boost.Python +responsible for handling conversions between Python and C++ types was +failing to compile. As it turned out, we had been exploiting a very +common bug in the implementation of all the C++ compilers we had +tested. We knew that as C++ compilers rapidly became more +standards-compliant, the library would begin failing on more +platforms. Unfortunately, because the mechanism was so central to the +functioning of the library, fixing the problem looked very difficult.

+

Fortunately, later that year Lawrence Berkeley and later Lawrence +Livermore National labs contracted with Boost Consulting for support +and development of Boost.Python, and there was a new opportunity to +address fundamental issues and ensure a future for the library. A +redesign effort began with the low level type conversion architecture, +building in standards-compliance and support for component-based +development (in contrast to version 1 where conversions had to be +explicitly imported and exported across module boundaries). A new +analysis of the relationship between the Python and C++ objects was +done, resulting in more intuitive handling for C++ lvalues and +rvalues.

+

The emergence of a powerful new type system in Python 2.2 made the +choice of whether to maintain compatibility with Python 1.5.2 easy: +the opportunity to throw away a great deal of elaborate code for +emulating classic Python classes alone was too good to pass up. In +addition, Python iterators and descriptors provided crucial and +elegant tools for representing similar C++ constructs. The +development of the generalized object interface allowed us to +further shield C++ programmers from the dangers and syntactic burdens +of the Python 'C' API. A great number of other features including C++ +exception translation, improved support for overloaded functions, and +most significantly, CallPolicies for handling pointers and +references, were added during this period.

+

In October 2002, version 2 of Boost.Python was released. Development +since then has concentrated on improved support for C++ runtime +polymorphism and smart pointers. Peter Dimov's ingenious +boost::shared_ptr design in particular has allowed us to give the +hybrid developer a consistent interface for moving objects back and +forth across the language barrier without loss of information. At +first, we were concerned that the sophistication and complexity of the +Boost.Python v2 implementation might discourage contributors, but the +emergence of Pyste and several other significant feature +contributions have laid those fears to rest. Daily questions on the +Python C++-sig and a backlog of desired improvements show that the +library is getting used. To us, the future looks bright.

+
+
+

Conclusions

+

Boost.Python achieves seamless interoperability between two rich and +complimentary language environments. Because it leverages template +metaprogramming to introspect about types and functions, the user +never has to learn a third syntax: the interface definitions are +written in concise and maintainable C++. Also, the wrapping system +doesn't have to parse C++ headers or represent the type system: the +compiler does that work for us.

+

Computationally intensive tasks play to the strengths of C++ and are +often impossible to implement efficiently in pure Python, while jobs +like serialization that are trivial in Python can be very difficult in +pure C++. Given the luxury of building a hybrid software system from +the ground up, we can approach design with new confidence and power.

+ + ++ + + +
[VELD1995]T. Veldhuizen, "Expression Templates," C++ Report, +Vol. 7 No. 5 June 1995, pp. 26-31. +http://osl.iu.edu/~tveldhui/papers/Expression-Templates/exprtmpl.html
+ + + + + +
[4]In retrospect, it seems that "thinking hybrid" from the ground up +might have been better for the NLP system: the natural component +boundaries defined by the pure python prototype turned out to be +inappropriate for getting the desired performance and memory footprint +out of the C++ core, which eventually caused some redesign overhead on +the Python side when the core was moved to C++.
+ + + + + +
[5]We also have some reservations about driving all C++ testing through a +Python interface, unless that's the only way it will be ultimately +used. Any transition across language boundaries with such different +object models can inevitably mask bugs.
+ + + + + +
[6]These features were expressed very differently in v1 of +Boost.Python
+
+
+ + + + diff --git a/doc/PyConDC_2003/bpl.pdf b/doc/PyConDC_2003/bpl.pdf new file mode 100755 index 0000000000000000000000000000000000000000..d0fc02a847616e0a21c0d99d7e97512fa8434ec9 GIT binary patch literal 156689 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

%hAssT zKU1hrK?y0bB)sB;m5px`lw zIvF7f3L7sb3f)^^H=+9q z%*33`szgv3r>S6Q3HKF}I5>VRp*|}~Ov*{s%})bOZI`6xm4HfDOQ;7iTk8PUi95(cqc`aYStnI-7erUq7Bs8uh>i?FKKMIl-N5*+#wkx>e!W_o6p#tP;Z zrh0~!<_dYGIXMcbnn59etQi{5$hytUEcA>mOtI+(g%SbXrsjrv<|bI}28AQCZcK-R z7DAX>7-F*;6yhkFK>|Sv$PPC*Gt@INFvg}E6eq~Kp@l87ZX@s_3~ai=%?1Lx4K0lI zj7=@D*bQ!8AnP_Xgd}+s%grtI%uOw^X$R#4g4&G@^o$L$g_|)bkdd`ROCe;-L4AA+ zW2}~=r!_3P&CJd8OwF){8+u~HqT9&KNYBUut8VnfhE2DTv7WI7w!{W*6CwK>TAm>L z+tk!d&)g7OLN^8_E<(DEO!W*5jj%--dTKK?0L21oVl_51(KE-EUcgN(WV^BIHZ;_; z#F|IJ%`jx`&`J;4T**PLp?L>VUC{GuxU3oGS#y*!In)- zKz0$b-O$)v4_it#K~HPYS{^ynOilER&9EjG^rVKRJU2Hp)icE!Zv5K@o`RZ$ndaJ##~>{zgx0*mN73=vkOy^*4G_!xG&lh8B93*pfN88ISC6ESil$ z1Gkn~y^WsIK!J$rYuqgdaBf7g8kF>i)eY`SAnV3b9OJed-0eWojTv8fbfc#0;`if&Li5^FcON_%0r!Mabc2!}s@1q_B5;oxMK>t=iPjB@9%S8E zN*7a{%{6cjoPcg4P@f2E`yAX;N6`(+G^j2Β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

AHvA79IpJkBwck_?> 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 w&hmUv;rYEv?*5yVk1phfe)+rE