| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| |
| <!-- Copyright David Abrahams 2006. Distributed under the Boost --> |
| <!-- Software License, Version 1.0. (See accompanying --> |
| <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> |
| <html> |
| <head> |
| <meta name="generator" content= |
| "HTML Tidy for Cygwin (vers 1st September 2004), see www.w3.org"> |
| <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> |
| <link rel="stylesheet" type="text/css" href="boost.css"> |
| |
| <title>Boost.Python - News/Change Log</title> |
| </head> |
| |
| <body link="#0000FF" vlink="#800080"> |
| <table border="0" cellpadding="7" cellspacing="0" width="100%" summary= |
| "header"> |
| <tr> |
| <td valign="top" width="300"> |
| <h3><a href="../../../index.htm"><img height="86" width="277" alt= |
| "C++ Boost" src="../../../boost.png" border="0"></a></h3> |
| </td> |
| |
| <td valign="top"> |
| <h1 align="center"><a href="index.html">Boost.Python</a></h1> |
| |
| <h2 align="center">News/Change Log</h2> |
| </td> |
| </tr> |
| </table> |
| <hr> |
| |
| <dl class="page-index"> |
| |
| <dt>Current SVN</dt> |
| <dd> |
| <ul> |
| <li>Python 3 support:</li> |
| <ul> |
| <li>All the current Boost.Python test cases passed. Extension modules using |
| Boost.Python expected to support Python 3 smoothly.</li> |
| <li>Introduced <code>object.contains</code> where <code>x.contains(y)</code> |
| is equivalent to Python code <code>y in x</code>. |
| Now <code>dict.has_key</code> is just a wrapper of <code>object.contains</code>. |
| </li> |
| <li>When building against Python 3, <code>str.decode</code> will be removed.</li> |
| <li>When building against Python 3, the original signature of <code>list.sort</code>, which is: |
| <pre>void sort(object_cref cmpfunc);</pre> |
| will change to: |
| <pre>void sort(args_proxy const &args, kwds_proxy const &kwds);</pre> |
| |
| This is because in Python 3 <code>list.sort</code> requires all its arguments be keyword arguments. |
| So you should call it like this: |
| <pre>x.sort(*tuple(), **dict(make_tuple(make_tuple("reverse", true))));</pre> |
| |
| </li> |
| <li>According to <a href="http://www.python.org/dev/peps/pep-3123/">PEP 3123</a>, |
| when building Boost.Python against Python older than 2.6, the following macros will |
| be defined in Boost.Python header: |
| <pre> |
| # define Py_TYPE(o) (((PyObject*)(o))->ob_type) |
| # define Py_REFCNT(o) (((PyObject*)(o))->ob_refcnt) |
| # define Py_SIZE(o) (((PyVarObject*)(o))->ob_size)</pre> |
| So extension writers can use these macro directly, to make code clean and compatible with Python 3. |
| </li> |
| </ul> |
| </ul> |
| </dd> |
| |
| <dt>1.39.0 Release</dt> |
| |
| <dd> |
| <ul> |
| <li>Pythonic signatures are now automatically appended to the |
| docstrings. |
| |
| <li>Use <a href="v2/docstring_options.html" |
| ><code>docstring_options.hpp</code></a> header |
| control the content of docstrings. |
| |
| <li>This new feature increases the size of the modules by about 14%. |
| If this is not acceptable it can be turned off by defining the macro |
| BOOST_PYTHON_NO_PY_SIGNATURES. Modules compiled with and without the macro |
| defined are compatible. |
| </li> |
| <li> If BOOST_PYTHON_NO_PY_SIGNATURES is undefined, this version defines the |
| macro BOOST_PYTHON_SUPPORTS_PY_SIGNATURES. This allows writing code that will compile |
| with older version of Boost.Python (see <a href="v2/pytype_function.html#examples">here</a>). |
| </li> |
| <li>By defining BOOST_PYTHON_PY_SIGNATURES_PROPER_INIT_SELF_TYPE, and at a cost |
| of another 14% size increase, proper pythonic type is generated for the "self" |
| parameter of the __init__ methods. |
| </li> |
| |
| <li> To support this new feature changes were made to the |
| <a href="v2/to_python_converter.html"><code>to_python_converter.hpp</code></a>, |
| <a href="v2/default_call_policies.html"><code>default_call_policies</code></a>, |
| <a href="v2/ResultConverter.html"><code>ResultConverter</code></a>, |
| <a href="v2/CallPolicies.html"><code>CallPolicies</code></a> and some others. |
| Efforts were made not to have interface breaking changes. |
| </li> |
| |
| </ul> |
| </dd> |
| |
| <dt>12 May 2007 - 1.34.0 release</dt> |
| |
| <dd> |
| <ul> |
| <li>C++ signatures are now automatically appended to the |
| docstrings. |
| |
| <li>New <a href="v2/docstring_options.html" |
| ><code>docstring_options.hpp</code></a> header to |
| control the content of docstrings. |
| |
| <li>Support for converting <code>void*</code> to/from python, |
| with <code><a |
| href="v2/opaque.html">opaque_pointer_converter</a></code> |
| as the return value policy. Thanks to Niall Douglas for the |
| initial patch. |
| </ul> |
| </dd> |
| |
| <dt>19 October 2005 - 1.33.1 release</dt> |
| |
| <dd> |
| <ul> |
| <li><code>wrapper<T></code> can now be used as expected with a |
| held type of <i>some-smart-pointer</i><code><T></code></li> |
| |
| <li>The build now assumes Python 2.4 by default, rather than 2.2</li> |
| |
| <li>Support Python that's built without Unicode support</li> |
| |
| <li>Support for wrapping classes with overloaded address-of |
| (<code>&</code>) operators</li> |
| </ul> |
| </dd> |
| |
| <dt>14 August 2005 - 1.33 release</dt> |
| |
| <dd> |
| <ul> |
| <li>Support for docstrings on nonstatic properties.</li> |
| |
| <li>We now export the client-provided docstrings for |
| <code>init<optional<> ></code> and |
| <i>XXX</i><code>_FUNCTION_OVERLOADS()</code> for only the last |
| overload.</li> |
| |
| <li>Fixed some support for Embedded VC++ 4</li> |
| |
| <li>Better support for rvalue from-python conversions of shared_ptr: |
| always return a pointer that holds the owning python object *unless* |
| the python object contains a NULL shared_ptr holder of the right |
| type.</li> |
| |
| <li>Support for exposing <code>vector<T*></code> with the |
| indexing suite.</li> |
| |
| <li>Support for GCC-3.3 on MacOS.</li> |
| |
| <li>updated visual studio project build file to include two new files |
| (slice.cpp and wrapper.cpp)</li> |
| |
| <li>Added search feature to the index page.</li> |
| |
| <li>Numerous fixes to the tutorial</li> |
| |
| <li>Numerous workarounds for MSVC 6 and 7, GCC 2.96, and EDG |
| 2.45</li> |
| </ul> |
| </dd> |
| |
| <dt>11 March 2005</dt> |
| |
| <dd> |
| <ul> |
| <li>Added a hack that will fool PyDoc into working with Boost.Python, |
| thanks to Nick Rasmussen</li> |
| </ul> |
| </dd> |
| |
| <dt>19 November 2004 - 1.32 release</dt> |
| |
| <dd> |
| <ul> |
| <li>Updated to use the Boost Software License.</li> |
| |
| <li>A new, <a href= |
| "tutorial/doc/html/python/exposing.html#python.class_virtual_functions"> |
| better method of wrapping classes with virtual functions</a> has been |
| implemented.</li> |
| |
| <li>Support for upcoming GCC symbol export control features have been |
| folded in, thanks to Niall Douglas.</li> |
| |
| <li>Improved support for <code>std::auto_ptr</code>-like types.</li> |
| |
| <li>The Visual C++ bug that makes top-level <i>cv-qualification</i> |
| of function parameter types part of the function type has been worked |
| around.</li> |
| |
| <li>Components used by other libraries have been moved out of |
| <code>python/detail</code> and into <code>boost/detail</code> to |
| improve dependency relationships.</li> |
| |
| <li>Miscellaneous bug fixes and compiler workarounds.</li> |
| </ul> |
| </dd> |
| |
| <dt>8 Sept 2004</dt> |
| |
| <dd>Support for Python's Bool type, thanks to <a href= |
| "mailto:dholth-at-fastmail.fm">Daniel Holth</a>.</dd> |
| |
| <dt>11 Sept 2003</dt> |
| |
| <dd> |
| <ul> |
| <li>Changed the response to multiple to-python converters being |
| registered for the same type from a hard error into warning; |
| Boost.Python now reports the offending type in the message.</li> |
| |
| <li>Added builtin <code>std::wstring</code> conversions</li> |
| |
| <li>Added <code>std::out_of_range</code> => Python |
| <code>IndexError</code> exception conversion, thanks to <a href= |
| "mailto:RaoulGough-at-yahoo.co.uk">Raoul Gough</a></li> |
| </ul> |
| </dd> |
| |
| <dt>9 Sept 2003</dt> |
| |
| <dd>Added new <code><a href="v2/str.html#str-spec">str</a></code></dd> |
| |
| <dt>constructors which take a range of characters, allowing strings |
| containing nul (<code>'\0'</code>) characters.</dt> |
| |
| <dt>8 Sept 2003</dt> |
| |
| <dd>Added the ability to create methods from function objects (with an |
| <code>operator()</code>); see the <a href= |
| "v2/make_function.html#make_function-spec">make_function</a> docs for |
| more info.</dd> |
| |
| <dt>10 August 2003</dt> |
| |
| <dd>Added the new <code>properties</code> unit tests contributed by |
| <a href="mailto:romany-at-actimize.com">Roman Yakovenko</a> and |
| documented <code>add_static_property</code> at his urging.</dd> |
| |
| <dt>1 August 2003</dt> |
| |
| <dd> |
| Added the new <code>arg</code> class contributed by <a href= |
| "mailto:nickm-at-sitius.com">Nikolay Mladenov</a> which supplies the |
| ability to wrap functions that can be called with ommitted arguments in |
| the middle: |
| <pre> |
| void f(int x = 0, double y = 3.14, std::string z = std::string("foo")); |
| |
| BOOST_PYTHON_MODULE(test) |
| { |
| def("f", f |
| , (arg("x", 0), arg("y", 3.14), arg("z", "foo"))); |
| } |
| |
| </pre>And in Python: |
| <pre> |
| >>> import test |
| >>> f(0, z = "bar") |
| >>> f(z = "bar", y = 0.0) |
| </pre>Thanks, Nikolay! |
| </dd> |
| |
| <dt>22 July 2003</dt> |
| |
| <dd>Killed the dreaded "bad argument type for builtin operation" error. |
| Argument errors now show the actual and expected argument types!</dd> |
| |
| <dt>19 July 2003</dt> |
| |
| <dd>Added the new <code><a href= |
| "v2/return_arg.html">return_arg</a></code> policy from <a href= |
| "mailto:nickm-at-sitius.com">Nikolay Mladenov</a>. Thanks, Nikolay!</dd> |
| |
| <dt>18 March, 2003</dt> |
| |
| <dd><a href="mailto:Gottfried.Ganssauge-at-haufe.de">Gottfried |
| Ganßauge</a> has contributed <a href= |
| "v2/opaque.html">opaque pointer support</a>.<br> |
| <a href="mailto:nicodemus-at-globalite.com.br">Bruno da Silva de |
| Oliveira</a> has contributed the exciting <a href= |
| "../pyste/index.html">Pyste</a> ("Pie-steh") package.</dd> |
| |
| <dt>24 February 2003</dt> |
| |
| <dd>Finished improved support for <code>boost::shared_ptr</code>. Now any |
| wrapped object of C++ class <code>X</code> can be converted automatically |
| to <code>shared_ptr<X></code>, regardless of how it was wrapped. |
| The <code>shared_ptr</code> will manage the lifetime of the Python object |
| which supplied the <code>X</code>, rather than just the <code>X</code> |
| object itself, and when such a <code>shared_ptr</code> is converted back |
| to Python, the original Python object will be returned.</dd> |
| |
| <dt>19 January 2003</dt> |
| |
| <dd>Integrated <code>staticmethod</code> support from <a href= |
| "mailto:nickm-at-sitius.com">Nikolay Mladenov</a>. Thanks, Nikolay!</dd> |
| |
| <dt>29 December 2002</dt> |
| |
| <dd>Added Visual Studio project file and instructions from Brett Calcott. |
| Thanks, Brett!</dd> |
| |
| <dt>20 December 2002</dt> |
| |
| <dd>Added automatic downcasting for pointers, references, and smart |
| pointers to polymorphic class types upon conversion to python</dd> |
| |
| <dt>18 December 2002</dt> |
| |
| <dd>Optimized from_python conversions for wrapped classes by putting the |
| conversion logic in the shared library instead of registering separate |
| converters for each class in each extension module</dd> |
| |
| <dt>19 November 2002</dt> |
| |
| <dd>Removed the need for users to cast base class member function |
| pointers when used as arguments to <a href= |
| "v2/class.html#class_-spec-modifiers">add_property</a></dd> |
| |
| <dt>13 December 2002</dt> |
| |
| <dd>Allow exporting of <a href= |
| "v2/enum.html#enum_-spec"><code>enum_</code></a> values into enclosing |
| <a href="v2/scope.html#scope-spec"><code>scope</code></a>.<br> |
| Fixed unsigned integer conversions to deal correctly with numbers that |
| are out-of-range of <code>signed long</code>.</dd> |
| |
| <dt>14 November 2002</dt> |
| |
| <dd>Auto-detection of class data members wrapped with <a href= |
| "v2/data_members.html#make_getter-spec"><code>make_getter</code></a></dd> |
| |
| <dt>13 November 2002</dt> |
| |
| <dd>Full Support for <code>std::auto_ptr<></code> added.</dd> |
| |
| <dt>October 2002</dt> |
| |
| <dd>Ongoing updates and improvements to tutorial documentation</dd> |
| |
| <dt>10 October 2002</dt> |
| |
| <dd>Boost.Python V2 is released!</dd> |
| </dl> |
| <hr> |
| |
| <p>Revised |
| <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan --> |
| 19 November 2004 |
| <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p> |
| |
| <p><i>© Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave |
| Abrahams</a> 2002-2003.</i></p> |
| </body> |
| </html> |