blob: 46c85185dc7b8aba5a58be1994c6d56784e6da71 [file] [log] [blame]
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +01001.. _changelog:
2
3Changelog
4#########
5
Wenzel Jakobbb79d7b2016-04-21 12:23:20 +020061.6 (not yet released)
7----------------------
Wenzel Jakob1ac22e32016-04-25 23:25:40 +02008* Added a new ``move`` return value policy that triggers C++11 move semantics.
9 The automatic return value policy falls back to this case when a rvalue
10 reference is encountered
Wenzel Jakobe84f5572016-04-26 23:19:19 +020011* Significantly more general GIL state routines that are used instead of
12 Python's troublesome ``PyGILState_Ensure`` and ``PyGILState_Release`` API
Wenzel Jakob1ac22e32016-04-25 23:25:40 +020013* ``keep_alive`` fix: don't fail when there is no patient
14* ``functional.h``: acquire the GIL before calling Python function
15* Added Python RAII type wrappers ``none`` and ``iterable``
16* Added ``*args`` and ``*kwargs`` pass-through parameters to
17 ``pybind11.get_include()`` function
Wenzel Jakob1ac22e32016-04-25 23:25:40 +020018* Documentation improvements: ``opaque``, return value policies
Wenzel Jakobbb79d7b2016-04-21 12:23:20 +020019
201.5 (April 21, 2016)
Wenzel Jakob2c5d5602016-04-11 18:46:11 +020021----------------------
Wenzel Jakobc79dbe42016-04-17 21:54:31 +020022* For polymorphic types, use RTTI to try to return the closest type registered with pybind11
Wenzel Jakobd7efa4f2016-04-13 13:45:09 +020023* Pickling support for serializing and unserializing C++ instances to a byte stream in Python
Wenzel Jakobb2825952016-04-13 23:33:00 +020024* Added a convenience routine ``make_iterator()`` which turns a range indicated
25 by a pair of C++ iterators into a iterable Python object
26* Added ``len()`` and a variadic ``make_tuple()`` function
Wenzel Jakobb2b44a92016-04-15 17:50:40 +020027* Addressed a rare issue that could confuse the current virtual function
28 dispatcher and another that could lead to crashes in multi-threaded
29 applications
Wenzel Jakobb2825952016-04-13 23:33:00 +020030* Added a ``get_include()`` function to the Python module that returns the path
31 of the directory containing the installed pybind11 header files
Wenzel Jakob1c329aa2016-04-13 02:37:36 +020032* Documentation improvements: import issues, symbol visibility, pickling, limitations
Wenzel Jakobdbe43ff2016-04-21 12:21:14 +020033* Added casting support for ``std::reference_wrapper<>``
Wenzel Jakob2c5d5602016-04-11 18:46:11 +020034
Wenzel Jakob33c2a042016-04-07 09:06:49 +0200351.4 (April 7, 2016)
Wenzel Jakobd2385e82016-03-08 18:04:43 +010036--------------------------
Wenzel Jakob81dfd2c2016-03-08 19:40:32 +010037* Transparent type conversion for ``std::wstring`` and ``wchar_t``
Wenzel Jakob0e6ca592016-04-07 08:49:37 +020038* Allow passing ``nullptr``-valued strings
Wenzel Jakob34116732016-04-06 17:55:41 +020039* Transparent passing of ``void *`` pointers using capsules
Wenzel Jakob0e6ca592016-04-07 08:49:37 +020040* Transparent support for returning values wrapped in ``std::unique_ptr<>``
Wenzel Jakob4e455dd2016-03-09 16:38:28 +010041* Improved docstring generation for compatibility with Sphinx
Wenzel Jakob34116732016-04-06 17:55:41 +020042* Nicer debug error message when default parameter construction fails
43* Support for "opaque" types that bypass the transparent conversion layer for STL containers
44* Redesigned type casting interface to avoid ambiguities that could occasionally cause compiler errors
Wenzel Jakob2c5d5602016-04-11 18:46:11 +020045* Redesigned property implementation; fixes crashes due to an unfortunate default return value policy
Wenzel Jakob4e455dd2016-03-09 16:38:28 +010046* Anaconda package generation support
Wenzel Jakobd2385e82016-03-08 18:04:43 +010047
481.3 (March 8, 2016)
Wenzel Jakob8ed28082016-02-07 17:32:37 +010049--------------------------
Wenzel Jakobcf2b87a2016-02-22 17:32:44 +010050
51* Added support for the Intel C++ compiler (v15+)
52* Added support for the STL unordered set/map data structures
Wenzel Jakobd2385e82016-03-08 18:04:43 +010053* Added support for the STL linked list data structure
Wenzel Jakobcf2b87a2016-02-22 17:32:44 +010054* NumPy-style broadcasting support in ``pybind11::vectorize``
Wenzel Jakob2c5d5602016-04-11 18:46:11 +020055* pybind11 now displays more verbose error messages when ``arg::operator=()`` fails
Wenzel Jakobd2385e82016-03-08 18:04:43 +010056* pybind11 internal data structures now live in a version-dependent namespace to avoid ABI issues
57* Many, many bugfixes involving corner cases and advanced usage
Wenzel Jakob8ed28082016-02-07 17:32:37 +010058
591.2 (February 7, 2016)
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +010060--------------------------
Wenzel Jakob48548ea2016-01-17 22:36:44 +010061
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +010062* Optional: efficient generation of function signatures at compile time using C++14
Wenzel Jakob48548ea2016-01-17 22:36:44 +010063* Switched to a simpler and more general way of dealing with function default
64 arguments. Unused keyword arguments in function calls are now detected and
65 cause errors as expected
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +010066* New ``keep_alive`` call policy analogous to Boost.Python's ``with_custodian_and_ward``
Wenzel Jakob48548ea2016-01-17 22:36:44 +010067* New ``pybind11::base<>`` attribute to indicate a subclass relationship
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +010068* Improved interface for RAII type wrappers in ``pytypes.h``
69* Use RAII type wrappers consistently within pybind11 itself. This
70 fixes various potential refcount leaks when exceptions occur
Wenzel Jakob2c5d5602016-04-11 18:46:11 +020071* Added new ``bytes`` RAII type wrapper (maps to ``string`` in Python 2.7)
Wenzel Jakob48548ea2016-01-17 22:36:44 +010072* Made handle and related RAII classes const correct, using them more
73 consistently everywhere now
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +010074* Got rid of the ugly ``__pybind11__`` attributes on the Python side---they are
75 now stored in a C++ hash table that is not visible in Python
76* Fixed refcount leaks involving NumPy arrays and bound functions
77* Vastly improved handling of shared/smart pointers
78* Removed an unnecessary copy operation in ``pybind11::vectorize``
79* Fixed naming clashes when both pybind11 and NumPy headers are included
80* Added conversions for additional exception types
Wenzel Jakob48548ea2016-01-17 22:36:44 +010081* Documentation improvements (using multiple extension modules, smart pointers,
82 other minor clarifications)
Wenzel Jakob61587162016-01-18 22:38:52 +010083* unified infrastructure for parsing variadic arguments in ``class_`` and cpp_function
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +010084* Fixed license text (was: ZLIB, should have been: 3-clause BSD)
85* Python 3.2 compatibility
Wenzel Jakobcd4e6ae2016-01-29 11:48:40 +010086* Fixed remaining issues when accessing types in another plugin module
87* Added enum comparison and casting methods
88* Improved SFINAE-based detection of whether types are copy-constructible
89* Eliminated many warnings about unused variables and the use of ``offsetof()``
Wenzel Jakob8ed28082016-02-07 17:32:37 +010090* Support for ``std::array<>`` conversions
Wenzel Jakob1ae77fe2016-01-17 22:36:43 +010091
921.1 (December 7, 2015)
93--------------------------
94
95* Documentation improvements (GIL, wrapping functions, casting, fixed many typos)
96* Generalized conversion of integer types
97* Improved support for casting function objects
98* Improved support for ``std::shared_ptr<>`` conversions
99* Initial support for ``std::set<>`` conversions
100* Fixed type resolution issue for types defined in a separate plugin module
101* Cmake build system improvements
102* Factored out generic functionality to non-templated code (smaller code size)
103* Added a code size / compile time benchmark vs Boost.Python
104* Added an appveyor CI script
105
1061.0 (October 15, 2015)
107------------------------
108* Initial release