Предисловие
Существует стандартная Python реализация, известная как CPython .Но это не единственный, в настоящее время я работаю с альтернативной реализацией с именем PyPy .
Проблема
У меня странное несоответствие вповедение PyPy & CPython реализации Python3,5 в Windows 10 x64 со следующим фрагментом (благодаря @Gabriel, завершенный пример)
>>> from itertools import repeat
>>> repeat(None, 2**31)
в CPython дает
repeat(None, 2147483648)
, в то время как в PyPy он заканчивается ошибкой с нечетным сообщением
Traceback (most recent call last):
File "<input>", line 1, in <module>
OverflowError: int too large to convert to int
но когда я пытаюсь выполнить этот фрагмент в PyPy внутри Docker контейнера
docker run -it pypy:3-6
, он работает нормально, как CPython version.
Я знаю, что Windows версия находится в стадии бета-тестирования, но кто-нибудь может объяснить, почему она так себя ведет и что говорит это сообщение об ошибке (или что оно должно сказать)?
Обновление
Для CPython Однако следующий оператор
>>> repeat(None, 2**63)
дает
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C ssize_t
- эти ошибки somehow связаны?