Changes:
- Enum now has an
__index__
method on Python <3.8 too. #3700 - Local internals are now cleared after finalizing the interpreter. #3744
Bug fixes:
- Better support for Python 3.11 alphas. #3694
PYBIND11_TYPE_CASTER
now uses fully qualified symbols, so it can be used outside ofpybind11::detail
. #3758- Some fixes for PyPy 3.9. #3768
- Fixed a potential memleak in PyPy in
get_type_override
. #3774 - Fix usage of
VISIBILITY_INLINES_HIDDEN
. #3721
Build system improvements:
- Uses
sysconfig
module to determine installation locations on Python >= 3.10, instead ofdistutils
which has been deprecated. #3764 - Support Catch 2.13.5+ (supporting GLIBC 2.34+). #3679
- Fix test failures with numpy 1.22 by ignoring whitespace when comparing
str()
of dtypes. #3682
Backend and tidying up:
- clang-tidy: added
readability-qualified-auto
,readability-braces-around-statements
,cppcoreguidelines-prefer-member-initializer
,clang-analyzer-optin.performance.Padding
,cppcoreguidelines-pro-type-static-cast-downcast
, andreadability-inconsistent-declaration-parameter-name
. #3702, #3699, #3716, #3709 - clang-format was added to the pre-commit actions, and the entire code base automatically reformatted (after several iterations preparing for this leap). #3713