bpo-29684: Fix regression of PyEval_CallObjectWithKeywords by methane · Pull Request #87 · python/cpython
methane
changed the base branch from
3.6
to
master
methane
changed the title
bpo-29548: Fix regression of PyEval_CallObjectWithKeywords
bpo-29684: Fix regression of PyEval_CallObjectWithKeywords
akruis pushed a commit to akruis/cpython that referenced this pull request
Never call inter-thread scheduler for a tasklet switch with prev==next. This fixes the first part of issue python#87. Fix an assert, that is no longer valid. Fixes part 2 of issue python#87. Add a test case for two assertion failures during interpreter shutdown. https://bitbucket.org/stackless-dev/stackless/issues/87 (grafted from a6e5950cb45fc1d2d101866c20aea7eb5f005db0, 73f4ac31aa6a and 9f4606055d9c)
colesbury referenced this pull request in colesbury/nogil
There was a period between detaching the PyThreadState on thread exit and abandoning the heap where a GC thread might see an inconsistent state of the heap. See #87
This was referenced
SonicField added a commit to SonicField/cpython that referenced this pull request
… gates Per pythia python#87 (2026-04-23 02:39Z) + supervisor [chat L2626]: §4 amendment (sufficient → necessary-not-sufficient): - Bridge-inventory falsification PASS confirms inventory completeness ONLY - PASS does NOT confirm semantic equivalence of new C body vs deleted C++ - Empirical proof: push 84 95c9f9b PASSED §4 mutation but W21 golden still detected register-allocation HIR regression in attr_probe; PhxCallKind dispatch fix at 1553c14 required - §4 alone insufficient; semantic-equivalence requires separate gates §4b NEW SECTION (semantic-equivalence gates, MANDATORY): - W21 golden (catches register-alloc drift, opcode-dispatch shifts, HIR construction-order changes — push 84 case-in-point) - Falsifier suite 6/6 (sole-path force_compile) - Force_compile sole-path execution (per scripts/gate_phoenix.sh, 5 mainline functions) - Caveat: __static__-only paths have no sole-path coverage per W27e accepted-residual L2531+L2533 Cross-link added: feedback_dispatch_glue_categorization.md for PARTIAL stub Cat-A/B falsifiable test. General principle (future workstream specs): post-Step-B falsification test as NECESSARY-but-NOT-SUFFICIENT. Inventory-PASS does not substitute for semantic-equivalence verification. Pythia python#87 redefining-on-landing meta-concern addressed structurally: spec language now distinguishes the two gate classes.
SonicField added a commit to SonicField/cpython that referenced this pull request
Per supervisor [chat L2626] + L2742 + librarian L2737 (close pythia python#87 python#3 ephemera-gap durably). Captures empirical W26 push 84 incident (95c9f9b → 1553c14 fix): - Both cinder_opcode_ids.h + Include/opcode.h use Py_OPCODE_H guard - Include order silently shadows whichever loads second - W26 case: BINARY_OP_ADD_INT undefined → attr_probe HIR regression caught by W21 golden trip-wire Three resolution options enumerated: - (A) rename cinder_opcode_ids.h guard to CINDERX_OPCODE_IDS_H — recommended, eliminates collision class - (B) static_assert in cinder_opcode.h to detect collision at compile — hardens detection without fixing - (C) header-comment only — current state, NOT recommended (chat- ephemera proven insufficient) Related W29 candidate noted: PHX_PRIM_OP_* / PHX_PRIM_UOP_* hard-coded in builder_emit_c.c lines 3727-3746 with no static_assert binding to classloader.h authoritative #defines (per pythia python#89 python#3 re-issue). DEFERRED per supervisor — schedule post-Batch-2 burndown, before any upstream sync touching Include/opcode.h or classloader.h.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters