changelog.rst 4.54 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
10
11
12
13
14
15
* 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
* Addressed a rare issue that could confuse the current virtual function dispatcher
* 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
16
* Documentation improvements: import issues, symbol visibility, pickling, limitations
Wenzel Jakob's avatar
Wenzel Jakob committed
17

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

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

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

1.2 (February 7, 2016)
43
--------------------------
Wenzel Jakob's avatar
Wenzel Jakob committed
44

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

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