Commit Graph
17827 Commits
Author SHA1 Message Date
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
Jeong, YunWonandyouknowdot f0b1e82652 Add tracing profiler and Python 3.15 offline profiling tools (#9271)
* Add deterministic profiler and canonical Python 3.15 tools

Use the merged operation critical sections with interpreter-bound profiler
entry checks and short payload borrows. Trace owned code references for GC.
Import the canonical tracing and offline profiling output closure via the
repository updater, retaining existing test markers.

Assisted-by: dot:GPT-6.1

* Clarify standalone profiling license cross-reference

Preserve license terms and copyright notices; point to the reproduced
Apache text below instead of CPython's original OpenSSL section above.

Assisted-by: dot:GPT-6.1

* Defer unsupported sampling package from profiler extraction

Keep the deterministic tracing profiler and its canonical tools together.
Defer the entirely new sampling production, tests, assets and their license
as one closure until native record and binary-collector support is ready.
Retain canonical pstats for deterministic empty-profile handling; its
upstream sampled-file sorting issue is not patched here.

Assisted-by: dot:GPT-6.1

* Stage profiling root as a namespace until sampling is available

Omit the whole newly added canonical package initializer rather than
advertise an absent sampling module or hand-edit canonical __all__.
Explicit profiling.tracing and cProfile imports remain available.
The namespace root intentionally lacks canonical metadata/automatic exports.

This addresses test___all__ failures in the prior Linux, macOS and Windows
CI runs. No test assertions, skips or canonical file contents are changed.

Assisted-by: dot:GPT-6.1

* Match canonical static builtin profiler labels and metadata

Normalize the raw builtin receiver instead of its call-argument accessor.
Snapshot static method module metadata at construction, matching CPython,
so explicit module mutation and deletion remain observable. Avoid a
profiler-time fallback that would obscure deleted metadata.

Correct float.__getformat__ to CPython's classmethod calling convention,
including subclass binding, rather than special-casing its profiler label.

Assisted-by: dot:GPT-6.1

* Support collision-safe frozen package containers

Generate empty frozen packages only for source namespace directories with
real frozen descendants. Preserve genuine modules and packages across
frozen-library registrations while retaining real-real replacement order.

Record the container marker in FrozenModule and its library envelope;
legacy module/package encodings remain unchanged. This is closed-tree
frozen packaging, not full PEP 420 namespace merging.

Add structural codec, mock generator, and registration-priority checks.

* Revert frozen package containers before restoring canonical profiling root

The container implementation changed filesystem namespace precedence.
Restore the existing importer and frozen envelope unchanged; the following
offline sampling closure restores the canonical regular package root.

This reverses d5a8049234.

Assisted-by: dot:GPT-6.1

* Restore canonical profiling package with offline sampling codec

Provide native records, status constants and genuine uncompressed binary
reader/writer APIs for canonical offline tools. Keep the unsupported live
process capability absent and preserve existing canonical test gates.
Restore the complete selected sampling production/test/assets closure via
update_lib, including its asyncio frame-schema dependency. The prior frozen
container extension is reverted separately; canonical packages work with
both filesystem and frozen imports without changing namespace semantics.

Assisted-by: dot:GPT-6.1

* Keep platform-dependent C long normalization explicit

Allow only the c_long-to-i32 conversion lint: Windows uses the same type,
while LP64 requires the existing truncation to match CPython normalization.
No runtime behavior or test assertions change.

Assisted-by: dot:GPT-6.1

* Include profiling notices in library and desktop packages

Bundle a byte-identical copy of the root profiling notice in rustpython-pylib
and include the root notice in configured desktop resources. Avoid a symlink
so Windows checkouts preserve the actual notice text. Terms are unchanged.

Assisted-by: dot:GPT-6.1

* Keep profiling asset license notice in pylib crate

* Serve frozen profiling assets through native resource readers

* Preserve canonical profiling asset line endings on checkout

---------

Co-authored-by: youknowdot <dot@youknowone.org>
2026-10-22 11:18:03 +09:00
dependabot[bot] 6b3f29f055 build(deps): bump socket2 from 0.6.4 to 0.6.5 (#9281)
Bumps [socket2](https://github.com/rust-lang/socket2) from 0.6.4 to 0.6.5.
- [Release notes](https://github.com/rust-lang/socket2/releases)
- [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/socket2/commits/v0.6.5)

---
updated-dependencies:
- dependency-name: socket2
  dependency-version: 0.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-22 10:18:24 +09:00
dependabot[bot] 3944d55d07 build(deps): bump uuid from 1.26.1 to 1.28.0 (#9280)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.26.1 to 1.28.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.26.1...v1.28.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-22 10:17:54 +09:00
youknowdot e50103281d Fix single-input multiple-statement diagnostic ranges (#9289)
Preserve comment spans and count a logical newline once when converting
single-mode multiple-statement diagnostics to character locations.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 10:17:41 +09:00
youknowdot f482e0c2cf Track Unpickler payload references during cyclic GC (#9288)
Traverse input callbacks, buffer iterators, memo slots and memo proxy owners.
Clear outgoing payload edges through deferred drops and retire successful
reinitialization state outside the state lock. Retain stream and buffers
payload-cycle regressions in the existing pickle snippet.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 10:17:06 +09:00
youknowdot 5aab0db07d Align duplicate-parameter diagnostics with Python 3.15 (#9287)
* Align duplicate-parameter diagnostics with Python 3.15

Preserve source names and locations in both symbol-table paths, and migrate
the existing canonical codeop expectation through update_lib.

Assisted-by: OpenAI Codex: model version unavailable

* Sync positional-only duplicate-parameter expectations

Migrate the full pinned CPython 3.15.0 test file through update_lib. Its only delta is six existing expected messages, completing the dependent canonical wording coverage.

Assisted-by: OpenAI Codex: model version unavailable
2026-10-22 10:16:23 +09:00
youknowdot 3b87cbe559 Mark wrapper descriptors as method descriptors (#9286)
* Mark wrapper descriptors as method descriptors

Match CPython 3.15 wrapper_descriptor flags so existing method lookup
can use the descriptor's direct receiver-prepending dispatch path.

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

* Retire fixed wrapper monitoring expected failure

Regenerate test_monitoring from pinned CPython 3.15.0 with the updater, preserving every other adaptation. The METHOD_DESCRIPTOR flag now supplies the canonical receiver in int.__repr__ CALL/C_RETURN events.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 10:15:53 +09:00
youknowdot 5b2f898887 Fix Python 3.15 doc generation and add artifact-only mode (#9285)
Use inspect's raw own-doc helper on Python 3.15, retaining the old
pydoc helper for earlier versions. Separate artifact generation from
repository publication, with an explicit main-only artifact mode.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 10:15:30 +09:00
youknowdot 4bd4320932 Align coroutine await-result diagnostics with Python 3.15 (#9284)
Report the qualified awaitable and returned type when __await__ does not
produce an iterator, preserving the existing coroutine/iterator checks.
Migrate test_coroutines.py from pinned CPython v3.15.0 through update_lib.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 10:13:11 +09:00
youknowdot b976859e8d Sync canonical Python 3.15 GUI libraries and tests (#9283)
Refresh the IDLE, Tkinter and turtle family through update_lib, including
the direct canonical text-only helper and image fixture dependencies.
Preserve capability/display guards without changing native Tk support.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-22 10:12:45 +09:00
Jeong, YunWonandyouknowdot bcfad3554e Align symbol table introspection with Python 3.15 (#9277)
Accept the module keyword when building symbol tables and emit only parser
warnings through the existing bounded warning path. Preserve source filenames
and warning-to-SyntaxError conversion without compiling bytecode.

Expose canonical lambda and generator-expression names while retaining
already-bracketed comprehension names. Synchronize symtable and its tests
from pinned CPython 3.15.0 through update_lib, including cell introspection.

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

Co-authored-by: youknowdot <dot@youknowone.org>
2026-10-22 01:54:22 +09:00
youknowdot 2be9389f2d Read native pickle file payloads incrementally (#9260)
Bound the initial file read, grow later requests geometrically, use fallible reservation for input buffers, and compare frame bounds without addition overflow.

Assisted-by: Codex:unknown (model version not exposed)
2026-10-22 01:11:26 +09:00
Jeong, YunWonandyouknowdot 44c905ebe3 Preserve append sequences when constant folding declines (#9276)
Collect representable constants before replacing append-sequence instructions
with NOPs. A valid LOAD_COMMON_CONSTANT may not have a ConstantData value, so
returning false must leave the helper's instruction sequence unchanged.

Cover list, set and ListToTuple tails with a direct native IR invariant.
No change to normal constant-folding behavior or canonical Lib tests.

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

Co-authored-by: youknowdot <dot@youknowone.org>
2026-10-22 01:09:58 +09:00
dependabot[bot] 9cb2d05d22 build(deps): bump cc from 1.5.1 to 1.8.0 (#9275)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.5.1 to 1.8.0.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.5.1...cc-v1.8.0)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-22 01:09:35 +09:00
dependabot[bot] 41108b54aa build(deps): bump rustls from 0.23.45 to 0.23.46 (#9274)
Bumps [rustls](https://github.com/rustls/rustls) from 0.23.45 to 0.23.46.
- [Release notes](https://github.com/rustls/rustls/releases)
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustls/rustls/compare/v/0.23.45...v/0.23.46)

---
updated-dependencies:
- dependency-name: rustls
  dependency-version: 0.23.46
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-22 01:09:26 +09:00
Jeong, YunWonandyouknowdot a2c864208c Keep the mutex handoff test waiter locked until observation (#9273)
Hold the existing waiter's lock through the parent's immediate fast-acquire
sample, then release and join it before asserting the recorded outcome.
Do not change the production mutex or its existing fairness setup delay.

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

Co-authored-by: youknowdot <dot@youknowone.org>
2026-10-22 01:09:10 +09:00
cf56c1fa09 build(deps): bump xml from 1.3.0 to 1.4.0 (#9253)
* build(deps): bump xml from 1.3.0 to 1.4.0

Bumps [xml](https://github.com/kornelski/xml-rs) from 1.3.0 to 1.4.0.
- [Changelog](https://github.com/kornelski/xml-rs/blob/main/Changelog.md)
- [Commits](https://github.com/kornelski/xml-rs/compare/1.3.0...1.4.0)

---
updated-dependencies:
- dependency-name: xml
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Remove stale XML test expected failure

Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
2026-10-21 19:58:21 +09:00
1ndahous3 bd85943b62 Default absent CreateProcess startup attributes (#9267)
* Default missing CreateProcess startup attributes

Assisted-by: Codex:GPT-6

* Use a single platform guard for winapi tests

Assisted-by: Codex:GPT-6
2026-10-21 19:57:55 +09:00
youknowdotandJeong YunWon 97bd4af533 Add interpreter-bound operation critical sections (#9215)
* Factor shared interpreter stop-the-world guard

Move the existing collector barrier into the VM without changing its stop, restart or ownership behavior, preparing reuse by fork.

Assisted-by: dot:GPT-6.1

* Add interpreter-bound operation section primitive

Prepare attached-only ownership acquisition and detached observer parking with private per-interpreter scope stacks. Lifecycle wiring follows separately; no profiler consumer is enabled by this commit.

Assisted-by: dot:GPT-6.1

* Suspend operation sections at VM lifecycle boundaries

Integrate detach, stop-the-world, shutdown and interpreter-switch boundaries. Reuse the all-interpreter barrier for fork repair and add focused native ownership invariants.

Assisted-by: dot:GPT-6.1

* Replace operation sections with PyMutex critical sections

Add PyMutex with the lock.c protocol: LOCKED/HAS_PARKED bits, a bounded
spin, direct handoff to waiters parked longer than 1 ms, and detaching
while parked.

Rebuild critical sections on PyMutex with the stack kept as a tagged
pointer in ThreadSlot: single and two-mutex sections, recursive
top-most skipping, locking skipped while the world is stopped,
SuspendAll on detach/suspend/shutdown and Resume of the top-most
section on attach. Fork carries the stacks into the replacement slots.

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

* Check attachment around critical-section suspension

Assert that a thread entering a critical section is attached, and
suspend sections in do_suspend only while the slot is still ATTACHED.

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

---------

Co-authored-by: Jeong YunWon <jeong@youknowone.org>
2026-10-21 19:57:21 +09:00
dependabot[bot] b6b6446718 build(deps-dev): bump launch-editor from 2.14.1 to 2.14.2 in /wasm/demo (#9269)
Bumps [launch-editor](https://github.com/vitejs/launch-editor) from 2.14.1 to 2.14.2.
- [Commits](https://github.com/vitejs/launch-editor/compare/v2.14.1...v2.14.2)

---
updated-dependencies:
- dependency-name: launch-editor
  dependency-version: 2.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-21 05:15:21 +00:00
youknowdot 70a2cb20b5 Preserve surrogates in ImportError repr (#9252)
Use the existing WTF-8 representation interface for the base exception and name/path fields, avoiding lossy conversion of legal Python __repr__ results.

AI assistance: OpenAI Codex prepared the correction and validation. Model version is not exposed in this session.

Assisted-by: Codex:unknown (model version not exposed)
2026-10-21 12:43:30 +09:00
dependabot[bot] 1cc366362b build(deps): bump CodSpeedHQ/action from 5.2.1 to 5.4.2 (#9222)
Bumps [CodSpeedHQ/action](https://github.com/codspeedhq/action) from 5.2.1 to 5.4.2.
- [Release notes](https://github.com/codspeedhq/action/releases)
- [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codspeedhq/action/compare/373d6868929f444bc08d901fd0eb0ad52a8875ea...f842b9a3ffe213dbb81768fd7f7eeb4dfcf1c369)

---
updated-dependencies:
- dependency-name: CodSpeedHQ/action
  dependency-version: 5.4.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-21 12:07:18 +09:00
1ndahous3 11a6455c61 Fix ctypes assignment conversion and backing-buffer retention (#9251)
* Fix ctypes assignment conversion and backing-buffer retention

Assisted-by: Codex:GPT-6

* Preserve ctypes assignment metadata and pointer-width writes

Assisted-by: Codex:GPT-6

* Enable passing Windows console tests

Assisted-by: Codex:GPT-6
2026-10-21 12:06:39 +09:00
youknowdot a96c0570a8 Avoid epoll alias ownership aborts (#9250)
Keep Python-visible epoll descriptors in a raw host wrapper, preserving fromfd aliasing and explicit close errors without OwnedFd drop aborts. Use native epoll event layout behind a transparent host-only type and align positive timeout overflow with CPython milliseconds.

Assisted-by: OpenAI Codex:model-version-unavailable
2026-10-21 12:05:27 +09:00
dependabot[bot] 3f93abfb33 build(deps): bump crc32fast from 1.5.0 to 1.5.2 (#9254)
Bumps [crc32fast](https://github.com/srijs/rust-crc32fast) from 1.5.0 to 1.5.2.
- [Commits](https://github.com/srijs/rust-crc32fast/compare/v1.5.0...v1.5.2)

---
updated-dependencies:
- dependency-name: crc32fast
  dependency-version: 1.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-21 12:04:06 +09:00
Bas Schoenmaeckers 2ae701e825 Add a test for PyType_FromSpec (#9258) 2026-10-21 12:02:11 +09:00
1ndahous3 b0142d0464 Implement socket.recvmsg_into on Unix (#9268)
Assisted-by: Codex:GPT-6
2026-10-21 12:01:27 +09:00
1ndahous3 02f4fbbb62 Use ordinary fileno lookup in select (#9266)
* Use ordinary fileno lookup in select

Assisted-by: Codex:GPT-6

* Share select descriptor conversion

Assisted-by: Codex:GPT-6
2026-10-21 11:59:10 +09:00
1ndahous3 6f2d4a203d Share immutable tokenizer state between iterations (#9265)
Assisted-by: Codex:GPT-6
2026-10-21 11:58:48 +09:00
1ndahous3 0f7c1843a4 Fix benchmark execution and library dependency reports (#9264)
* Fix benchmark execution and library dependency reports

Assisted-by: Codex:GPT-6

* Clarify relative benchmark interpreter paths

Assisted-by: Codex:GPT-6
2026-10-21 11:58:17 +09:00
dependabot[bot] e315e80258 build(deps-dev): bump follow-redirects in /wasm/demo (#9263)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.16.0 to 1.16.1.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.16.0...v1.16.1)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-version: 1.16.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-21 11:57:53 +09:00
youknowdot 587358ba5c Support private names in native pickle globals and bound methods (#9259)
Preserve WTF-8 dotted paths in protocol 4/5 global loading so private-name round trips also support surrogate-containing names.

Assisted-by: Codex:unknown (model version not exposed)
2026-10-21 11:57:16 +09:00
dependabot[bot] 657bab336e build(deps): bump schannel from 0.1.29 to 0.1.30 (#9248)
Bumps [schannel](https://github.com/steffengy/schannel-rs) from 0.1.29 to 0.1.30.
- [Release notes](https://github.com/steffengy/schannel-rs/releases)
- [Commits](https://github.com/steffengy/schannel-rs/compare/v0.1.29...v0.1.30)

---
updated-dependencies:
- dependency-name: schannel
  dependency-version: 0.1.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-20 15:25:18 +00:00
Bas Schoenmaeckers fb9c099511 Flatten Py_slot_subslots and Py_tp_slots in PySlot iterator (#9246)
* Flatten `Py_slot_subslots` and `Py_tp_slots` in `PySlot` iterator

* Review

* Add support for metaclass slots
2026-10-21 00:23:05 +09:00
dependabot[bot] ce2ef3317f build(deps): bump winresource from 0.1.31 to 0.1.34 (#9249)
Bumps [winresource](https://github.com/BenjaminRi/winresource) from 0.1.31 to 0.1.34.
- [Commits](https://github.com/BenjaminRi/winresource/commits)

---
updated-dependencies:
- dependency-name: winresource
  dependency-version: 0.1.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-21 00:19:43 +09:00
youknowdot bb97696c9c Include name and path in ImportError repr (#9247)
Extract the independent Python 3.15 ImportError representation change from the upgrade work. Preserve BaseException positional arguments and include explicitly present name/path attributes for ImportError and ModuleNotFoundError.

AI assistance: OpenAI Codex prepared the extraction and validation. Model version is not exposed in this session.

Assisted-by: Codex:unknown (model version not exposed)
2026-10-20 23:50:19 +09:00
1ndahous3 ebb6a78521 Preserve reflected multiplication for sequence subclasses (#9228)
Assisted-by: Codex:GPT-6
2026-10-20 22:40:26 +09:00
dependabot[bot] b4a1ad232f build(deps): bump https://github.com/rbubley/mirrors-prettier (#9226)
Bumps [https://github.com/rbubley/mirrors-prettier](https://github.com/rbubley/mirrors-prettier) from v3.9.9 to 3.9.10.
- [Commits](https://github.com/rbubley/mirrors-prettier/compare/v3.9.9...v3.9.10)

---
updated-dependencies:
- dependency-name: https://github.com/rbubley/mirrors-prettier
  dependency-version: 3.9.10
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-20 20:10:39 +09:00
Jeong, YunWon cdb5cca177 Use the Ruff fork 0.17.1 for CPython syntax error messages and the obsolete '<>' hint (#9212)
* Use the RustPython Ruff fork 0.17.1 from git and place EOF errors by kind

- The ruff crates come from the RustPython/ruff `rustpython-0.17.1`
  branch at 93967836c8 instead of the 0.16.10 crates.io release.
- `EofToken.known_location` is replaced by `EofErrorLocation`
  (Tokenizer, Token, StartingFromToken), chosen from the parse error kind.
  The keyword scan in `clause_keyword` is removed, since the parser now
  reports a forced `:` as `ExpectedForcedToken`.
- An empty import at EOF ends at the end of the line read, and an empty
  import before a newline is an empty range at the newline.

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

* Report the obsolete `<>` from the parser outside Barry mode

- Bump the RustPython/ruff fork to 9290a88495, where the parser reports an
  adjacent `<` and `>` in a comparison as "invalid syntax.  Maybe you meant
  '!=' instead of '<>'?" over both tokens.
- Outside Barry mode, `BarrySource` no longer searches the source text for
  `<>`, so the parser's error is reported unchanged. A `<>` that starts a
  statement is reported at the `<` only, and `<<>` at the `>`.

Assisted-by: Claude Code:claude-opus-5-5
2026-10-20 20:09:30 +09:00
youknowdotandJeong YunWon 70c3f6c06d Align signal wakeup errors and delivery with Python 3.15 (#9199)
* Align signal wakeup error handling with Python 3.15

Assisted-by: OpenAI Codex:model version unavailable

* Preserve CRT error state during signal wakeup writes

Assisted-by: OpenAI Codex:model version unavailable

* Represent nullable Windows CRT parameter handlers safely

Assisted-by: OpenAI Codex:model version unavailable

* Rework signal wakeup error delivery to follow signalmodule.c

- Report pending wakeup write/send errors after Python signal handlers
  and VM pending calls, and re-arm the eval breaker when a handler or
  pending call raises.
- Save and restore errno once in run_signal around trip_signal instead
  of inside each write path; stop preserving _doserrno.
- Add crt_fd::write_noraise and use it for the Unix and Windows wakeup
  writes, sharing the single-write helper with _write.
- Keep pending wakeup errors across fork.
- Revert the suppress_iph handler type change and the unrelated quote
  change in test_signal.

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

* Represent nullable Windows CRT parameter handlers as Option

_set_thread_local_invalid_parameter_handler takes and returns a nullable
function pointer; declare it as Option<InvalidParamHandler> so a NULL
previous handler is restored as None.

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

---------

Co-authored-by: Jeong YunWon <jeong@youknowone.org>
2026-10-20 20:08:49 +09:00
youknowdot 145749e580 Keep regression collector tracebacks plain in JSON (#9245)
Normalize inherited exception formatting once so structured results and terminal details share uncolored traceback strings, even when colors are forced. Add synthetic ordinary and subtest failure/error coverage without changing existing assertions.

Implementation and focused validation were AI-assisted with OpenAI Codex.

Assisted-by: OpenAI Codex: model version unavailable
2026-10-20 20:06:23 +09:00
1ndahous3 89bc9d99d9 Exclude setup cleanup from microbenchmark measurements (#9244)
Assisted-by: Codex:GPT-6
2026-10-20 19:57:06 +09:00
Jeongseop Lim d634f2649c Check enumerate() arguments before calling iter() (#9241)
EnumerateArgs bound the iterable as PyIter, so argument binding called
__iter__ before start was converted and before surplus positional
arguments were rejected. An exception from __iter__ then replaced the
TypeError CPython raises for a bad start or a third argument.

Bind the iterable as an object and call get_iter() in py_new, after
start is converted, which is the order of CPython's enum_new_impl.

Assisted-by: Claude Code:claude-opus-5-5
2026-10-20 19:55:56 +09:00
dependabot[bot] 5de0425b21 build(deps): bump rustls-native-certs from 0.8.4 to 0.8.5 (#9239)
Bumps [rustls-native-certs](https://github.com/rustls/rustls-native-certs) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/rustls/rustls-native-certs/releases)
- [Commits](https://github.com/rustls/rustls-native-certs/compare/v/0.8.4...v/0.8.5)

---
updated-dependencies:
- dependency-name: rustls-native-certs
  dependency-version: 0.8.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-20 19:53:35 +09:00
dependabot[bot] f396174f7a build(deps): bump junction from 2.0.0 to 2.1.0 (#9238)
Bumps [junction](https://github.com/tesuji/junction) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/tesuji/junction/releases)
- [Changelog](https://github.com/tesuji/junction/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tesuji/junction/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: junction
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-20 19:53:18 +09:00
1ndahous3 0c5fa209a8 Support Linux Bluetooth socket addresses (#9243)
Assisted-by: Codex:GPT-6
2026-10-20 19:52:57 +09:00