A static type with no tp_new of its own whose base is object now gets
DISALLOW_INSTANTIATION instead of inheriting object's tp_new, following
type_ready_set_new. Such types no longer expose an inherited __new__.
A static type that inherits a non-NULL tp_new from its base must have the
same basicsize as that base; type initialization panics otherwise. Types
flagged HEAPTYPE are exempt, like classes created at runtime.
_IOBase is flagged HEAPTYPE so that it keeps inheriting object's tp_new.
FutureIter, TaskStepMethWrapper, hamt, InstructionSequence and
itertools._grouper get constructors of their own.
Assisted-by: Claude:claude-opus-5-5
Assisted-by: Grok:grok-4.7
Keep whole-file and package migration with existing marker, doctest and explicit customization preservation. Retire copy-test and selected assignment/function/export import machinery rather than maintaining extra partial-file update paths.
Remove the separate historical-file deletion command after its migration use. This does not delete any Lib files or make whole-directory migration prune destination-only files; future obsolete-file removal still needs explicit review.
Preserve dependency handling and contributor content-comparison fixes. All 103 retained synthetic migration, patch and copy-library tooling tests pass under an isolated bounded host Python harness. No RustPython runtime or migrated Lib source was executed.
Assisted-by: OpenAI Codex:model version unavailable
Co-authored-by: youknowdot <youknowdot@users.noreply.github.com>
compile_class_body passed firstlineno to source_line_start_range. When
the AST carries an AstLocations table, firstlineno comes from the table,
while source_line_start_range indexes the source text. A table line past
the end of the text panicked in ruff_source_file's line index.
compile_class_def now also computes the text line that the first-line
span starts on and passes it to compile_class_body for the range. The
location still uses firstlineno. Without a location table the two are
the same line.
Assisted-by: Claude
* Preserve Unicode in thread unraisable messages
Keep the callable representation as WTF-8 for unraisable hooks and audit callbacks. Preserve the existing String entry point and stderr fallback; this does not claim lossless stderr rendering.
Assisted-by: OpenAI Codex:model unavailable
* Use the WTF-8 string conversion constructor
Use the existing From<&str> implementation to copy the message prefix without changing Unicode semantics.
Assisted-by: OpenAI Codex:model unavailable
* Preserve cross-interpreter marshal error causes
Wrap failures from existing code/function serialization helpers as NotShareableError, matching the CPython 3.15 marshal boundary while retaining the original exception cause. No new test C API or lifecycle behavior.
Assisted-by: OpenAI Codex:model-unavailable
* Enforce syslog interpreter boundaries and sync queue cleanup
Reject subinterpreter openlog/closelog before audit or host mutation, and
reject implicit syslog opening after audit when the process logger is not
already open, matching CPython 3.15 guard placement and error text.
Already-open logging and setlogmask remain unchanged.
Migrate concurrent/interpreters/_queues.py through scripts/update_lib to
CPython d220409a13b77de7a6c30abe16ea90db01528edc, removing unused eager
pickle import and exception targets. Native serialization imports pickle
on demand; module import timing and debug locals may nevertheless differ.
No new fixtures or interpreter lifecycle mechanisms are introduced.
Assisted-by: OpenAI Codex:model version unavailable
Extract the unchanged Reader::open decode body into a private owned-buffer
parse helper and add native representation tests for varints, stack depth,
RLE count bounds, and repeated empty records. Preserve all existing tests.
This adds coverage, not a new production decoder fix. Test code passes
cargo check --tests and strict Clippy --tests, but has not been executed.
OpenAI Codex assisted extraction, review, and compile-only validation.
Assisted-by: OpenAI Codex:model version unavailable
Co-authored-by: Codex <codex@openai.com>
Enable buffer-redux on the workspace rustyline dependency and add its
locked buffer-redux 1.1.0 dependency. Keep existing dependency versions
and checksums, including nix, libc and rustix, unchanged.
RustPython retains a rustyline Editor across interactive prompts. On
Unix, this feature lets a successful readline submission save unread
buffered input for the next read instead of dropping the old reader's
buffer. This is based on the source call chain, not a runtime reproduction.
Assisted-by: OpenAI Codex:model version unavailable
* Document only workspace crates in the cargo doc job
cargo doc ran rustdoc on every dependency as well; in run #91 that was
284 documented crates for a check of this workspace's own docs.
Assisted-by: Claude Code
Claude-Session: https://claude.ai/code/session_01JpHqXiC3mDShqfsPxvr9ey
* Share one target directory between the example projects
Each example project is its own workspace and built into its own target
directory, so the second build recompiled the dependencies the first had
just built. Of the 359 units the frozen_stdlib build needs, 261 are
identical to units of the barebone build.
Assisted-by: Claude Code
Claude-Session: https://claude.ai/code/session_01JpHqXiC3mDShqfsPxvr9ey
* Check both macOS cross targets on one runner
macOS runners have the smallest concurrent-job limit of the hosted
runners. The aarch64-apple-ios and x86_64-apple-darwin checks now run in
one job, with one cargo invocation per feature set that passes both
targets, so they also share the host-side build scripts and proc macros.
The matrix entry lists the targets separated by a space, because the
target is part of the cache key and actions/cache rejects commas.
This renames the two "cargo check (macos-latest, ...)" checks to one.
Assisted-by: Claude Code
Claude-Session: https://claude.ai/code/session_01JpHqXiC3mDShqfsPxvr9ey
---------
Co-authored-by: Claude <noreply@anthropic.com>
Retain direct IR coverage for constant-pool representations, malformed
append-sequence rejection, and vacated instruction-slot metadata reuse.
Reject non-unit terminal append depths at the private folding helper.
Existing production callers already require depth one; this is defensive
contract hardening, not a newly fixed reachable interpreter bug.
Preserve the existing helper structure and all pre-existing tests. The
three added native tests are unchanged from the Python 3.15 upgrade work.
Validation: codegen check and strict Clippy with --tests, a --lib --no-run
build, and exactly three bounded native IR tests (one pass, zero ignored
each). No Python, parser, VM or lifecycle payload was executed. The
symmetric SetAdd guard has no dedicated depth-two assertion.
Assisted-by: OpenAI Codex:model version unavailable
Copy curses frontend sources and canonical curses, DBM, Tcl and DTrace
integration tests from CPython v3.15.0 through update_lib. Preserve
upstream optional-native/resource/configuration gates and canonical file
modes, without adding native implementations or custom skips.
Validate source identity, hooks and default/frozen compile-only checks.
Native runtime integration and probe execution remain unvalidated.
Assisted-by: OpenAI Codex: model version unavailable
Copy the remaining live collector package, related canonical tests, and
Python logo asset from CPython v3.15.0 through update_lib. Keep source
availability distinct from supported live sampling or curses execution.
Exclude the child monitor and its tests: introducing that module would
activate --subprocesses before native child discovery is implemented.
Preserve all upstream resource gates without adding skips or shims.
Assisted-by: OpenAI Codex: model version unavailable
Move the existing conversion helper into the production time module and reuse it from sleep, preserving conversion bodies and internal C-API argument binding.
Assisted-by: OpenAI Codex:model version unavailable
Import test_async.py and test_profiler.py with scripts/update_lib migrate
from CPython 3.15.0 at d220409a13b77de7a6c30abe16ea90db01528edc.
Validate the 37 existing offline async graph and statistics-rendering
tests without changing canonical assertions or markers.
Assisted-by: OpenAI Codex: model version unavailable
Stop automatically labeling OSCCA participants' pull requests with
z-ca-2026 and assigning them, and drop the matching zizmor ignore entry.
Assisted-by: Claude Code:claude-opus-5-5
Import the CLI, entry point, error type, coordinator dependency, and CLI
tests with scripts/update_lib migrate from CPython 3.15.0 at
d220409a13b77de7a6c30abe16ea90db01528edc.
This frontend follows the existing offline collector/codec support. Live
attach, run, and dump remain unsupported and unvalidated.
Assisted-by: OpenAI Codex: model version unavailable
Use decoded logical instructions rather than the preceding raw operand byte. Check referenced constants by None identity and decode common constants without panicking.
Assisted-by: OpenAI Codex:model unavailable
Import the unchanged Python 3.15.0 fixture with the official library updater
and retire the missing-fixture expectedFailure after validating the existing
distance and threshold tests. Preserve all assertions and unrelated markers.
Assisted-by: OpenAI Codex: model version unavailable