Open da-woods opened 2 days ago
My guess is that https://github.com/python/cpython/pull/122620 is to blame. Specifically removing this deopt https://github.com/python/cpython/pull/122620/files#diff-729a985b0cb8b431cb291f1edb561bbbfea22e3f8c262451cd83328a0936a342L2221
If a value is NULL
, then the usual invariants on keys might not apply to that key.
Suppose we had a dict {'a': 'b'} with a table looking like this:
key |
value |
---|---|
"a" | "b" |
"a" | NULL |
I'm not sure how such a table would come into being, but it might be possible through a convoluted sequence of additions and deletions
If a STORE_ATTR_WITH_HINT had index=1 and key="a" then it would change the table to
key |
value |
---|---|
"a" | "b" |
"a" | NEW_VALUE |
which definitely isn't legal.
I tried to compile numpy from @markshannon fix branch and the Cython compilation suddenly worked. Thank you!
Bug report
Bug description:
To be clear - this issue is just about running the Cython itself (i.e. pure Python code). It is not about compiled extension modules.
To reproduce
https://github.com/cython/cython.git
git checkout daed3bce0bf0c6fb9012170cb479f64e8b9532cd
(probably not important, but let's make sure we're all definitely starting from the same point).python3.14 cython.py Cython/Compiler/Parsing.py
- this runs Cython on one of its own filesYou get an output that ends with
To try to debug it some more I add a constructor to
TupleNode
(in Cython/Compiler/ExprNodes.py at line 8627) with a breakpoint:So the the constructor call to
TupleNode
args
isNone
. But in the function it's being called from it's a list containing aNameNode
(which is what I think it should be). That's as far as I've got with debugging.This has apparently been bisected to https://github.com/python/cpython/pull/122620 (but not by me).
CPython versions tested on:
3.14
Operating systems tested on:
Linux
Linked PRs