changelog.rst 4.61 KB
Newer Older
1
2
3
4
5
.. _changelog:

Changelog
#########

Wenzel Jakob's avatar
Wenzel Jakob committed
6
7
1.5 (not yet released)
----------------------
Wenzel Jakob's avatar
Wenzel Jakob committed
8
* For polymorphic types, use RTTI to try to return the closest type registered with pybind11
9
* Pickling support for serializing and unserializing C++ instances to a byte stream in Python
10
11
12
* Added a convenience routine ``make_iterator()`` which turns a range indicated
  by a pair of C++ iterators into a iterable Python object
* Added ``len()`` and a variadic ``make_tuple()`` function
13
14
15
* Addressed a rare issue that could confuse the current virtual function
  dispatcher and another that could lead to crashes in multi-threaded
  applications
16
17
* Added a ``get_include()`` function to the Python module that returns the path
  of the directory containing the installed pybind11 header files
Wenzel Jakob's avatar
Wenzel Jakob committed
18
* Documentation improvements: import issues, symbol visibility, pickling, limitations
Wenzel Jakob's avatar
Wenzel Jakob committed
19

Wenzel Jakob's avatar
Wenzel Jakob committed
20
1.4 (April 7, 2016)
Wenzel Jakob's avatar
Wenzel Jakob committed
21
--------------------------
22
* Transparent type conversion for ``std::wstring`` and ``wchar_t``
Wenzel Jakob's avatar
Wenzel Jakob committed
23
* Allow passing ``nullptr``-valued strings
Wenzel Jakob's avatar
Wenzel Jakob committed
24
* Transparent passing of ``void *`` pointers using capsules
Wenzel Jakob's avatar
Wenzel Jakob committed
25
* Transparent support for returning values wrapped in ``std::unique_ptr<>``
26
* Improved docstring generation for compatibility with Sphinx
Wenzel Jakob's avatar
Wenzel Jakob committed
27
28
29
* Nicer debug error message when default parameter construction fails
* Support for "opaque" types that bypass the transparent conversion layer for STL containers
* Redesigned type casting interface to avoid ambiguities that could occasionally cause compiler errors
Wenzel Jakob's avatar
Wenzel Jakob committed
30
* Redesigned property implementation; fixes crashes due to an unfortunate default return value policy
31
* Anaconda package generation support
Wenzel Jakob's avatar
Wenzel Jakob committed
32
33

1.3 (March 8, 2016)
Wenzel Jakob's avatar
Wenzel Jakob committed
34
--------------------------
Wenzel Jakob's avatar
Wenzel Jakob committed
35
36
37

* Added support for the Intel C++ compiler (v15+)
* Added support for the STL unordered set/map data structures
Wenzel Jakob's avatar
Wenzel Jakob committed
38
* Added support for the STL linked list data structure
Wenzel Jakob's avatar
Wenzel Jakob committed
39
* NumPy-style broadcasting support in ``pybind11::vectorize``
Wenzel Jakob's avatar
Wenzel Jakob committed
40
* pybind11 now displays more verbose error messages when ``arg::operator=()`` fails
Wenzel Jakob's avatar
Wenzel Jakob committed
41
42
* pybind11 internal data structures now live in a version-dependent namespace to avoid ABI issues
* Many, many bugfixes involving corner cases and advanced usage
Wenzel Jakob's avatar
Wenzel Jakob committed
43
44

1.2 (February 7, 2016)
45
--------------------------
Wenzel Jakob's avatar
Wenzel Jakob committed
46

47
* Optional: efficient generation of function signatures at compile time using C++14
Wenzel Jakob's avatar
Wenzel Jakob committed
48
49
50
* Switched to a simpler and more general way of dealing with function default
  arguments. Unused keyword arguments in function calls are now detected and
  cause errors as expected
51
* New ``keep_alive`` call policy analogous to Boost.Python's ``with_custodian_and_ward``
Wenzel Jakob's avatar
Wenzel Jakob committed
52
* New ``pybind11::base<>`` attribute to indicate a subclass relationship
53
54
55
* Improved interface for RAII type wrappers in ``pytypes.h``
* Use RAII type wrappers consistently within pybind11 itself. This
  fixes various potential refcount leaks when exceptions occur
Wenzel Jakob's avatar
Wenzel Jakob committed
56
* Added new ``bytes`` RAII type wrapper (maps to ``string`` in Python 2.7)
Wenzel Jakob's avatar
Wenzel Jakob committed
57
58
* Made handle and related RAII classes const correct, using them more
  consistently everywhere now
59
60
61
62
63
64
65
* Got rid of the ugly ``__pybind11__`` attributes on the Python side---they are
  now stored in a C++ hash table that is not visible in Python
* Fixed refcount leaks involving NumPy arrays and bound functions
* Vastly improved handling of shared/smart pointers
* Removed an unnecessary copy operation in ``pybind11::vectorize``
* Fixed naming clashes when both pybind11 and NumPy headers are included
* Added conversions for additional exception types
Wenzel Jakob's avatar
Wenzel Jakob committed
66
67
* Documentation improvements (using multiple extension modules, smart pointers,
  other minor clarifications)
68
* unified infrastructure for parsing variadic arguments in ``class_`` and cpp_function
69
70
* Fixed license text (was: ZLIB, should have been: 3-clause BSD)
* Python 3.2 compatibility
Wenzel Jakob's avatar
Wenzel Jakob committed
71
72
73
74
* Fixed remaining issues when accessing types in another plugin module
* Added enum comparison and casting methods
* Improved SFINAE-based detection of whether types are copy-constructible
* Eliminated many warnings about unused variables and the use of ``offsetof()``
Wenzel Jakob's avatar
Wenzel Jakob committed
75
* Support for ``std::array<>`` conversions
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

1.1 (December 7, 2015)
--------------------------

* Documentation improvements (GIL, wrapping functions, casting, fixed many typos)
* Generalized conversion of integer types
* Improved support for casting function objects
* Improved support for ``std::shared_ptr<>`` conversions
* Initial support for ``std::set<>`` conversions
* Fixed type resolution issue for types defined in a separate plugin module
* Cmake build system improvements
* Factored out generic functionality to non-templated code (smaller code size)
* Added a code size / compile time benchmark vs Boost.Python
* Added an appveyor CI script

1.0 (October 15, 2015)
------------------------
* Initial release