summaryrefslogtreecommitdiff
path: root/libs/python/doc/news.html
blob: da57caeb3002882bc989150a4dbfd959daf8eb7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
<!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&lt;T&gt;</code> can now be used as expected with a
        held type of <i>some-smart-pointer</i><code>&lt;T&gt;</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>&amp;</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&lt;optional&lt;&gt; &gt;</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&lt;T*&gt;</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> =&gt; 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>
&gt;&gt;&gt; import test
&gt;&gt;&gt; f(0, z = "bar")
&gt;&gt;&gt; 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&szlig;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&lt;X&gt;</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&lt;&gt;</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>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
  Abrahams</a> 2002-2003.</i></p>
</body>
</html>