Upgrade to release 3.1.0:
- Support for Python 3.8 was removed. The minimum supported version
is now Python 3.9.
- Support for MSVC 2017 has been dropped. #6110
- Changed strict-mode numeric conversions for PEP 484 compatibility:
float now accepts int, and complex now accepts int and float.
- Small extra features added to the pybind11 command line tool
based on python-config.
- Added subinterpreter_thread_state, an RAII wrapper that owns a
reusable PyThreadState for a sub-interpreter, together with a
subinterpreter_scoped_activate overload that activates it. This
lets an OS thread re-enter one or more sub-interpreters without
creating and destroying a PyThreadState on every activation.
- Add py::mod_gil_used() as replacement spelling to
py::mod_gil_not_used(false).
- Fixed a crash in py::subinterpreter::create() when called without
a current PyThreadState, which its documentation explicitly allows
- for example from an embedder that ended initialization with
PyEval_SaveThread(), or from a worker thread that has never
touched Python. error_scope is now constructed after a thread
state has been attached instead of before.
- Make py::print delegate to the current frame/interpreter built-ins
print entry, fixing handling of sys.stdout = None, following the
active runtime's stream, keyword, and error semantics, and
remaining a no-op if the entry is unavailable during teardown.
- Include the builtin complex type in the input annotation of the
std::complex<T> type caster.
- String views (e.g. std::string_view) are now kept alive only when
loaded from a transient source (such as a generator), fixing both
a use-after-free and a regression where casting a view from a
durable object outside a bound function would throw.
- Drop Python 2 prepend to evaluated source, causing errors to be
off by one.
- Fix data race on last_storage_ptr_ cache in
gil_safe_call_once_and_store.
- Allow user defined __str__ on enum_.
- Fix generated Callable type annotations for Python callbacks
passed into C++ by inverting the callback's argument/return I/O
context relative to the enclosing function signature.
- Correct __delitem__ for negative-step slices and re-enable
contiguous erase fast path.
- Do not pass -fno-fat-lto-objects to GCC on macOS, which made all
LTO probes fail and silently disabled LTO.
- Fixed cross-compilation to Emscripten/Pyodide with CMake >= 4.1
by no longer overriding an explicitly set
PYBIND11_USE_CROSSCOMPILING when CMAKE_CROSSCOMPILING_EMULATOR
is defined.
- Unset stale PYTHON_MODULE_DEBUG_POSTFIX and correct
USE_PYTHON_INCLUDE_DIR variable.
- Apply -undefined dynamic_lookup to all Apple platforms.
This work was sponsored by GOVCERT.LU.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>