Commit Graph
17656 Commits
Author SHA1 Message Date
dot 2191a9d0c8 Fix 3.15 script validation and exception cleanup contracts
Recognize common None loads when checking script returns. Keep the public cache tag version-derived while retaining the private DA16 format boundary. Release the thread-slot borrow before exception decrefs can finalize an interpreter.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 21:13:56 +09:00
dot 487ae47f3c Reconcile compiler with current main and reviewed prerequisites
Preserve the frozen publication checkpoint separately. Integrate main 9ea138c8, mapping 7d06dd085, and bytearray 108171d without extending compiler implementation scope. Source-only integration; historical test results are not fresh validation of this tree.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 15:17:51 +09:00
dot 9e0541bba1 Update compiler prerequisite base to reviewed bytearray source
Integrate verified source-less initialization fix 108171d and its published ancestors. No separate comparison optimization is included. Source-only integration checkpoint; new validation remains pending.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 15:17:51 +09:00
dot 5e7e7cc8fa Reconcile compiler prerequisite base with current main
Source-only integration checkpoint; new validation remains pending.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 15:17:49 +09:00
dot 6ad56c808e Anchor compiler review to its prerequisite stack
Merge the genuine prerequisite review base without changing the verified compiler candidate source tree. Historical validation belongs to candidate 275962170a, tree 13cd8aef7dbee7dacad773afd5ca04dfc1e82328; this commit only records base ancestry.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 15:10:22 +09:00
dot b54a634a36 Prepare compiler prerequisite stack base
Combine the reviewed mapping prerequisite and bytearray buffer prerequisite used by compiler candidate 275962170a. This branch is a temporary review base, not a mainline merge.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 15:10:12 +09:00
dot 108171daa2 Finish source-less bytearray initialization after clearing
Preserve option validation and initial export rejection, then avoid a redundant resize guard and storage swap when no source was provided. Keep zero-count callback behavior and all existing regressions.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 14:48:48 +09:00
dot f163e13710 Consolidate bytearray regressions in the builtin snippet
Preserve all existing regression bodies and coverage while following the requested snippet organization.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 14:24:38 +09:00
youknowdot 9ea138c889 Canonicalize f-string field spacing in annotations (#9077)
Ignore incidental formatted-value whitespace while retaining brace-leading safeguards and literal/debug text. Include compile-only annotation-constant coverage.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 13:38:23 +09:00
youknowdot 896e07d9fa Implement mkfifo with directory descriptor support (#9056)
Support directory-relative FIFO creation. Retry interrupted path opens while releasing the interpreter and honoring signal-handler exceptions; preserve raw directory descriptors across callbacks.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 13:36:37 +09:00
dot a0fec1f8c0 Stage bytearray buffer callbacks outside receiver locks
Keep operation-specific export and release ordering for comparisons, searches, affix tuples and translation. Resolve padding arguments before borrowing the receiver, and retain buffer owners through computation without holding bytearray locks across Python callbacks.

Add bounded Python regressions for callback mutation, reentrant initialization, lazy affixes, subclass protocols and ordered cleanup.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 12:00:20 +09:00
dot 9fdae0a3f7 Fix bytearray concatenation buffer callback reentrancy
Acquire both operand exports before borrowing their bytes and release them in CPython order. Cover reentrant initialization, mutable callbacks and export cleanup through public concatenation APIs.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 11:20:19 +09:00
dot fcd4f4c8ae Release bytearray initializer storage and check deletion indices
Reset initializer storage before zero-count callbacks and returns. Validate integer deletion indices with a nonblocking snapshot before export rejection where possible, then revalidate under the resize guard. Preserve fast export rejection when contended to avoid codec callback deadlocks.

Add Python regressions for exported-empty rejection, initializer capacity release, callback ordering, and ordinary deletion error precedence.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 10:39:35 +09:00
dot 275962170a Reconcile reviewed dictionary error handling with compiler candidate
Merge the exact reviewed PR8951 hash-error repair without changing compiler or canonical library sources.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 09:01:31 +09:00
dot b33adafe86 Project private constant specializations in public adaptive bytes
Traverse immutable canonical boundaries and preserve arguments and cache cells. Retain public specialization IDs and reject the unsupported legacy iterator encoding. Add ordinary warmed and monitoring regressions.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 08:58:14 +09:00
dot 7d06dd0859 Preserve final dictionary hash-error context and formatting
Share exact-TypeError rewriting between dict and frozendict without attaching a cause. Propagate string and repr callback failures using final BaseException argument formatting, leaving global diagnostic behavior unchanged. Add bounded Python coverage for context, identity, and formatting failures.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 08:12:32 +09:00
dot cafc576332 Align local opcode argument conversion with final Python 3.15
Preserve binder-first and opcode-first conversion order, accept index operands and explicit None, and validate jump by identity. Keep shared diagnostic wording gaps and platform limits explicit.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 08:00:25 +09:00
dot 6e2a962b3f Pin opcode checks to final Python 3.15 without rewriting canonical Lib
Keep executable and public Rust metadata checks, verify exact Python sources read-only, and cover generator dependencies and outputs in manual hooks.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 07:32:58 +09:00
dot 1adb5923d7 Expose pinned Python 3.15 public opcode metadata independently of execution
Generate final-source public descriptors and stack effects without enabling unsupported execution opcodes. Retain explicit calling-conversion and adaptive-export gaps.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 07:28:07 +09:00
dot ae5154275c Align eight disassembly snapshots with final CPython 3.15
Preserve every test source and assertion. Each updated snapshot body matches both certified final CPython and the integrated candidate with exact final opcode/dis metadata. Retain original snapshots and comparison provenance in the local validation evidence.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 06:47:21 +09:00
dot de15dfe13c Import final CPython 3.15 opcode and dis metadata
Copied only opcode.py, its _opcode_metadata.py dependency, and dis.py using scripts/update_lib copy-lib from pinned CPython d220409a13b77de7a6c30abe16ea90db01528edc. Local validation stage; Rust prerequisites retain merge-order precedence.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 06:38:19 +09:00
dot 6281493ef1 Reconcile compiler 3.15 work with main and mapping prerequisites
Combine the independently preserved compiler ABI/storage/writer/cache series with current main, frozendict support, and the bytearray buffer-race repair. Preserve prerequisite Lib imports exactly; no new opcode/dis imports. Combined runtime validation remains pending.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 06:23:01 +09:00
dot b5d942d412 Share compilation-local constants and surviving code fields
Finalize supported constants and five assembly field owners through one private compilation pool. Preserve typed and signed-zero keys, explicit NaN/code/slice exclusions, and frozen/reader/constructor boundaries. Keep real owners and existing marshal policy.

Focused checks and bounded behavior pass. Expanded strict corpus retains three pre-existing frozenset-order mismatches; full marshal/public format parity and integration gates remain unresolved.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 06:09:18 +09:00
dot d0819a2fab Serialize bytearray exports with resizing
Keep descriptor acquisition and export retention under the bytearray read lock, and recheck exports after acquiring a resize lock. Guard initializer and sequence deletion writes, preserve zero-index initialization callbacks, and match RawIOBase.read buffer ownership without bypassing export checks.

Add bounded Python export-lifetime and concurrent decode/memoryview regression coverage.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 05:33:55 +09:00
dot 2ddab15f0a Select marshal references from actual object ownership
Observe physical ownership before common-writer lookup, preserving the exact interned-string exception and all real table and transport owners. Add full versioned stream, container, lifetime and bounded thread-churn regressions.

Focused validation improves ordinary exact streams from86 to118 of150; code corpus full parity and native borrowed-call ownership remain unresolved.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 05:02:08 +09:00
dot 4b23214edb Route canonical code fields through the common marshal writer
Retain real per-write reference owners and serialize stable code-field objects, including canonical monitored bytecode. Preserve the legacy compiler/frozen path and existing reference selection policy.

Focused checks pass; full byte parity, public cache format, native ownership and Lib integration remain open.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 04:20:30 +09:00
dot c6ddfae40d Preserve decorator rationale during canonical test copying
Reject differing decorator source blocks even when their ASTs match. Cover inline and multiline marker comments, guarded async methods, and CLI no-write behavior.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 04:02:02 +09:00
dot c8e9bd6552 Retain stable runtime code-field owners
Represent runtime constants with one immutable tuple owner and copy-on-write compiler views. Finalize code fields with Context, retain public reader field objects, and preserve canonical normalization without mutating published tuples.

Add owner-lifetime, reader-hook and Python identity coverage. Focused checks, Clippy, native tests and finite compiler capture verified. Full integration and marshal byte parity remain pending.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 03:37:40 +09:00
dot 6746df059e Preserve canonical code bytes across runtime instrumentation
Capture immutable normalized bytecode before publication and lazily retain one public bytes object. Reconstruct replacement code from canonical instructions. Add cold, warmed, decoded, frozen, monitored and generator-flags coverage.

Focused VM check/Clippy, native behavior, certified reference and strict finite corpus validated. Full workspace/CAPI/release follow-on validation remains pending; no serialization parity claim.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 02:33:27 +09:00
dot 28623c11ef Align frozendict copy support and tests with CPython 3.15
Import exact-final copy.py with update_lib; defer Mapping ABC registration to the later library stage. Generate only proven marker corrections, retain observed debug recursion-limit expected failures, and copy the complete canonical builtin-doc discovery test using hash-pinned update_lib copy-test.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 02:23:36 +09:00
dot 4c16e68d10 Support scoped canonical test updates in update_lib
Index conditional test classes and methods without crossing namespaces, reject ambiguous targets, and preserve inherited override indentation. Add hash-pinned whole-test copying that verifies execution context and exact source bytes, with focused Python fixtures.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 02:23:36 +09:00
dot 66863fb56b Restore consolidated frozendict implementation on current main
Preserve reverse dictionary iterator fixes and the 3.15 frame imports. Keep library refreshes separate pending the runtime dependency sequencing decision.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 02:23:36 +09:00
youknowdot f39da82d9d Prefer resolved executable symlinks in POSIX virtual environments (#9058)
Resolve executable symlinks for virtual-environment paths while retaining macOS framework launcher behavior. Include directory-canonicalization and launcher regressions, using core for UTF-8 checks.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 02:07:08 +09:00
youknowdot 924ef2f434 Match hashlib constructor name type diagnostics (#9066)
Use native type names, None spelling, and UTF-8 byte precision for invalid name arguments without changing accepted strings or hashing behavior.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 02:06:41 +09:00
youknowdot 4638b6a5f3 Raise IndexError for oversized SQLite blob indices (#9048)
Use index-sized conversion, preserve __index__ exceptions, and bound native type names to the UTF-8-safe diagnostic limit. Include in-memory blob read and write regressions without changing callback ownership.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 01:10:08 +09:00
youknowdot 37fdf4d2d9 Fix native ABC checks when __class__ is missing (#9067)
Retain the native fallback and Python regression without modifying bundled Lib sources.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 01:08:16 +09:00
dot a974ec938d Align compiler and VM with pinned CPython 3.15 ABI
Couple opcode/cache/stack metadata with iterator pairs, generator preambles, ordinary import packing, common constants, compiler lowering and VM/JIT consumers. Pin official source/tool hashes and retain strict raw code and marshal comparisons.

Use private development magic 0xDA16 and cache tag devabi2 until serialization and Python integration are coherent. Final clean corpus matches recursive code fields in 111/111 requests; full marshal/header exactness remains 0/111. Eight existing disassembly tests remain blocked by unchanged Lib metadata. Monitoring export and frozendict/update_lib integration remain explicit follow-on gates.

Validation: compiler-core 23, codegen 807, CAPI 121 (4 existing ignored), focused certified-controller pytest, release/frozen witnesses, workspace and CAPI all-target Clippy. Independent source/artifact review covers manifest ec1013591ae97b4c519f4a2c78a8200664f3479f0c5452991b5fea4d1be669ea.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-12 00:20:11 +09:00
1ndahous3 a10744303f Release SQLite aggregate instances outside locks (#9014)
Assisted-by: Codex:gpt-6
2026-10-11 23:50:12 +09:00
youknowdot 2ab8af332f Preserve Expat qualified names without namespace expansion (#9070)
Retain raw element and attribute prefixes when namespace_separator is None. Keep expanded names and parser configuration unchanged, with regression coverage in the pyexpat snippet.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-11 23:48:08 +09:00
youknowdot 1fa883b9b5 Match Element.remove argument type diagnostics (#9068)
Match native type names, None spelling, and UTF-8 byte limits while preserving removal behavior. Keep all six regression cases in the existing XML snippet.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-11 23:47:18 +09:00
youknowdot 4e3b2f4039 Keep REPL history-save errors from replacing exit status (#9081)
Restore the two-line fix from #9078 onto main after it was merged into the Python 3.15 staging branch.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-11 22:52:19 +09:00
youknowdot d88c9350fb Restore Python 3.15 TextIOWrapper chunk-size deletion semantics (#9082)
Check initialization and attachment before rejecting deletion, and use the final reference error message. Preserve initialized, uninitialized, detached, ASCII-subclass, and non-ASCII-subclass regression cases with their exact Python 3.15 outcomes. No bundled Lib files change.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-11 21:36:02 +09:00
youknowdotandJeong, YunWon 06007c81fa Begin the Python 3.15 target and essential-library migration (#8950)
* Target Python 3.15 using the final upstream reference

Update active version and comparison configuration to Python 3.15.0. Preserve the alpha implementation status, actual bytecode format, and existing libraries pending separate migration. Align generated library-upgrade workflow pins without changing permissions or actions.

Assisted-by: OpenAI Codex:model identifier unavailable

* Adapt essential snippet contracts to Python 3.15 final

Preserve existing coverage while following verified final behavior for script metadata, builtin signatures and loading, AST fixture construction, memoryview diagnostics, mmap search bounds, and struct format errors. The unchanged final comparator exposes the earlier expectations; focused native baseline failures establish the required implementation changes.

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep final-reference regression paths and remove expired sysconfig argument

Preserve reverse multiplication syntax and native exact overflow diagnostics. Accept the two source-proven CPython 3.15 specialization messages only in affected reverse str/bytes/tuple cases. Use an actually out-of-range Windows datetime errno fixture. Remove the sysconfig check_home argument at its existing canonical 3.15 removal test boundary.

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep README wording unchanged in Python 3.15 transition

Assisted-by: OpenAI Codex:model identifier unavailable

* Match Python 3.15 repetition specialization and keep universal tests

Use exact sequence-type guards and preserve generic fallback diagnostics. Validate both cold and warmed expressions without implementation-specific assertions. Reject stale CPython source checkouts and cross-version library caches.

Assisted-by: OpenAI Codex:model identifier unavailable

* Limit in-place specialization additions to exact sequence repetition

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep subclass regression scoped to repetition dispatch

Assisted-by: OpenAI Codex:model identifier unavailable

* Provision final CPython 3.15 with pinned uv builds

Assisted-by: OpenAI Codex:model identifier unavailable

* Enforce Python 3.15 AST constructor requirements

Reject retired missing-field and arbitrary-keyword forms while preserving defaults and explicit placeholders. Sync only matching final CPython constructor test hunks.

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep seeded Python ahead of its Windows DLL directory

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep opcode metadata tied to the implemented bytecode format

The interpreter target and reference tests use Python 3.15.0, but the current Rust opcode enum retains the 3.14 bytecode format. Generate metadata from its matching source rather than importing unsupported instruction families.

Assisted-by: OpenAI Codex:model identifier unavailable

* Align CSV, logarithm and decimal formatting with Python 3.15

Propagate dialect lookup errors except AttributeError, retry integer logarithms after float overflow, and update the decimal conversion diagnostic. Exercise the final reference contracts without implementation-specific branches.

Assisted-by: OpenAI Codex:model identifier unavailable

* Bind the logarithm index result before borrowing its integer

Assisted-by: OpenAI Codex:model identifier unavailable

* Align required canonical test expectations with Python 3.15

Take only demonstrated contract changes from CPython v3.15.0, d220409a13b77de7a6c30abe16ea90db01528edc: removed module __cached__, Struct format exception classes, and decimal-format diagnostic. Preserve unrelated tests and expectations.

Assisted-by: OpenAI Codex:model identifier unavailable

* Track pending frozendict pickle support during the 3.15 transition

Keep the two existing frozendict pickle tests running as expected failures until #8951 supplies the builtin. Unexpected success will signal removal of these temporary markers.

Assisted-by: OpenAI Codex:model identifier unavailable

* Support final Python 3.15 Windows negative timestamps

Use FILETIME for pre-epoch conversions and preserve precise Windows timestamp errors.

Assisted-by: OpenAI Codex:model identifier unavailable

* Derive historical Windows timezone offsets from wall time

FILETIME reports historical DST as unknown, so calculate the actual offset rather than selecting standard-time bias.

Assisted-by: OpenAI Codex:model identifier unavailable

* Identify decimal formatting arguments in Python 3.15 errors

Track consumed positional arguments, including star width and precision, and preserve mapping key representations in decimal conversion diagnostics.

Assisted-by: OpenAI Codex:model identifier unavailable

* Reuse mapping format keys for lookup and error context

Assisted-by: OpenAI Codex:model identifier unavailable

* Borrow mapping diagnostic keys as Python objects

Assisted-by: OpenAI Codex:model identifier unavailable

* Avoid empty components in the reference Python library path

Assisted-by: OpenAI Codex:model identifier unavailable

* Isolate RustPython bytecode caches during the 3.15 transition

Assisted-by: OpenAI Codex:model identifier unavailable

* Sync final Windows timestamp test expectations

Import only the final CPython platform-limit guards and mktime roundtrip expectation required by the existing Windows CI suite.

Assisted-by: OpenAI Codex:model identifier unavailable

* Restore official Python setup for 3.15 final

Use the existing pinned setup-python action now that its official catalog supplies CPython 3.15.0. Remove the temporary standalone provisioning action and its sparse-checkout entry while retaining interpreter outputs and requested versions.

Assisted-by: OpenAI Codex:model identifier unavailable

* Align merged runtime contracts with Python 3.15 final

Restrict mappingproxy ordering, use final codec registry normalization, and prefer index conversion before float conversion for sleep. Retain universal Python assertions and import the matching final codec/time canonical test hunks plus the non-ASCII codec-name deprecation warning.

Upstream source: CPython d220409a13b77de7a6c30abe16ea90db01528edc. The existing codec normalization implementation and bytecode contract remain unchanged.

Assisted-by: OpenAI Codex:model identifier unavailable

* Limit Windows launcher version check to its interpreter

Exclude only the CPython py.exe version-identity case from RustPython CI. The installed launcher reports its own final version, while RustPython correctly remains alpha. Preserve the other 45 launcher cases and all RustPython version assertions without modifying Lib.

Assisted-by: OpenAI Codex:model identifier unavailable

---------

Co-authored-by: Jeong, YunWon <69878+youknowone@users.noreply.github.com>
2026-10-11 12:57:49 +09:00
youknowdotandJeong, YunWon 4dc50cc472 Validate mmap assignments against current storage (#9071)
* Preserve ParamSpec bounds as in Python 3.14.8

Extract the backported bound-validation removal and align the CPython reference pin to 3.14.8 so both snippet interpreters exercise the same contract.

Assisted-by: OpenAI Codex:model identifier unavailable

* Align TextIOWrapper chunk-size deletion with Python 3.14.8

The 3.14.8 reference pin exposes the Argument Clinic deletion guard moved before initialization and attachment checks by CPython 90a1f02b7da0c356d10a23f1faee7dc063f887ed. Preserve assignment checks and align the exact deletion error, including subclass type names.

Assisted-by: OpenAI Codex:model identifier unavailable

* Validate mmap assignments against current storage

Use the existing mapping guard for bounds and writes after argument conversion, including empty assignments. Match the Python 3.14.8 ordering while preserving export guards and ownership APIs.

Assisted-by: OpenAI Codex:model identifier unavailable

* Align mmap boundary regression with Python 3.14.8

Include the matching upstream GH-158027 test-data correction: use an integer RHS so the unchanged IndexError assertion checks index bounds after conversion. Preserve the runtime assignment and storage guards.

Assisted-by: OpenAI Codex:model identifier unavailable

---------

Co-authored-by: Jeong, YunWon <69878+youknowone@users.noreply.github.com>
2026-10-11 12:35:15 +09:00
youknowdot 8d27253fa2 Canonicalize nested template format specs in annotations (#9076)
Use the existing f-string body unparser for template interpolation format specs, while preserving the outer interpolation source text. Add compile-only Python annotation-constant coverage.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-11 09:17:01 +09:00
youknowdot 1cbae85e20 Keep coroutine generator expressions on the ordinary call path (#9075)
Match Python 3.14 by excluding coroutine-marked generator expressions from builtin call optimization. Reuse the existing cursor-preserving comprehension lookup so nested outer iterable scopes do not select the wrong symbol table; propagate lookup errors.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-10 21:25:50 +00:00
youknowdot eb6cefd765 Mark LRU cache wrappers as method descriptors (#9072)
Match the Python 3.14 wrapper type flag and enable the existing guarded method-call fast path. Keep the partial vectorcall changes separate.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-10 21:17:08 +00:00
youknowdot 44858012f4 Preserve missing caller modules in eager type aliases (#9073)
Only lazy aliases may obtain their module from the evaluation function. Eager aliases without a caller __name__ must not inspect their stored value.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-10 21:05:21 +00:00
youknowdot 1ff5bbd920 Accept the format keyword in Struct initialization (#9064)
Keep the existing conversion and initialization path while binding format as positional-or-keyword, matching Python 3.14.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-10 19:31:54 +00:00
youknowdot 92204385cd Count the complete Windows locale encoding suffix (#9065)
Include modifiers in the 15-byte bound before calling the CRT, matching Python 3.14.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-10 19:26:08 +00:00