* Update ten Python library modules to Python 3.15 final
Migrate dependency-ordered linecache, locale, _pydecimal, decimal, random, uuid, wave, _strptime, zipapp and poplib with their canonical tests and WAV fixtures using update_lib.
Assisted-by: OpenAI Codex:model version unavailable
* Align dependent datetime and warning tests with Python 3.15 final
Generate complete dependent tests and pure datetime through update_lib from CPython d220409a13b77de7a6c30abe16ea90db01528edc. Preserve the existing tracemalloc expected failure. Pass warning module metadata to WarningMessage, use sys context after stack exhaustion, and identify invalid category classes with the existing qualified-name helper.
Assisted-by: OpenAI Codex:model version unavailable
* Align compiler and VM with final CPython 3.15 bytecode
Reconstruct the compiler-only baseline from validated487ae47 on the current main and frozen mapping prerequisitec78d811. Preserve the full source delta while dropping obsolete prerequisite ancestry; detailed old-to-new provenance is retained in the recovery artifact.
Assisted-by: OpenAI Codex: model identifier unavailable
* Fix final script validation, exception cleanup and private cache contracts
Replay reviewed compiler CI repairs 2191a9d, 1f1fe04, a2dacaf on the frozen current prerequisite. Intermediate compile/diagnostic corrections are combined where they address the same failure.
Assisted-by: OpenAI Codex: model identifier unavailable
* Align canonical compiler fixtures and generator frame state
Replay reviewed compiler CI repairs 476bb74 on the frozen current prerequisite. Intermediate compile/diagnostic corrections are combined where they address the same failure.
Assisted-by: OpenAI Codex: model identifier unavailable
* Preserve code-name owners and final warning and constant-fold contracts
Replay reviewed compiler CI repairs 6482adf on the frozen current prerequisite. Intermediate compile/diagnostic corrections are combined where they address the same failure.
Assisted-by: OpenAI Codex: model identifier unavailable
* Skip unavailable monitoring C API tests before tool registration
Replay reviewed compiler CI repairs 246c309 on the frozen current prerequisite. Intermediate compile/diagnostic corrections are combined where they address the same failure.
Assisted-by: OpenAI Codex: model identifier unavailable
* Assert exact final constant-list iterable folding
Replay reviewed compiler CI repairs 7ecedcf on the frozen current prerequisite. Intermediate compile/diagnostic corrections are combined where they address the same failure.
Assisted-by: OpenAI Codex: model identifier unavailable
* Align local monitoring events and exception lifecycle state with final 3.15
Replay reviewed compiler CI repairs ec206b1, 191fe58 on the frozen current prerequisite. Intermediate compile/diagnostic corrections are combined where they address the same failure.
Assisted-by: OpenAI Codex: model identifier unavailable
* Align 3.15 code objects and codegen with CPython
- Store co_consts, co_names, co_localsplusnames, co_localspluskinds,
co_linetable, co_exceptiontable and co_name as objects on PyCode;
build co_code and the varnames/cellvars/freevars tuples lazily in
_co_cached, with co_code deoptimized through deopt_code.
- Move the compiler constant cache (_PyCode_ConstantKey,
const_cache_insert) to builtins/code/const_cache.rs.
- Write every code field with w_object in marshal and pass the read
field objects to MarshalBag::make_code through CodeFields.
- Emit RETURN_GENERATOR/POP_TOP in enter_scope and place SETUP_CLEANUP
after them; drop the generator part of insert_prefix_instructions.
- Add PyCode::first_traceable (_co_firsttraceable) for
_PyFrame_IsIncomplete and sys.monitoring.
- Follow the CPython DISABLE branches in sys.monitoring, the
check_matched signature in warnings, the 3.15 % format error
messages for str and bytes, code_returns_only_none, and the FOR_ITER
stack analysis.
- Compute IMPORT_NAME flags with in_exception_handler.
- Replace the linetable/exceptiontable byte tests in codegen with
dis(show_positions=True) insta snapshots in _opcode.
- Remove the opcode metadata verification tooling, byte-exact
scripts, private cache tests and redundant snippets.
- Restore test_code.py and test_monitoring.py to v3.15.0 plus
RUSTPYTHON markers.
Assisted-by: Claude Code:claude-opus-5-5
* Remove generator snippet checks covered by Lib/test
Drop extra_tests/snippets/generator_iterator_prefix.py. Its loop,
delegation, async, f_back and never-awaited checks are covered by
test_generators, test_coroutines, test_asyncgen, test_yield_from and
test_monitoring. Move the remaining checks into existing files:
genexpr prefix tracing and monitoring into stdlib_sys.py, and the
caller frame seen from the eager iterator into stdlib_sys_getframe.py.
Assisted-by: Claude Code:claude-opus-5-5
* Emit the generator prefix for top-level await modules
Module code compiled with PyCF_ALLOW_TOP_LEVEL_AWAIT and marked
ste_coroutine now starts with RETURN_GENERATOR; POP_TOP. The prefix and
RESUME emission move into emit_scope_prefix, shared by enter_scope and
the module entry points, as in codegen_enter_scope. Fixes
test_builtin.test_compile_top_level_await.
Assisted-by: Claude Code:claude-opus-5-5
* Allow the c_long cast in _opcode.stack_effect
c_long is i32 on Windows, where clippy reports the cast to i32 as
unnecessary.
Assisted-by: Claude Code:claude-opus-5-5
* Update malachite crates to 0.14.0
pymath requires malachite-bigint ^0, so the example projects, which
have no lock file, resolve it to 0.14.0 while the workspace pinned
0.13.0, and fail to build.
Assisted-by: Claude Code:claude-opus-5-5
---------
Co-authored-by: dot <dot@youknowone.org>
* Implement _collections.OrderedDict
Extracted from #6799: native OrderedDict as a dict subclass,
iterator mutation tracking, and mapping-view set operations.
* Add OrderedDict, warnings source lines, and socket sendmsg
Implement _collections.OrderedDict as a dict subclass with a
linked list of insertion-order nodes.
Pack struct F/D as native float/double complex pairs, and report
unexpected __replace__ field names as a list repr.
Register encodings.latin_1 at startup. Reject NUL in input()
prompts. Copy non-exact type dicts in mapping order.
Fetch warning source lines through _bless_my_loader and unicode
splitlines. Keep the last warnings.filters list after deletion.
Snapshot sendmsg sequences before converting buffers, parse
ancillary ints with __index__, and dispatch AF_CAN by protocol.
Store sys.trace and sys.profile on each ThreadSlot so
_settraceallthreads/_setprofileallthreads are visible to
sys.gettrace/getprofile on other threads.
Use <frozen importlib._bootstrap> as frozen importlib
co_filename. Keep HEAPTYPE socket objects GC-tracked.
Assisted-by: Grok:grok-4.6
* Load marshal via readinto and dump sets in dumps order
marshal.load fills a scratch buffer with readinto on a
contiguous writable memoryview, and rejects a returned length
other than the requested size.
set and frozenset dumps write elements in sorted(v,
key=marshal.dumps) order.
Assisted-by: Grok:grok-4.6
* Add classmethod_descriptor and ABC IS_ABSTRACT flags
Give METH_CLASS methods a distinct classmethod_descriptor type.
Store Py_TPFLAGS_IS_ABSTRACT from __abstractmethods__ and look
up that attribute only in the type's own dict.
Expose defaultdict.default_factory as a member descriptor.
Inherit bool's unused number slots from int. Mark set and
frozenset __contains__ as METH_COEXIST.
Parse classmethod, staticmethod, object.__new__, and heap type
text signatures. Register interactive source in linecache.
Assisted-by: Grok:grok-4.6
* address review: odict reuse, descr call, new wrapper
Reuse odict node slots and walk the live list in next_after.
Require both | operands to be dicts. Drop the odict iterator
on GC clear. Bind classmethod descriptors through descr_get
and update IS_ABSTRACT under the type lock. Give odict keys
and items sq_contains. Walk tp_new_wrapper past new_wrapper
so HEAPTYPE socket subclasses can call socket.__new__.
Split FreeBSD Bluetooth protocol constants from Linux values.
Assisted-by: Grok:grok-4.6
* Represent chflags bits with bitflagset
Assisted-by: Grok:grok-4.6
* Represent access and mode bits with bitflagset
Assisted-by: Grok:grok-4.6
* Continue unfinished REPL suites as incomplete input
Assisted-by: Grok:grok-4.6
* Add pickle and os.stat inspect signatures
Give _pickle.Pickler the clinic constructor text signature and
accept fix_imports and buffer_callback as positional-or-keyword.
Allow #[pyfunction(text_signature)] and use it so os.stat reports
(path, *, dir_fd=None, follow_symlinks=True). Uncomment import
_pickle and drop the pickle inspect expectedFailures.
Assisted-by: Grok:grok-4.6
* Add Unpickler, dump/load, and lstat signatures
Give _pickle Unpickler, dump, dumps, load, and loads clinic
text signatures, and os.lstat (path, *, dir_fd=None).
Assisted-by: Grok:grok-4.6
* Complete OrderedDict with insertion-order links
Move the native OrderedDict into ordered_dict.rs and track order
with a linked list of nodes, keeping mapping-view set operations.
Assisted-by: Grok:grok-4.6
* address CI: stat casts, HCI_DATA_DIR, passing xfails
Compare stat permission bits as Mode so Linux clippy does not
flag a u32-to-u32 cast. Export HCI_DATA_DIR with the Bluetooth
socket option values. Drop expectedFailure from tests that now
pass.
Assisted-by: Grok:grok-4.6
* Fix wasm teardown deadlock and bluetooth constants
Assisted-by: Grok:grok-4.6
* Clear process-wide eval breaker bits in STW test
Assisted-by: Grok:grok-4.6
* Drop exclusive-held panic that tripped wasm clippy
Assisted-by: Grok:grok-4.6
* Fix OrderedDict contains and export Windows BDADDR
Assisted-by: Grok:grok-4.6
* Add cmp_to_key and hash-once LRU cache
_functools.cmp_to_key now returns KeyWrapper. LRU lookups store the
key hash on _lru_list_elem so __hash__ is not called again on hits
or eviction.
Assisted-by: Grok:grok-4.6
* Allow subclass keywords on list, tuple, and float
list.__init__ rejects keywords only when tp_new is still list's.
tuple/float.__new__ reject them only when tp_init is still the base's.
Assisted-by: Grok:grok-4.6
* Fix CI lint, test re-export, and structseq members
Drop the duplicate clear_eval_breaker_for_test re-export.
Format structseq imports. Expose struct sequence fields as
readonly members so assignment raises "readonly attribute".
Assisted-by: Grok:grok-4.6
* Allow subclass keywords on itertools and filter
Positional-only constructors ignore extra keywords when a subclass
has replaced tp_init, matching list/tuple/float.
Assisted-by: Grok:grok-4.6
* Remove text_signature derive parameter
Drop the string override on #[pyfunction] and #[pyclass]. Signatures
are generated from the Rust parameter list only. Restore inspect
expectedFailures that depended on the override.
Assisted-by: Grok:grok-4.6
* Rename set contains_method to __contains__
Keep a borrowed contains helper for slots and C-API. The coexist
pymethod is named __contains__.
Assisted-by: Grok:grok-4.6
* Use MonitoringEvent instead of EVENT_* aliases
Drop the unused MonitoringEvents bitflags and the EVENT_PY_START
style mask constants. Call sites use the enum and .mask().
Assisted-by: Grok:grok-4.6
* Store warnings filters as PyListRef
The list already serializes its elements. Drop the extra mutex around
the cached list pointer.
Assisted-by: Grok:grok-4.6
* Re-export clear_eval_breaker_for_test after rebase
Keep the STW test helper visible without bringing back stop_bit_set.
Assisted-by: Grok:grok-4.6
* Fix groupby reentrancy and islice arguments
Give _grouper its own tgtkey and take currvalue after the key
comparison. Accept __index__ on islice bounds, reject step 0, and
drain the source up to stop.
Assisted-by: Grok:grok-4.6
* SETREF warnings filters, onceregistry, and defaultaction
Keep the last list, dict, or str after the module attributes are
deleted by swapping the interpreter cache pointer. Do not store a
None fallback for _warnings_context.
Assisted-by: Grok:grok-4.6
* Iterate OrderedDict inner dict via next_entry
&PyDict is not an iterator after the borrowed-ref signature change.
Assisted-by: Grok:grok-4.6
* Remove expectedFailure from testBluetoothConstants
Linux now exports BTPROTO_HCI and the rest of the set.
Assisted-by: Grok:grok-4.6
* Borrow get_filter arguments as PyObject
Match the warn_explicit call site that passes borrowed
handles after the internal-helper borrow change.
Assisted-by: Grok:grok-4.6
* Fix bool slots and SemHandle safety docs
Leave unused bool number slots unset so inspect reports
__add__ on int. Document SemHandle::from_raw safety.
Assisted-by: Grok:grok-4.6
* Keep sendmsg errors and drop duplicate linecache
Replace sendmsg iterable TypeError only. Register REPL
source in linecache once per compiled input.
Assisted-by: Grok:grok-4.6
* Nest REPL parse or-patterns for clippy
Assisted-by: Grok:grok-4.6
* Mark pydoc os.stat signature test expectedFailure
Assisted-by: Grok:grok-4.6
---------
Co-authored-by: Lee Dogeon <dev.moreal@gmail.com>
- excepthook: call traceback._print_exception_bltin instead of
traceback.print_exception to match PyErr_Display behavior
- run_string: register compiled code in linecache._interactive_cache
so traceback can display source lines and caret indicators
- Remove test_sys_tracebacklimit expectedFailure
- Add already_warned() with filter version tracking
- Add type validation for _defaultaction and _onceregistry
- Use direct function names for _warnings pyattr/pyfunction
- Route stdlib::warnings::warn through warn::warn
- Remove spurious EncodingWarning from TextIOWrapper
- Clean up comments and simplify check_matched error handling
- Remove expectedFailure from 3 passing test_warnings tests
* Update Lib/warnings to CPython 3.14
* Add context_aware_warnings setting
XXX- The default setting of this and thread_inherit_context should be
true.
* Unmark passing test
* Mark failing tests
* Skip failing test in test_sys for now
Updating test_sys to CPython 3.14 is beyond the scope of this PR.
* test_improper_option is fixed
---------
Co-authored-by: Jeong, YunWon <jeong@youknowone.org>