Quiero compilar un código python usando el traductor rpython de pypy. Un ejemplo muy simple juguete que no hace nada:¿Cómo inicializar un conjunto() en el código que se compilará como el rpython de pypy?
def main(argv):
a = []
b = set(a)
print b
return 0
def target(driver,args):
return main,None
Si compilo como:
python2.6 ~/Downloads/pypy-1.4.1-src/pypy/translator/goal/translate.py --output trypy trypy.py
no compila, más bien sólo se detiene con errores o menos así:
[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] [email protected] 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--
Si saco la función set(), funciona. ¿Cómo se usan los sets en rpython?
Parece ser un problema con PyPy, no con su código. – orlp
¿Has probado 'b = set()'? Entonces 'b.add (x)' si es necesario? – TryPyPy
Entonces, parece que uno no usa conjuntos en RPython ... Los viejos dictados deberían funcionar, ¿no? – TryPyPy