1720 Commits
Author SHA1 Message Date
youknowdotandyouknowdot 058bebf0f0 Add canonical cross-interpreter serialization tests and fixture bridges (#9408)
* Add canonical cross-interpreter serialization tests and fixture bridges

Import the complete CPython test_crossinterp module and provide its capsule bridges using existing serialization and validation logic. Keep fixture modes private instead of expanding SharedValue or interpreter lifecycle APIs.

Assisted-by: OpenAI Codex: model version unavailable

* Simplify canonical cross-interpreter fixture dispatch

Match CPython 3.15.0 mode dispatch with one private constructor instead of six forwarding entry points. Keep generic marshal data distinct from code transport, preserve capsule ownership checks and pure-script validation, and leave the canonical tests unchanged.

Assisted-by: OpenAI Codex: model version unavailable

---------

Co-authored-by: youknowdot <336763669+youknowdot@users.noreply.github.com>
2026-10-28 10:11:59 +09:00
Bas Schoenmaeckers 77046cf527 Add PyOS_vsnprintf % PyOS_snprintf to the capi (#9409) 2026-10-27 17:40:38 +00:00
Mathieu Dupuy a463449e35 csv: support non-ASCII Unicode dialect characters (#9367)
* scripts: make check_redundant_patches.py executable

The redundant-test-patches pre-commit hook uses `language: script`, which
requires the executable bit, and fails on every commit touching Lib/test.

Assisted-by: Claude:claude-sonnet-5-5

* csv: support non-ASCII Unicode dialect characters

Store delimiter, quotechar and escapechar as `char` instead of `u8`, and
run the reader state machine and the writer over code points, so that a
single non-ASCII character such as `€` is accepted like in CPython. The
field size limit is now counted in characters rather than bytes.

Fixes #8408

Assisted-by: Claude:claude-sonnet-5-5
2026-10-28 01:23:02 +09:00
b25ab5e76b Align XML backend and canonical libraries with Python 3.15 (#9197)
* Align XML parsing and libraries with Python 3.15

Retain the existing XML backend accounting changes and their explicit registry publication limitation. Preserve canonical XML tests and existing RustPython guards, including multiline marker explanations through update_lib.

Assisted-by: OpenAI Codex:model version unavailable

* Retire proven XML guards and sync canonical consumers

Assisted-by: OpenAI Codex:model version unavailable

* Rebase vendored xml onto 1.4.0

Replace the vendored crate sources with the published xml 1.4.0 archive
and reapply the amplification accounting patch on top of it. The two
lexer hunks that conflicted with the new line-ending normalization are
merged into the 1.4.0 read loop. The patch no longer normalizes CR in
entity values or collapses CRLF in attribute values, because the 1.4.0
lexer and attribute reader already do so.

Update the checksums, recorded upstream commit, archive hash and
provenance notes, and require version 1.4 for the path dependency.

Assisted-by: Claude Code:claude-opus-5-5

* Remove stale SAX external resolver expected failure

Linux and macOS canonical CI both demonstrate that the existing
unsupported-scheme resolver test passes. Retire only its expected-failure
decorator through update_lib, preserving its canonical assertions.
This does not implement external DTD parsing.

AI assistance: dot diagnosed CI, migrated the marker, and reviewed the
source delta and normal-hook validation; the model version is not exposed.

Assisted-by: dot: model version not exposed

---------

Co-authored-by: Jeong YunWon <jeong@youknowone.org>
Co-authored-by: youknowdot <336763669+youknowdot@users.noreply.github.com>
2026-10-27 21:02:59 +09:00
1ndahous3 df0d1b74c0 Preserve ctypes py_object provenance across casts and pointer writes (#9391)
* Preserve ctypes py_object provenance across casts and pointer writes

Assisted-by: Codex:GPT-6

* Validate ctypes writer paths across casts and retargeting

Assisted-by: Codex:GPT-6

* Preserve ctypes writer roots and avoid nested storage scans

Assisted-by: Codex:GPT-6

* Register ctypes exporters and cache pointer-field writers

Assisted-by: Codex:GPT-6

* Register overlapping ctypes views and index retained objects

Assisted-by: Codex:GPT-6

* Track shared ctypes buffer owners and cache cast fields

Assisted-by: Codex:GPT-6

* Index ctypes buffer aliases and register pointer exporters

Assisted-by: Codex:GPT-6

* Publish disjoint ctypes byref writes to borrowed sources

Assisted-by: Codex:GPT-6

* Index ctypes write provenance and validate private field paths

Assisted-by: Codex:GPT-6

* Resolve retained ctypes values after pointer retargeting

Assisted-by: Codex:GPT-6
2026-10-27 19:57:38 +09:00
youknowdotandCodex 75df7a8c2e Implement PEP 798 comprehension unpacking (#9342)
* Support PEP 798 comprehension unpacking

Extract the remaining Python 3.15 comprehension unpacking implementation
from the integration branch. Use existing list/set/dict update operations
and an explicit inner iterator loop for generator unpacking. Align the
public DictComp AST representation and schema with CPython.

Migrate test_unpack_ex and test_unparse with scripts/update_lib from
CPython d220409a13b77de7a6c30abe16ea90db01528edc. Preserve existing Rust tests;
add no duplicate regression tests or snippets.

AI-assisted source extraction, canonical migration, and independent source
review with OpenAI Codex. Runtime validation is not yet complete.

Assisted-by: OpenAI Codex:model version unavailable

* Improve selected unpacking diagnostics and refresh canonical exception tests

Normalize six supported comprehension-unpacking diagnostics using existing parser context. Restrict the dictionary-spread hint to its first entry to avoid changing unrelated diagnostics.

Migrate the whole test_exceptions module from CPython d220409a13b77de7a6c30abe16ea90db01528edc with the existing updater, preserving only its two existing RustPython markers. Ruff sources and dependency pins are unchanged.

Six focused check/build/strict Clippy gates passed. A paired 34-input compile-only comparison retains six canonical diagnostic improvements, with eight of fifteen canonical cases still differing; this is not full test_exceptions or CI validation.

* Fix mapping-rest error locations and retire stale encoding xfail

* Match remaining unpacking diagnostics without changing Ruff

Use exact retained AST and error ownership to normalize the remaining CPython 3.15 unpacking diagnostics. Reparse only the owned call argument slice with the unchanged Ruff parser when its original recovery loses generator clauses.

Validated all 30 canonical compile-only cases in exec and doctest-style single modes against CPython 3.15.0, plus finite surrounding controls. Targeted compiler Clippy and source-bound builds passed. Full CI is pending. Cspell alone was omitted with the maintainer’s explicit one-commit approval because its npm bootstrap downloads returned HTTP 403; all other applicable configured commit hooks ran.

AI assistance: dot authored, reviewed, and validated the changes. The runtime does not expose its exact model version.

Assisted-by: dot: model version not exposed

---------

Co-authored-by: Codex <codex@openai.com>
2026-10-27 13:29:59 +09:00
Jeong, YunWon 1df1daea3e Fix Windows runtime compatibility issues (#9406)
Correct socket address handling, untracked mappings, directory enumeration, winsound validation, and executable path discovery. Report the vendored Unicode version independently of the Rust toolchain.

Assisted-by: Codex:GPT-5
2026-10-27 13:28:36 +09:00
1ndahous3 415e472a50 Share ctypes backing-owner snapshots between aggregate copies (#9392)
* Share ctypes backing-owner snapshots between aggregate copies

Assisted-by: Codex:GPT-6

* Limit ctypes snapshot helper to supported targets

Assisted-by: Codex:GPT-6

* Clarify ctypes snapshot allocation helper names

Assisted-by: Codex:GPT-6
2026-10-27 10:08:29 +09:00
1ndahous3 85b34cf52b Fix ctypes subclass bitfields and native type metadata (#9395)
Assisted-by: Codex:GPT-6
2026-10-27 10:07:39 +09:00
Jeong, YunWon 20042568fc Decide tp_new inheritance of static types at type initialization (#9386)
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
2026-10-27 10:07:06 +09:00
1ndahous3 cdb39399bd Fix ctypes scalar access, bitfields, and cyclic collection (#9390)
* Fix ctypes scalar access, bitfields, and cyclic collection

Assisted-by: Codex:GPT-6

* Format ctypes pyclass attributes

Assisted-by: Codex:GPT-6
2026-10-26 20:39:14 +09:00
Jeong, YunWon 9848c78bd5 Index the class body prefix range by the source text line (#9384)
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
2026-10-26 20:35:48 +09:00
youknowdot 1052e613ed Preserve interpreter-boundary diagnostics and syslog restrictions (#9365)
* 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
2026-10-26 14:15:38 +09:00
youknowdotandCodex 084f5c7e7a Add native offline profiler codec invariant coverage (#9383)
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>
2026-10-26 14:14:10 +09:00
youknowdot 9710aa5162 Test native IR invariants and harden append-fold helper contract (#9370)
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
2026-10-26 10:12:48 +09:00
youknowdot 1170a337cc refactor: share PyTime conversions with time.sleep (#9362)
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
2026-10-26 10:07:47 +09:00
youknowdot 9bd84b2f13 Handle full-width operands in the None-return scanner (#9347)
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
2026-10-25 15:12:50 +09:00
1ndahous3 db4878080a Collect cycles through sets, frozensets and set iterators (#9343)
Assisted-by: Codex:GPT-6
2026-10-25 15:10:43 +09:00
youknowdotanddependabot[bot] 8c0c242dc8 Align profiler bindings and capability checks with Python 3.15 (#9340)
* Align offline profiler argument binding with Python 3.15

Accept the canonical keyword names for binary sample writes and native
context exits. Resolve the argument layout before numeric callbacks,
then preserve float-subclass payloads while accepting numeric protocols
for required and optional profile statistics.

AI-assisted source extraction, implementation, and source review with
OpenAI Codex. Runtime validation remains pending.

Assisted-by: OpenAI Codex:model version unavailable

* Restore the offline profiler capability flag

Preserve the original mega branch's zero-valued process_vm_readv
capability export. The native live unwinder remains unsupported; this
restores the public feature query without claiming live inspection support
or changing canonical test helpers.

AI-assisted source preservation and review with OpenAI Codex.

Assisted-by: OpenAI Codex:model version unavailable

* Restore finite-EOF table bounds for offline profiles

Match CPython's EOF-wide table count and decoding windows while retaining
checked offsets, allocation limits, cursor bounds, and replay checks.
This restores the original mega's finite-file contract without changing
canonical tests or the already validated argument-binding implementation.

Assisted-by: OpenAI Codex:model version unavailable

* Preserve symtable warning exceptions and original filenames (#9282)

Keep warning-hook exceptions untouched instead of rewriting SyntaxError
subclasses. Thread the original Python filename through parser warning
emission and fresh warning-as-error SyntaxError construction, preserving
fsdecoded bytes paths and lone surrogates.

Assisted-by: OpenAI Codex:model-version-unavailable

* build(deps): align the Cranelift 0.136 dependency family (#9341)

* build(deps): bump the wasmtime group across 1 directory with 2 updates

Bumps the wasmtime group with 2 updates in the / directory: [cranelift](https://github.com/bytecodealliance/wasmtime) and [cranelift-module](https://github.com/bytecodealliance/wasmtime).


Updates `cranelift` from 0.135.2 to 0.136.3
- [Release notes](https://github.com/bytecodealliance/wasmtime/releases)
- [Changelog](https://github.com/bytecodealliance/wasmtime/blob/main/RELEASES.md)
- [Commits](https://github.com/bytecodealliance/wasmtime/commits)

Updates `cranelift-module` from 0.135.3 to 0.136.3
- [Release notes](https://github.com/bytecodealliance/wasmtime/releases)
- [Changelog](https://github.com/bytecodealliance/wasmtime/blob/main/RELEASES.md)
- [Commits](https://github.com/bytecodealliance/wasmtime/commits)

---
updated-dependencies:
- dependency-name: cranelift
  dependency-version: 0.136.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: wasmtime
- dependency-name: cranelift-module
  dependency-version: 0.136.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: wasmtime
...

Signed-off-by: dependabot[bot] <support@github.com>

* Align cranelift-jit with the 0.136 dependency family

Update cranelift-jit alongside cranelift and cranelift-module so the JIT shares their LibCall, FuncId, and Module trait identities. Regenerate only the affected dependency lock entries, preserving the original dependency PR changes.

AI assistance covered the dependency diagnosis, alignment, and static review.

Assisted-by: OpenAI Codex:model-version-unavailable

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Support selective canonical function migration

Add hash-pinned function selection to the official Lib migration tool,
preserving canonical source bytes and rejecting ambiguous dependencies.

Assisted-by: OpenAI Codex:model version unavailable

* Detect CPython runtimes for canonical inspection feature checks

Add native runtime-cookie detection and import the exact Python 3.15
inspection helpers and tests through the official Lib migration tool.
Preserve the offline profiler argument and finite-EOF corrections.

Assisted-by: OpenAI Codex:model version unavailable

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-25 15:09:49 +09:00
youknowdot 5a0ded80dc Preserve symtable warning exceptions and original filenames (#9282)
Keep warning-hook exceptions untouched instead of rewriting SyntaxError
subclasses. Thread the original Python filename through parser warning
emission and fresh warning-as-error SyntaxError construction, preserving
fsdecoded bytes paths and lone surrogates.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-24 14:36:59 +09:00
youknowdotandCodex 413710c107 Complete PyTime conversion fixtures and repair existing helpers (#9317)
* Fix rounding and bounds in existing PyTime test helpers

Extract the already-exposed conversion helper prerequisite from the broader #9143 surface without adding new test C-API exports or changing time.sleep.

Assisted-by: Codex:unknown

* Complete PyTime conversion fixtures in _testinternalcapi

Stack the eight consumed conversion APIs on the existing-helper prerequisite in #9317. Keep the arithmetic local to the real fixture consumers; do not expose _testcapi or change sleep/lifecycle behavior.

Assisted-by: Codex:unknown

---------

Co-authored-by: Codex <codex@openai.com>
2026-10-24 11:29:06 +09:00
youknowdot a788de29da Fix interpolated string warning diagnostic locations (#9314)
* Use closing-token locations for interpolated body warnings

Track CPython string-parser fragment anchors separately from escape source offsets. Preserve scoped error-line text and mode-specific final newlines with lazy sparse location indexing.

Assisted-by: OpenAI Codex:model-version-unavailable

* Fix lint checks for interpolated warning diagnostics

Assisted-by: OpenAI Codex (model version unavailable)

* Match CPython interpolated warning phases and fragment diagnostics

Reconstruct body and format-spec decoder fragments, preserve tokenizer/parser action order and pending Single/type-comment errors, and match Unicode protection plus scoped numeric and ordinary-token diagnostics.

Assisted-by: OpenAI Codex:model-version-unavailable

* Use physical final-line locations for ordinary exec warnings

Keep warning and error coordinates consistent across bare CR, CRLF, and LF while retaining file-input synthetic newlines.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-24 11:28:44 +09:00
youknowdot 1cd1b5d09f Preserve tokenizer-only compiler warning order (#9316)
Use the collected lexical warning order for valid Exec/Eval inputs without parser-origin escape events. Keep tokenizer errors terminal and retain mixed-origin, invalid-source, and Single fallback behavior.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-24 08:11:22 +09:00
youknowdotandyouknowdot 01c65128e4 Replace syn-ext with native syn 3 macro helpers (#9333)
Migrate macro metadata and item handling to syn 3, preserving option diagnostics and doc trimming. Add focused parser and attribute-edit tests.

Assisted-by: OpenAI Codex:model version unavailable

Co-authored-by: youknowdot <336763669+youknowdot@users.noreply.github.com>
2026-10-24 08:08:57 +09:00
Jeongseop LimandJeong YunWon c271e33214 Reject surplus positional arguments before converting any (#9242)
* Count positional arguments before converting any

FuncArgs::bind_for rejected surplus positional arguments only after
FromArgs::from_args had converted every declared parameter. A
conversion can run user code (__iter__ for PyIter, __index__ for
ArgIndex), so filter(None, it, 0), hex(x, 1) and pairwise(it, 0) raised
whatever that code raised instead of the TypeError CPython reports
before it touches any argument.

Check the count against FromArgs::arity() before from_args runs. For
that bound to be safe:

- The default arity() has no upper bound, since a manual impl may take
  positional arguments itself. KwArgs, (), DirFd, OpenDirFd and csv's
  FormatOptions declare the bound they actually have.
- A derived struct adds the upper bound of each flattened field.
- A tuple sums upper bounds with saturating_add.

Assisted-by: Claude Code:claude-opus-5-5

* Note why arity upper bounds saturate

Comment that an unbounded upper bound is usize::MAX, which is why the
tuple and derived arity() sums use saturating_add, and drop the CPython
mention from the positional count check comment.

Assisted-by: Claude Code:claude-opus-5-5

---------

Co-authored-by: Jeong YunWon <jeong@youknowone.org>
2026-10-24 01:02:44 +09:00
youknowdot 0dc77faaab Fix busy interpreter test readiness race (#9328)
Publish readiness only after the main interpreter has completed its first operation, and bound the detached subinterpreter readiness wait. Preserve the original progress assertions, main deadline, and safepoint.

AI assistance covered diagnosis, source changes, review, and focused validation.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-24 01:00:20 +09:00
1ndahous3 3b9a9f4a4c Reuse unchanged string results in affix removal and partitioning (#9324)
* Reuse unchanged string results in affix removal and partitioning

Assisted-by: Codex:GPT-6

* Qualify the ASCII macro in the string test

Assisted-by: Codex:GPT-6
2026-10-24 00:59:43 +09:00
Bas Schoenmaeckers 5dcef1aa6d Add subclass type flags (#9327) 2026-10-23 09:38:01 +00:00
1ndahous3 fd3c3fca64 Return the correct bytes reconstruction arguments (#9326)
Assisted-by: Codex:GPT-6
2026-10-23 18:06:06 +09:00
1ndahous3 33b656fae1 Hash iterable elements directly in set predicates (#9325)
Assisted-by: Codex:GPT-6
2026-10-23 18:05:29 +09:00
1ndahous3 bbbde24061 Share repeated itertools.product pools (#9323)
Assisted-by: Codex:GPT-6
2026-10-23 18:03:11 +09:00
1ndahous3 aa3a851966 Release consumed itertools.tee buffers (#9322)
Assisted-by: Codex:GPT-6
2026-10-23 18:01:54 +09:00
youknowdotandyouknowdot c70e9b8443 Sync selected Python 3.15 core library tests and repr type errors (#9321)
* Sync Python 3.15 core library tests and repr type errors

Synchronize ten selected library paths from CPython 3.15.0 at
d220409a13b77de7a6c30abe16ea90db01528edc using the canonical updater,
retaining existing RustPython adapters and failure markers.

Match generic __repr__ invalid-result errors to the qualified type-name
format required by the canonical ExceptionGroup regression, preserving
string results and exceptions raised by the implementation.

Implementation, source review, and validation were AI-assisted. The model
version identifier is unavailable; automated checks are not human
verification. Bounded validation covers 43 passes and one canonical skip,
not the full repository suites.

Assisted-by: OpenAI Codex:model version unavailable

* Preserve original escape decoder consumed length after callbacks

Keep the original input length as consumed after successful unicode-escape
and raw-unicode-escape decoding, including error-handler input replacement.
Only report the current cursor when a non-final decode stops on incomplete
input, matching CPython's codec wrappers and incomplete exits.

Fix the canonical Unicode escape mutation regression that failed CI on
Linux, macOS and Windows. Preserve all Lib tests and existing assertions.
Bounded Linux validation: 55 passes and one canonical skip, CLI build and
strict common/VM Clippy passed. Full repository suites were not run.

Implementation, source review, and validation were AI-assisted. The model
version identifier is unavailable; automated checks are not human
verification.

Assisted-by: OpenAI Codex:model version unavailable

---------

Co-authored-by: youknowdot <336763669+youknowdot@users.noreply.github.com>
2026-10-23 18:01:14 +09:00
youknowdotandyouknowdot afe5d9030a Separate constructor and instance vectorcall dispatch (#9320)
Keep constructor fast paths separate from per-instance vectorcall support.
Track automatic eligibility without discarding raw support required by
PyVectorcall_Call, and recheck eligibility in retained callable wrappers.

Implementation and source review were AI-assisted. The model version
identifier is unavailable; automated checks are not human verification.

Assisted-by: OpenAI Codex:model version unavailable

Co-authored-by: youknowdot <336763669+youknowdot@users.noreply.github.com>
2026-10-23 17:59:19 +09:00
youknowdotandCodex ec299f3844 Avoid attaching C API worker templates under the interpreter lock (#9318)
Keep worker VM cloning separate from attachment and add a native structural regression test.

Assisted-by: OpenAI Codex

Co-authored-by: Codex <codex@openai.com>
2026-10-23 17:57:47 +09:00
youknowdot 73b6806608 Limit single-input parser warning emission to the first logical input (#9304)
Keep later numeric warnings available after parser warning escalation. Preserve compound tokenizer warning emission and legacy malformed-source fallback.

Assisted-by: OpenAI Codex:gpt-6-astra
2026-10-23 17:54:12 +09:00
youknowdot 94f92e4ab8 Use final numeric character for warning error offsets (#9305)
Assisted-by: OpenAI: GPT-6.1
2026-10-22 23:24:53 +09:00
youknowdot 36f8e8937a Recover numeric warning errors in AST single mode (#9303)
Match ordinary single compilation by allowing later numeric warnings raised as errors to take precedence after a parser-origin escape warning. Preserve tokenizer-origin guards and the separate prompt path.

Assisted-by: Codex:unknown
2026-10-22 23:23:49 +09:00
youknowdot 6c171fffe1 Align mapping collection and call unpacking with Python 3.15 (#9302)
* Align mapping collection and call unpacking with Python 3.15

Preserve iterator exceptions and exact-list results when collecting mapping
methods, defer callable formatting, and retain exact-dict stored hashes.
Synchronize complete test_extcall with CPython v3.15.0.

Assisted-by: Codex:unknown

* Update pickle and pickletools libraries for Python 3.15

Synchronize the six coherent serialization modules with CPython v3.15.0
through update_lib, retaining existing RustPython adaptations.

Assisted-by: Codex:unknown
2026-10-22 23:23:15 +09:00
youknowdotandCodex 0b0a360764 Use __main__ when compiling filesystem scripts (#9301)
Forward script compiler warnings through the typed module-aware entry point. Sync canonical command-line script coverage from CPython d220409a13b77de7a6c30abe16ea90db01528edc with the existing RustPython marker preserved.

Assisted-by: OpenAI Codex:model-version-unavailable

Co-authored-by: Codex <codex@openai.com>
2026-10-22 12:02:16 +00:00
youknowdot eb03691084 Order parser warnings for valid source while preserving recovery boundaries (#9296)
Reuse the parser warning collector only for valid, recovery-eligible source. Preserve malformed-source and tokenizer-origin interpolation fallback.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 10:46:20 +00:00
SeungJe Jeong e57c8db83a Allow same-size bytearray.resize with exported buffers (#9217)
* Allow same-size bytearray.resize with exported buffers

Use the existing export snapshot or exclusive payload access to allow
same-size requests without a recursive read lock in codec callbacks.
Continue rejecting exported length changes and preserve zero filling.

Enable the CPython regression and consolidate resize coverage in the
existing bytearray snippet, including a bounded concurrent callback test.

Assisted-by: Codex:GPT-6

* remove redundant tests
2026-10-22 19:37:21 +09:00
youknowdot 1ba1107115 Align ctypes call ownership and C error state with Python 3.15 (#9218)
* Align ctypes call ownership and C error state with Python 3.15

Keep native raised errors separate from handled exceptions and preserve them across teardown callbacks. Import the related canonical ctypes call and type contracts.

Assisted-by: OpenAI Codex: model version unavailable

* Enumerate ctypes shared libraries natively on Linux and Android

Copy loader-owned names before Python filesystem decoding and update the related canonical ctypes utility and discovery tests from CPython 3.15. Preserve existing platform paths and dllist test markers.

Assisted-by: OpenAI Codex: model version unavailable

* Enable canonical dllist system enumeration coverage on Linux

Regenerate the pinned test through update_lib patches with reviewed marker data. Preserve other platform conditions and the unavailable extension-fixture guard.

Assisted-by: OpenAI Codex: model version unavailable

* Match Python float and long-double C argument representations

Use the existing Python float formatter for float and double C argument representations. Keep long-double arguments on the canonical generic-address representation path. Preserve the unchanged canonical parameter repr assertions.

Assisted-by: OpenAI Codex: model version unavailable
2026-10-22 18:16:22 +09:00
youknowdot 580706fa19 Fix _interpreters shared and updates argument diagnostics (#9295)
Use parameter names in dictionary validation errors to match Python 3.15.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 18:11:58 +09:00
youknowdot e102ccdae1 Use globals module names for eval and exec warnings (#9294)
* Use globals module names for eval and exec warnings

Forward the supplied scope module through compilation warnings while
preserving typed compile entrypoints and missing-name filename fallback.

* Retire the resolved exec warning-filter expected failure

Regenerate test_builtin through update_lib with all other adaptations
preserved after hosted CI reports the canonical method succeeds.
2026-10-22 18:10:44 +09:00
youknowdot 308085dafc Preserve float-subclass values in time.sleep conversion (#9292)
Follow CPython PyFloat_AsDouble without calling float-subclass overrides.
Keep index precedence and other conversion behavior unchanged.

Assisted-by: OpenAI Codex
2026-10-22 14:50:34 +09:00
youknowdot 39bee673a9 Respect static-method binding in builtin __self__ (#9291)
Reuse get_self() so static builtin methods expose None rather than their
stored class receiver, while preserving bound and module receivers.
2026-10-22 14:08:03 +09:00
youknowdot 49f4771e91 Reuse shared awaitable validation for defaulted anext (#9290)
Match CPython 3.15 await-result diagnostics and reject coroutine results
from custom __await__ consistently with the nondefaulted path. Preserve
native-coroutine unwrapping and wrapper state handling.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 13:42:26 +09:00
youknowdot 43368209c5 Support signed numeric constants in match pattern ASTs (#9279)
Recognize numeric Expr::Constant values when validating signed literal
patterns, alongside parser-produced NumberLiteral nodes. Python AST
conversion uses the former representation. Accept unary plus as well as
minus and fold signed real/imaginary and complex patterns consistently.

Boolean and non-numeric constants remain excluded. Preserve the existing
parser-produced literal path and do not change source grammar.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 11:21:10 +09:00
Jeong, YunWonandyouknowdot aba1f5cf69 Align AST construction and replacement with Python 3.15 (#9272)
Validate missing-field metadata, recognize exact generic aliases for list
field defaults, and preserve surrogate names in ordered constructor errors.
Route generated AST replacement methods through the shared argument handler.

Extract the native closure from the 3.15 integration without parser/schema
changes or new library copies. Existing canonical tests remain unchanged.

Assisted-by: OpenAI Codex:model-version-unavailable

Co-authored-by: youknowdot <dot@youknowone.org>
2026-10-22 11:18:52 +09:00