Repository navigation
Comparing changes
Open a pull request
base repository: python-rapidjson/python-rapidjson
base: master
head repository: python-rapidjson/python-rapidjson
compare: sub-interpreters
- 20 commits
- 7 files changed
- 2 contributors
Commits on Nov 1, 2026
-
Turn rapidjson.Decoder into heap type
Each static type is uniq and global for all subinterpreters and can't access cached PyObjects. Decoder do use cached PyObjecs and must access cache stored in module rather than in static variables. Static type it can't access "proper module" due to its "per process singleton nature". The recomended way is to turn static types into heap types in order to use cached PyObjects.
Configuration menu - View commit details
-
Copy full SHA for 9706b40 - Browse repository at this point
Copy the full SHA 9706b40View commit details -
Properly release the stolen StrongRef
See #227 (review) for an explanation.
Configuration menu - View commit details
-
Copy full SHA for d8a3f83 - Browse repository at this point
Copy the full SHA d8a3f83View commit details -
Configuration menu - View commit details
-
Copy full SHA for c3c5581 - Browse repository at this point
Copy the full SHA c3c5581View commit details -
Configuration menu - View commit details
-
Copy full SHA for e027049 - Browse repository at this point
Copy the full SHA e027049View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e8c7c0 - Browse repository at this point
Copy the full SHA 0e8c7c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7606903 - Browse repository at this point
Copy the full SHA 7606903View commit details -
Move PyObject caches into a single variable of struct type.
This is a first step in the direction of subinterpreter compatibility. Is's recommended to keep such caches in the module state rather then process wide globals: https://docs.python.org/3/howto/isolating-extensions.html#managing-per-module-state Dedicated struct was created which can later on be stored in the module state. It can't be done right now since those members are accessed from static types initialization code which doesn't have access to the module. Turning such static types into heap types is also subinterpreter compatibility prerequisite: https://docs.python.org/3/howto/isolating-extensions.html#heap-types
Configuration menu - View commit details
-
Copy full SHA for aa02572 - Browse repository at this point
Copy the full SHA aa02572View commit details -
Configuration menu - View commit details
-
Copy full SHA for 86e3fce - Browse repository at this point
Copy the full SHA 86e3fceView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2d6d650 - Browse repository at this point
Copy the full SHA 2d6d650View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5475457 - Browse repository at this point
Copy the full SHA 5475457View commit details -
Configuration menu - View commit details
-
Copy full SHA for d1836e9 - Browse repository at this point
Copy the full SHA d1836e9View commit details -
Configuration menu - View commit details
-
Copy full SHA for e797ed8 - Browse repository at this point
Copy the full SHA e797ed8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0991cf3 - Browse repository at this point
Copy the full SHA 0991cf3View commit details -
Configuration menu - View commit details
-
Copy full SHA for ee29bf5 - Browse repository at this point
Copy the full SHA ee29bf5View commit details -
Move also the datetime API into the module's state
I'm not really sure this is required, because AFAIU all the API is actually static, and apparently shared by all interpreters... Anyway, this seems clearer.
Configuration menu - View commit details
-
Copy full SHA for 4a2fc18 - Browse repository at this point
Copy the full SHA 4a2fc18View commit details -
Configuration menu - View commit details
-
Copy full SHA for 86a8ea8 - Browse repository at this point
Copy the full SHA 86a8ea8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 82b1453 - Browse repository at this point
Copy the full SHA 82b1453View commit details
Commits on Nov 2, 2026
-
Fix refcount leak in the dealloc of RawJSON and Validator
Both are heap types now: their instances hold a reference to the type and, being GC-tracked, must be untracked before being freed. Their dealloc was only calling tp_free(), leaking one reference to the type per instance and, on debug interpreters, emitting a ResourceWarning.
Configuration menu - View commit details
-
Copy full SHA for d0bcde3 - Browse repository at this point
Copy the full SHA d0bcde3View commit details -
Python 3.10 is EOL since 2026-10-01, and its not easy for me to even test for it locally. This also reverts commit 82b1453.
Configuration menu - View commit details
-
Copy full SHA for 5a33e6b - Browse repository at this point
Copy the full SHA 5a33e6bView commit details -
Its configuration still referenced Python 3.9 and 3.10, a good evidence that it was abandoned lot of time ago.
Configuration menu - View commit details
-
Copy full SHA for cc85e9a - Browse repository at this point
Copy the full SHA cc85e9aView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...sub-interpreters