The GIL handling changes in 0.29.29 introduced a regression where
objects could be deallocated without holding the GIL.
(Github issue :issue4796)
.. _0.29.29:
0.29.29 (2022-05-16)
Features added
Avoid acquiring the GIL at the end of nogil functions.
This change was backported in order to avoid generating wrong C code
that would trigger C compiler warnings with tracing support enabled.
Backport by Oleksandr Pavlyk. (Github issue :issue4637)
Bugs fixed
Function definitions in finally: clauses were not correctly generated.
Patch by David Woods. (Github issue :issue:4651)
A case where C-API functions could be called with a live exception set was fixed.
Patch by Jakub Kulík. (Github issue :issue:4722)
Pickles can now be exchanged again with those generated from Cython 3.0 modules.
(Github issue :issue:4680)
Cython now correctly generates Python methods for both the provided regular and
reversed special numeric methods of extension types.
Patch by David Woods. (Github issue :issue4750)
Calling unbound extension type methods without arguments could raise an
IndexError instead of a TypeError.
Patch by David Woods. (Github issue :issue4779)
Calling unbound .__contains__() super class methods on some builtin base
types could trigger an infinite recursion.
Patch by David Woods. (Github issue :issue4785)
The C union type in pure Python mode mishandled some field names.
Patch by Jordan Brière. (Github issue :issue:4727)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps cython from 0.29.21 to 0.29.30.
Changelog
Sourced from cython's changelog.
... (truncated)
Commits
a6f04ef
Prepare release of 0.29.30.a428ead
Revert "Avoid acquiring the GIL at the end of nogil functions (GH-3556) (GH-4...8ab1166
typo84bf400
Prepare release of 0.29.29.60f4105
Update changelog.c100f5e
Remove ".contains" -> "PySequence_Contains" slot mappings for known built...4e23f3e
Update changelog.34640e2
Fix version detection and compile/runtime Python version warning with double-...5cd417c
Change IndexError to TypeError when calling unbound CyFunctions (GH-4783)28857fd
Fix credited author name in changelog.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)