You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: collections._count_elements looks up mapping.get before calling iter() on the iterable #1250
_collections has no _count_elements, so collections._count_elements is the pure-Python fallback in collections/__init__.py. That fallback reads mapping.get before it iterates, while CPython's C helper gets the iterator first. When both arguments are bad, GraalPy raises the mapping's AttributeError and CPython raises the iterable's error.
Operating system
macOS
CPU architecture
ARM64
GraalPy version
master a3009f9 (Python 3.13.14); also reproduced on 25.0.2 (Python 3.12.8)
AttributeError: 'NoneType' object has no attribute 'get'
Expected behavior
CPython 3.13.14 (same on 3.12.13):
TypeError: iter() returned non-iterator of type 'NoneType'
Stack trace
Additional context
CPython's own pure-Python fallback behaves the same way when _collections is blocked, and Counter.update() always passes a mapping that has get, so only direct callers of the private helper see the difference. GraalPy already patches torch._dynamo to substitute collections._count_elements because _collections._count_elements is missing (torch-2.10.0.patch#L540-L553).
Activity