changelog.rst 4.08 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
9
* Pickling support
* Added a variadic ``make_tuple()`` function
Wenzel Jakob's avatar
Wenzel Jakob committed
10
* Address a rare issue that could confuse the current virtual function dispatcher
Wenzel Jakob's avatar
Wenzel Jakob committed
11
* Documentation improvements: import issues, symbol visibility, pickling, limitations
Wenzel Jakob's avatar
Wenzel Jakob committed
12

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

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

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

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

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

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