GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Thread-safe type operations: type lock, QSBR type-cache reclamation, GC stop-the-world, and interpreter optimizations by youknowone · Pull Request #7416 · RustPython/RustPython Thread-safe type operations: type lock, QSBR type-cache reclamation, GC stop-the-world, and interpreter optimizations #7416New issueHave 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 our terms of service and privacy statement. We’ll occasionally send you account related emails. Already on GitHub? Sign in to your account
Merged
Uh oh!
There was an error while loading. Please reload this page.
Merged
Changes from 1 commit
Commits
Show all changes
92 commits
Select commit
Hold shift + click to select a range
09f9961
type lock
youknowone 2a9b982
Drop old PyObjectRef outside type lock to prevent deadlock
youknowone 4b71002
Align type lock behavior with CPython
youknowone 9196dd4
Add PUBLISHED flag bit to RefCount state word
youknowone c32cb0e
Add QSBR module for deferred memory reclamation
youknowone 9bfa070
Defer memory free of cache-published objects via QSBR
youknowone 59a3127
Wire QSBR checkpoints into thread lifecycle and eval breaker
youknowone 3f93b63
Publish type-cache values to QSBR and bypass cache without a VM
youknowone 06871c4
Use try-incref reads and QSBR-backed swaps in specialization cache
youknowone 6eecfe8
Reset QSBR thread registry after fork in the child
youknowone 020edd3
Add threaded stress test for type cache mutation races
youknowone d565da5
Restrict qsbr internals to pub(crate) and fix clippy lints
youknowone cbd20c0
Gate per-instruction QSBR check behind a global pending flag
youknowone eb633b2
Merge signal and QSBR eval-breaker flags into one atomic word
youknowone 9baa344
Skip freelist reuse for published objects in default_dealloc
youknowone 97dbfcc
Use itoa for PyInt::to_str_radix_10 i64 fast path
youknowone e4ddae6
Make object attribute dunders wrapper descriptors
youknowone 1ac47f3
Resolve TpSetattro pair on attribute deletion, not just addition
youknowone 8f32450
Generate Opcode::cache_entries/deopt as table lookups
youknowone efc62e3
Make Opcode/Instruction numeric conversions O(1)
youknowone 7e4c765
Pop CallIsinstance arguments directly instead of collecting into Vecs
youknowone d9796ea
Inherit tp_new instead of always installing new_wrapper
youknowone dd72583
Skip locals dict allocation for the init-cleanup shim frame
youknowone da6633d
Guard CALL_ALLOC_AND_ENTER_INIT with cached function version
youknowone 6fe1fed
Apply rustfmt and ruff-format fixes to files from earlier commits
youknowone d26a553
Add frame object freelist
youknowone 4c3bb64
Drop frame children directly in tp_clear instead of extracting
youknowone c197615
Untrack objects before tp_clear and guard cross-thread f_locals
youknowone cff6798
Skip localsplus heap copy for uniquely referenced dying frames
youknowone 1888e7d
Stage exact-args call arguments in stack slot buffers
youknowone 7517364
Reduce allocations in generic call paths
youknowone 71197eb
Skip redundant exc_info restore on frame exit
youknowone bc2927c
Apply rustfmt to gc_state.rs
youknowone de52aea
Avoid empty FuncArgs clone in PyType::call
youknowone e10c44d
Push freelist husks only after tp_clear and child drops
youknowone ebc56c9
Resolve __set__ and __delete__ together for the descr_set slot
youknowone e902ad1
Update type base on __bases__ assignment
youknowone bc2aba2
Fix rollback order, dead weakrefs, and lock-held drops in set_bases
youknowone b8d11f2
Reify number sub-slot wrapper once in update_one_slot
youknowone a7fc01a
Restrict type_cache_after_fork visibility and guard type-cache reads
youknowone 4d7126a
Guard BinaryOpSubscrGetitem with the cached type version
youknowone 18e8474
Call __abstractmethods__ __len__ once in object.__new__
youknowone 6133908
Use i64 fast paths for specialized int add/sub/mul
youknowone 1499b31
Use i64 fast paths for exact int floordiv and remainder
youknowone 70409fa
Skip trashcan and untrack for non-GC-tracked objects in dealloc
youknowone 1b8683b
Merge trashcan depth and defer queue into one thread-local struct
youknowone f85c30d
Check object layout compatibility on __bases__ and __class__ assignment
youknowone f7dda03
Stop the world around GC pointer-reading phases
youknowone bca1ad9
Add threaded GC vs executing-frame stress snippet
youknowone 2769945
Serialize fork and GC stop-the-world requesters
youknowone a33d16f
Add fork under concurrent GC stop-the-world snippet
youknowone 1b0fa99
Detach while acquiring the import lock
youknowone 92a4d00
Add concurrent-import vs GC deadlock snippet
youknowone d1e5e97
Create call frames untracked and track generators explicitly
youknowone ee94840
Track escaped call frames lazily at datastack release
youknowone 2982b66
Guard the tracked-frame localsplus invariant
youknowone 1fa2d5f
Reword frame/dealloc invariant comments and drop needless borrow
youknowone bd4b371
Move type SetAttr slot rewrite inside the type lock and tighten cache…
youknowone 2ae9fb8
Capture the type version before reading mutable slots in specializers
youknowone 68e8b91
Use _get_method_dict for the test_type check in the test runner
youknowone ec8b128
Fix lint hooks: cspell dictionary entries, spelling fix, formatting
youknowone 9d44aaf
Rebuild all slots for type and descendants on __bases__ reassignment
youknowone ab0cddb
Derive the thread-local frame stack from the frame chain
youknowone ae106ab
Inherit sub-slot fallback into the field being resolved
youknowone 8f4f7a5
Gate type_cache_after_fork to its fork caller and use Self in downcast
youknowone 5f43c79
Unmark test_attr and test_method_call_error in test_monitoring
youknowone a3f9243
Run tp_new specialization __init__ without a trampoline frame
youknowone df70284
Replace per-call thread-frame mutex with an atomic top-of-stack (unix)
youknowone f525b38
Skip exc_info save/restore for callees that never touch the slot
youknowone 98351a5
Return a write-through FrameLocalsProxy from frame.f_locals
youknowone a9f8b61
Retain the caller frame so f_back resolves after it returns
youknowone f05926a
Fix debug-build native stack overflow on deep recursion
youknowone 4a92aad
Allocate exception instance __dict__ lazily
youknowone 072bc2a
Allocate exception __dict__ lazily in vm.new_exception
youknowone c172c74
Validate FrameLocalsProxy.update() arguments
youknowone 2652f4d
Address review nits in frame and faulthandler
youknowone 0499c0a
Use scopeguard for start_the_world in faulthandler dump_all_threads
youknowone 811f230
Gitignore docs/superpowers
youknowone 7982da8
Rename type_bases_slot_rebuild.py to builtin_type_bases.py
youknowone 683f164
Apply rustfmt, ruff, and cspell lint fixes
youknowone ac2ce2b
Gate unix-only QSBR methods to their call sites
youknowone f843473
Visit the function closure tuple as a GC edge
youknowone 7ab5f76
Apply formatting hook fix to builtin_type_bases.py
youknowone 6626177
Unmark asyncgen finalization-by-gc tests in test_base_events
youknowone 77e6d31
Unmark test_sni_callback_refcycle in test_ssl
youknowone d272003
Widen GC stop-the-world gates from unix-only to all threading builds
youknowone e590e3b
Detach current thread around blocking _winapi/_overlapped waits
youknowone cdd8908
Format WaitForMultipleObjects allow_threads closure
youknowone b6e8cbf
Treat concurrent sni_callback removal as no-op in invoke_sni_callback
youknowone 5e2d095
Assert capi refcount on a fresh mortal list instead of the int type o…
youknowone 4f8116d
Traverse and GC-track PyOSError instances
youknowone db737e1
Unmark test_blockingioerror in test_io
youknowone File filterConversations
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 viewDiff view
Apply rustfmt, ruff, and cspell lint fixes
Reformat with rustfmt, fix import spacing in builtin_type_bases.py with ruff, and add "pointee" to the cspell word list. Assisted-by: Claude
Uh oh!
There was an error while loading. Please reload this page.
commit 683f16490d269cff6367e857f03704bb368781e9
There are no files selected for viewing
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.
|
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |