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 — Share ctypes backing-owner snapshots between aggregate copies by 1ndahous3 · Pull Request #9392 · RustPython/RustPython Conversation
|
| Platform | Elements | Before | After |
|---|---|---|---|
| Windows 11 x64 | 1,024 | 11.50 ms | 0.99 ms |
| Debian 12 amd64 | 4,096 | 257.37 ms | 5.52 ms |
Peak process RSS in the Debian scenario: 236.2 MiB → 70.9 MiB.
Written with Codex (GPT-6), reviewed by a human before submission.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Optional collection during allocation crates/vm/src/gc_state.rs, crates/vm/src/object/core.rs |
track_new_object_impl and a shared PyRef allocation path accept a collection flag. new_ref enables collection; new_ref_without_collection disables it on supported host builds. |
Owner groups and snapshots crates/vm/src/stdlib/_ctypes/base.rs |
PrivateRefs tracks owner groups and reference counts, traverses and clears retained references, and caches a tuple snapshot for multiple owners until the owner set changes. |
CData hidden-reference integration crates/vm/src/stdlib/_ctypes/base.rs |
CDataValue and retention helpers use optional HiddenRefs groups in conversions, assignments, and keep operations. |
Priority:
Estimated code review effort: 3 (Moderate) | ~25 minutes
Change: Refactor
Possibly related PRs
PrivateRefs owner structure and traversal paths used by this PR.Suggested reviewers: youknowone
f4df5No actionable merge-blocking defect is established by the reviewed changes.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Assisted-by: Codex:GPT-6
Assisted-by: Codex:GPT-6
b23664e to
332101a
Compare
|
|
||
| /// Allocate and track internal storage without running collection during | ||
| /// publication. The next ordinary tracked allocation still checks thresholds. | ||
| pub(crate) fn new_ref_without_collection( |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
the naming is confusing. new_ref_without_collection is default false call of new_ref_with_collection. those names are looking symmetric.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| /// # Safety | ||
| /// obj must be a valid pointer to an untracked PyObject with freshly zeroed `gc_bits`. | ||
| #[inline] | ||
| pub(crate) unsafe fn track_new_object_with_collection(obj: NonNull<PyObject>, collect: bool) { |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
let's give a good name here. I will think a bit more.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Assisted-by: Codex:GPT-6
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
thanks!
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.