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

Changelog
#########

Wenzel Jakob's avatar
Wenzel Jakob committed
6
7
1.5 (not yet released)
----------------------
8
9
* For polymorphic types, use RTTI to try to return the closest type registered with pybind11.
* Pickling support for serializing and unserializing C++ instances to a byte stream in Python
Wenzel Jakob's avatar
Wenzel Jakob committed
10
* Added a variadic ``make_tuple()`` function
Wenzel Jakob's avatar
Wenzel Jakob committed
11
* Address a rare issue that could confuse the current virtual function dispatcher
Wenzel Jakob's avatar
Wenzel Jakob committed
12
* Documentation improvements: import issues, symbol visibility, pickling, limitations
Wenzel Jakob's avatar
Wenzel Jakob committed
13

Wenzel Jakob's avatar
Wenzel Jakob committed
14
1.4 (April 7, 2016)
Wenzel Jakob's avatar
Wenzel Jakob committed
15
--------------------------
16
* Transparent type conversion for ``std::wstring`` and ``wchar_t``
Wenzel Jakob's avatar
Wenzel Jakob committed
17
* Allow passing ``nullptr``-valued strings
Wenzel Jakob's avatar
Wenzel Jakob committed
18
* Transparent passing of ``void *`` pointers using capsules
Wenzel Jakob's avatar
Wenzel Jakob committed
19
* Transparent support for returning values wrapped in ``std::unique_ptr<>``
20
* Improved docstring generation for compatibility with Sphinx
Wenzel Jakob's avatar
Wenzel Jakob committed
21
22
23
* 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
24
* Redesigned property implementation; fixes crashes due to an unfortunate default return value policy
25
* Anaconda package generation support
Wenzel Jakob's avatar
Wenzel Jakob committed
26
27

1.3 (March 8, 2016)
Wenzel Jakob's avatar
Wenzel Jakob committed
28
--------------------------
Wenzel Jakob's avatar
Wenzel Jakob committed
29
30
31

* 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
32
* Added support for the STL linked list data structure
Wenzel Jakob's avatar
Wenzel Jakob committed
33
* NumPy-style broadcasting support in ``pybind11::vectorize``
Wenzel Jakob's avatar
Wenzel Jakob committed
34
* pybind11 now displays more verbose error messages when ``arg::operator=()`` fails
Wenzel Jakob's avatar
Wenzel Jakob committed
35
36
* 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
37
38

1.2 (February 7, 2016)
39
--------------------------
Wenzel Jakob's avatar
Wenzel Jakob committed
40

41
* Optional: efficient generation of function signatures at compile time using C++14
Wenzel Jakob's avatar
Wenzel Jakob committed
42
43
44
* 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
45
* New ``keep_alive`` call policy analogous to Boost.Python's ``with_custodian_and_ward``
Wenzel Jakob's avatar
Wenzel Jakob committed
46
* New ``pybind11::base<>`` attribute to indicate a subclass relationship
47
48
49
* 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
50
* Added new ``bytes`` RAII type wrapper (maps to ``string`` in Python 2.7)
Wenzel Jakob's avatar
Wenzel Jakob committed
51
52
* Made handle and related RAII classes const correct, using them more
  consistently everywhere now
53
54
55
56
57
58
59
* 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
60
61
* Documentation improvements (using multiple extension modules, smart pointers,
  other minor clarifications)
62
* unified infrastructure for parsing variadic arguments in ``class_`` and cpp_function
63
64
* Fixed license text (was: ZLIB, should have been: 3-clause BSD)
* Python 3.2 compatibility
Wenzel Jakob's avatar
Wenzel Jakob committed
65
66
67
68
* 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
69
* Support for ``std::array<>`` conversions
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

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