1
Это простая программа, написанная для решения CodeJam's recycled numbers (я знаю, что ее можно улучшить).Простая программа (2 для циклов) сбой в PyPy при работе с CPython
Он работает с CPython, но падает с PyPy v1.8 с ошибкой:
RPython traceback:
File "jit_metainterp_compile.c", line 19477, in send_loop_to_backend
File "jit_backend_x86_assembler.c", line 2293, in Assembler386_assemble_loop
File "jit_backend_x86_regalloc.c", line 462, in RegAlloc_prepare_loop
File "jit_backend_x86_regalloc.c", line 1027, in RegAlloc__prepare
File "jit_backend_x86_regalloc.c", line 3657, in RegAlloc__compute_vars_longevity
Fatal RPython error: AssertionError
[1] 8440 abort pypy cj.py
Код:
#!/usr/bin/env python2
def permutations(a,b,x):
y = str(x)
cnt = 0
for i in range(1,len(y)):
j = int(y[i:]+y[:i])
if j == x:
break
elif j > x and j >= a and j <= b:
cnt += 1
return cnt
nc = int(raw_input())
for c in xrange(nc):
a, b = map(int,raw_input().split())
cnt = 0
for i in range(a,b+1):
cnt += permutations(a,b,i)
print "Case #%i: %i" % (c+1, cnt)
Пример ввода:
4
1 9
10 40
100 500
1111 2222
Хм, просто работал для меня как в окнах CPython 2.7.2 (64-разрядных), так и в PyPy 1.8.0 (32-разрядный) (хотя у меня была ошибка EOF в обоих, пока я не изменил первую строку на 3). Возможно, у вас что-то сломано в вашей установке PyPy, есть ли какие-либо другие программы, которые плохо работают в PyPy? –
@JohnGainesJr .: Извините, я отключил последнюю строку ввода, которая была главным виновником причинения аварии. Я подтвердил, что он рушится и для других. – wting