Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.1k
gh-84436: Implement Immortal Objects#19474
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
ericsnowcurrently merged 201 commits intopython:mainfromeduardo-elizondo:immortal-referencesApr 22, 2023
Uh oh!
There was an error while loading.Please reload this page.
Merged
Changes from1 commit
Commits
Show all changes
201 commits Select commitHold shift + click to select a range
0c930b7 Implement Immortal Instances
eduardo-elizondo7005944 Nits
eduardo-elizondoc6a1bfa Bypass immortality in NewReference
eduardo-elizondo51e4879 Add News and Fix MSVC Build
eduardo-elizondocc2ece3 Formatting Nits
eduardo-elizondo72d12fa Typo
eduardo-elizondof04776e MSVC Test
eduardo-elizondofa8d668 Skip test for MSVC
eduardo-elizondof066633 Skip test for MSVC 32 & 64
eduardo-elizondo36e0a9a Skip all tests for Windows
eduardo-elizondo2f9fa29 Immortalize known immortals
eduardo-elizondoa1bc981 static inits
eduardo-elizondo0b12a16 Immortalize more known immortals
eduardo-elizondo1332f03 Change static to define
eduardo-elizondo17883d7 Nits
eduardo-elizondobc23d4d Add parentheses for define
eduardo-elizondo825f8fa Fix gc tests
eduardo-elizondo9a6f4f9 Remove module usage at runtime destruction
eduardo-elizondo6899f5c Fix msvc
eduardo-elizondod285010 Fix refcnt tests
eduardo-elizondob7d2c21 Fix refcnt tests
eduardo-elizondo093edae Merge branch 'immortal-references' of https://github.com/eduardo-eliz…
eduardo-elizondo54af788 Nits
eduardo-elizondob29c8ff Remove immortalize arenas
eduardo-elizondo701579a Remove immortalize arenas
eduardo-elizondoa12da60 Merge branch 'immortal-references' of https://github.com/eduardo-eliz…
eduardo-elizondoa99a517 Fix ms
eduardo-elizondo15ad069 Fix msft
eduardo-elizondo874248a Remove profile
eduardo-elizondo357a084 Make all tests pass
eduardo-elizondo937d4f6 Added skipUnless arg
eduardo-elizondod3bcea6 Exclude refcnt tests
eduardo-elizondob439b7b Exclude leak tests
eduardo-elizondoea23b5a Exclude refleak tests
eduardo-elizondo07fa840 Pass. Tests.
eduardo-elizondo6ff9ab2 Merge branch 'master' into immortal-references
eduardo-elizondo3d6f709 Rebased to latest
eduardo-elizondo66dc3e4 Make tests pass
eduardo-elizondo385e075 Simplify Review
eduardo-elizondob0bb995 Cleanup
eduardo-elizondo7e26465 Immortalize startup heap
eduardo-elizondo0c2bc92 Rebase
eduardo-elizondoce1319a Fix test
eduardo-elizondofbb1b12 Branchless add
eduardo-elizondo61f128a Branch if
eduardo-elizondoe6bf2e2 Remove branch in none,true,false return
eduardo-elizondo62ff2c7 Readuce feature set to singleton immortalization only
eduardo-elizondo0820520 More clenups
eduardo-elizondo3866ad7 Merge branch 'master' into immortal-references
eduardo-elizondo65c7e30 Remove exposed C-API
eduardo-elizondoe530f0b Fixes for refcount tests
eduardo-elizondo3375cd6 Remove superfluous tests
eduardo-elizondo570aff4 Remove extra file
eduardo-elizondoe49b58a Reduce test refcount check ammount
eduardo-elizondoef478b1 Rerun tests
eduardo-elizondo7225f3e Address comments
eduardo-elizondo0f6ad8e Small fix
eduardo-elizondo54c8fe2 Increase initial immortal refcount
eduardo-elizondoe274104 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondoc829257 Cleanups
eduardo-elizondo5949df4 Move immortal bit to 2nd MSB
eduardo-elizondo2baee89 Improve comments
eduardo-elizondof7da0f8 Remove extras refcounts inside interpreter loop
eduardo-elizondo4bea515 immortalize deepfreeze
eduardo-elizondodfb5863 Remove unused files
eduardo-elizondof7287b2 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo5af0167 Remove unused refcounts in singletons within CPython/Objects
eduardo-elizondo02cf9af Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo25fd52a Revert "Remove unused refcounts in singletons within CPython/Objects"
eduardo-elizondobe86955 Include immortal interned strings
eduardo-elizondo38a14a9 Regen frozen main
eduardo-elizondoc828369 Properly clean up all immortal interned strings at runtime finalization
eduardo-elizondoee41af6 Build and test fixes
eduardo-elizondof835e6d Temporarily disable single test_embed test
eduardo-elizondo8573af4 Fix structseq test
eduardo-elizondoad19ff6 Move nonetype refcount to static refcnt
eduardo-elizondo66c625f Remove unneeded reference counts in Cpython/Objects
eduardo-elizondo1379d50 Mark global instances as static globals
eduardo-elizondo1c9ee6d Remove unneeded reference counts in Cpython/Python
eduardo-elizondo287b57c Remove unneeded reference counts in gcmodule.c
eduardo-elizondoc736a7c Cleanup bool and str usage
eduardo-elizondo60f0760 Merge branch 'main' into immortal-references
eduardo-elizondo1321ff6 Fix whitespaces
eduardo-elizondoa719b41 Remove static immortal bit in favor of unicode intern state
eduardo-elizondo9f3ed39 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo8f72afe Regen frozen
eduardo-elizondo52d6d78 Fix regrtest
eduardo-elizondo9fd8a98 Change immortal refcount for PY_SSIZE_T_MAX
eduardo-elizondo3478467 Introduce saturated adds for increfs
eduardo-elizondoeb5da8c Add default and msvc intrinsic saturated add
eduardo-elizondodef8da3 Fix msvc saturated add
eduardo-elizondofe6727e Fix docs
eduardo-elizondo38df3ce Move unicode_is_singleton to Py_DEBUG
eduardo-elizondo73f6dcd Skip immortal checks in frame clear
eduardo-elizondod68efa1 Make code objects immortal
eduardo-elizondo18cff33 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo168a85c Refcount fixes
eduardo-elizondo9ada9fd Temporarily disable two code tests
eduardo-elizondo5d3beb9 Disable one more code test
eduardo-elizondoea342e3 Cleanups
eduardo-elizondod78a560 Simplify Implementation
eduardo-elizondo16d59e3 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondof49c13c Cleanups
eduardo-elizondo8262e56 More Cleanups
eduardo-elizondo96c7caa Regen Frozen
eduardo-elizondo3493c85 Fix regrtest
eduardo-elizondo0f38657 Only immortal changes
eduardo-elizondo401a3c3 Fix C++ compilation issue
eduardo-elizondo6bd2d94 Fix regen files
eduardo-elizondo9df1447 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo15f7365 Fix sat add
eduardo-elizondoea9f01c Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondoc39b617 32 bit fixes
eduardo-elizondo3ae8374 Fix msvc build
eduardo-elizondoba7cfe1 Add 32 compat
eduardo-elizondo7a29123 More fixes
eduardo-elizondo88ede67 Fix inlined refcounts
eduardo-elizondo34bdf3c Change refcount strategy for 32bit systems
eduardo-elizondoab1f6e4 Add guard for saturated add function
eduardo-elizondoc2c228e Cleanup unneeded port values
eduardo-elizondo219ebdc branchless saturated add
eduardo-elizondocd42e16 Use PY32 bit integers
eduardo-elizondo99e7549 Cleanups
eduardo-elizondod7df473 Remove branchless add as it's slower
eduardo-elizondo00238eb Immortalize Interned Strings
eduardo-elizondo9355ca2 Fix structseq test
eduardo-elizondoeedd412 Bring back interned stats
eduardo-elizondoccf8b61 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondoe57910d Fix msvc ifdef
eduardo-elizondo6437df7 Only copy lower 32 bits to refcnt
eduardo-elizondoba75726 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo418b2ff Merge cleanups
eduardo-elizondo1468f52 Fixing Test Failures
eduardo-elizondoe30fea4 Addressed static string issue
eduardo-elizondo5aa8c34 Addressed regrtest failures
eduardo-elizondod74a4c5 Addressed CI failures
eduardo-elizondo9be58d4 Addressed CI failures second try
eduardo-elizondof00f7f8 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo747039d Remove temporary fixes
eduardo-elizondo01017e1 Temporary windows fix
eduardo-elizondo6f0cf32 Remove duplicate immortal initialization
eduardo-elizondo7997d57 Windows fix
eduardo-elizondo749680e Addressed CI failures third try
eduardo-elizondoc71c742 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondobc28cb0 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondoc8b694f Add tp_dealloc suggested changes by steering committee
eduardo-elizondo6abab4d Fixed int leak
eduardo-elizondo1dfe27a Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo7661541 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo59513a7 Cleanup deallocation of immortal objects
eduardo-elizondo60329b5 Add DeepFreeze types for typle, long, and bytes
eduardo-elizondoa5e29d5 Fix regencode
eduardo-elizondof88cbb6 Fix stable abi toml
eduardo-elizondo7efa760 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo8ebb3db Add DeepFreeze types for float, complex
eduardo-elizondo2c3d242 Add DeepFreeze types for code and update stable_abi
eduardo-elizondo5684be7 Remove PyDeepFreezeCode_Type from stable abi
eduardo-elizondo4529e23 Revert DeepFreeze changes
eduardo-elizondocfb56b6 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondoa748e80 Replace incref memcpy with builtins
eduardo-elizondo033c86d Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo520fbc3 Rebase fixes
eduardo-elizondo90e0016 Debug build fixes
eduardo-elizondobc726b0 Cleanups in prep for review
eduardo-elizondo5e0cd08 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondof7fbf01 Correct whatsnew
eduardo-elizondo92fbf96 More cleanups
eduardo-elizondo1c390cc Delete _PyType_FixCacheRefcounts
eduardo-elizondo030016a Addressed First Round of Comments
eduardo-elizondo093c405 Address comments
eduardo-elizondo6c0fdba Return Py_DEBUG in unicode runtime shutdown
eduardo-elizondo74b6e7b Nits
eduardo-elizondo433d1e3 Use Py_BUILD_CORE to set PyObject_HEAD_INIT as immortal
eduardo-elizondo069da16 Address Carl's comments
eduardo-elizondod22a4bf Use a union to refer to lower 32bits
eduardo-elizondoe04ef7e Static declarations cleanups
eduardo-elizondo3b3b142 Only support split refcount in 64bit architectures
eduardo-elizondoab3f951 Support incref in big-endian machines
eduardo-elizondo3e55a32 Cleanups and comments
eduardo-elizondoff69be7 Fix bytes_method compiler error
eduardo-elizondoe6e459c Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondoe19f50a Add Py_ALWAYS_INLINE to Py_DECREF, Py_INCREF, and _Py_IsImmortal
eduardo-elizondo7c233b0 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo9b2b49c Fix merge errors
eduardo-elizondo018be4c Fix inlining warning
eduardo-elizondof4aa5b4 Fix build errors with _testcppext.cpp
eduardo-elizondo1d2ee06 Also set initializers in PyModuleDef_HEAD_INIT
eduardo-elizondoc6a14f2 Revert "Also set initializers in PyModuleDef_HEAD_INIT"
eduardo-elizondo47819f6 Fix one bug that incorrectly tracks RefTotal
eduardo-elizondo9423c61 Fix another bug that incorrectly immortalizes non-small ints
eduardo-elizondoa4a9067 Introduce sys.getunicodeinternedsize to correctly track refleaks
eduardo-elizondo181aedd Move _Py_SetImmortal to internal
eduardo-elizondo0a18468 Update whatsnew
eduardo-elizondo67b1c57 Fix build errors in PC/_wmimodule.cpp
eduardo-elizondoe82b165 Also include m_base in initalizers of cppext and _wmi
eduardo-elizondod85d9d3 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo9053b22 Fix mixed designated initializer error
eduardo-elizondoa9caa2d Small cleanups
eduardo-elizondo56f1d81 Add braces to indicate union initializer in ob_refcnt
eduardo-elizondobae6195 Merge remote-tracking branch 'upstream/main' into immortal-references
eduardo-elizondo9cb2c21 Also remove designated initializers from _PyObject_EXTRA_INIT
eduardo-elizondoFile filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
Nits
- Loading branch information
Uh oh!
There was an error while loading.Please reload this page.
commit7005944be577ec0980ea44fcde15b3e761b41167
There are no files selected for viewing
12 changes: 6 additions & 6 deletionsInclude/object.h
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.