Я хочу скомпилировать некоторый код на Python с помощью Pypy-переводчика rpython.Очень простой игрушечный пример, который ничего не делает:
def main(argv):
a = []
b = set(a)
print b
return 0
def target(driver,args):
return main,None
Если я скомпилирую его как:
python2.6 ~/Downloads/pypy-1.4.1-src/pypy/translator/goal/translate.py --output trypy trypy.py
Он не скомпилируется, а просто останавливается с ошибками, как это:
[translation:ERROR] AttributeError': 'FrozenDesc' object has no attribute 'rowkey'
[translation:ERROR] .. v1 = simple_call((type set), v0)
[translation:ERROR] .. '(trypy:3)main'
[translation:ERROR] Processing block:
[translation:ERROR] block@0 is a <class 'pypy.objspace.flow.flowcontext.SpamBlock'>
[translation:ERROR] in (trypy:3)main
[translation:ERROR] containing the following operations:
[translation:ERROR] v0 = newlist()
[translation:ERROR] v1 = simple_call((type set), v0)
[translation:ERROR] v2 = str(v1)
[translation:ERROR] v3 = simple_call((function rpython_print_item), v2)
[translation:ERROR] v4 = simple_call((function rpython_print_newline))
[translation:ERROR] --end--
Если я уберу функцию set (), она будет работать.Как вы используете наборы в rpython?