Parrot is a virtual machine
for running programming langagues.
Pirate is a Python
compiler that targets parrot..
PIRATE TEST RESULTS last run: Fri Jul 3 08:00:34 EDT 2009 this file is generated daily from the latest versions of pirate and parrot. EEEEEEEFEFEFFEFEEEEEEEEEFEEEEEEEEEEEEEFEEEFFFFEEEEEFFEEEEE.EFE ====================================================================== ERROR: test_PARROT_INLINE ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, intestFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_arg_order ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_assignment ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_augmented_assignment ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_bitwise ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_break ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_class ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_compare ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_continue ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_del_key (__main__.PirateTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 81, in test_del_key res = self.pirate_invoke( File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_dict ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_discard_listcomp ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1770, in invoke code = compile(tree) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1761, in compile return Dispatch(simplify(ast)).getCode() File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1757, in Dispatch vis.preorder(ast, inst) File "/usr/lib/python2.4/compiler/visitor.py", line 63, in preorder self.dispatch(tree, *args) # XXX *args make sense? File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1310, in visitDiscard self.compileExpression(node.expr) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 315, in compileExpression return meth(node, allocate) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 877, in expressSimpleListComp self.append(self.set_lineno(node)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 148, in set_lineno if (node.lineno is not None and AttributeError: SimpleListComp instance has no attribute 'lineno' ====================================================================== ERROR: test_euclid (__main__.PirateTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 94, in test_euclid res = pirate.invoke(open("benchmarks/euclid.py").read()) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_except_called_raise ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_for ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_for_else ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_generator ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_global ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_if ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_instance ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_int ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1772, in invoke print >> i, code IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_lambda ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_lambda_anonymous ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_lexical_scope ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_list ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_listcomp ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1770, in invoke code = compile(tree) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1761, in compile return Dispatch(simplify(ast)).getCode() File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1757, in Dispatch vis.preorder(ast, inst) File "/usr/lib/python2.4/compiler/visitor.py", line 63, in preorder self.dispatch(tree, *args) # XXX *args make sense? File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 910, in visitPrintnl self.visitPrint(node) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 902, in visitPrint arg = self.compileExpression(n) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 315, in compileExpression return meth(node, allocate) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 877, in expressSimpleListComp self.append(self.set_lineno(node)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 148, in set_lineno if (node.lineno is not None and AttributeError: SimpleListComp instance has no attribute 'lineno' ====================================================================== ERROR: test_listcomp_item ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1770, in invoke code = compile(tree) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1761, in compile return Dispatch(simplify(ast)).getCode() File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1757, in Dispatch vis.preorder(ast, inst) File "/usr/lib/python2.4/compiler/visitor.py", line 63, in preorder self.dispatch(tree, *args) # XXX *args make sense? File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 910, in visitPrintnl self.visitPrint(node) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 902, in visitPrint arg = self.compileExpression(n) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 315, in compileExpression return meth(node, allocate) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 373, in expressSubscript base = self.compileExpression(node.expr, allocate=-1) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 315, in compileExpression return meth(node, allocate) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 877, in expressSimpleListComp self.append(self.set_lineno(node)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 148, in set_lineno if (node.lineno is not None and AttributeError: SimpleListComp instance has no attribute 'lineno' ====================================================================== ERROR: test_logic ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_math ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_methods ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_microthreads ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_microthreads_more ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_multi_return ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_nested_call ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_nested_subscripts ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_range ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_recursion ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_return_tuple ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_shift ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_simple_listcomp ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1770, in invoke code = compile(tree) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1761, in compile return Dispatch(simplify(ast)).getCode() File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1757, in Dispatch vis.preorder(ast, inst) File "/usr/lib/python2.4/compiler/visitor.py", line 63, in preorder self.dispatch(tree, *args) # XXX *args make sense? File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib/python2.4/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 910, in visitPrintnl self.visitPrint(node) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 902, in visitPrint arg = self.compileExpression(n) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 315, in compileExpression return meth(node, allocate) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 877, in expressSimpleListComp self.append(self.set_lineno(node)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 148, in set_lineno if (node.lineno is not None and AttributeError: SimpleListComp instance has no attribute 'lineno' ====================================================================== ERROR: test_try_except ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_try_finally (__main__.PirateTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 135, in test_try_finally res = self.pirate_invoke( File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_tuple ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_unary ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_unpack_list ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_varargs ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1772, in invoke print >> i, code IOError: [Errno 32] Broken pipe ====================================================================== ERROR: test_while_else ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 40, in runTest res = self.pirate_invoke(open(file).read()).strip() File "PirateTest.py", line 24, in pirate_invoke return pirate.invoke(trim(code)) File "/web/script/sabren/pirate.tangentcode.com/pirate/pirate.py", line 1774, in invoke i.close() IOError: [Errno 32] Broken pipe ====================================================================== FAIL: test_clear_eh (__main__.PirateTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 162, in test_clear_eh self.assertEquals(res, "Lexical 'hell' not found\n") AssertionError: '/bin/sh: parrot: command not found\n' != "Lexical 'hell' not found\n" ====================================================================== FAIL: test_concat ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != 'foobar' ====================================================================== FAIL: test_def ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != '1' ====================================================================== FAIL: test_del_attr (__main__.PirateTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 78, in test_del_attr self.assertEquals(res, "1\nAttributeError: C instance has no attribute 'x'\n") AssertionError: '/bin/sh: parrot: command not found\n' != "1\nAttributeError: C instance has no attribute 'x'\n" ====================================================================== FAIL: test_del_name (__main__.PirateTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 67, in test_del_name self.assertEquals(res, "Lexical 'x' not found\n") AssertionError: '/bin/sh: parrot: command not found\n' != "Lexical 'x' not found\n" ====================================================================== FAIL: test_if_expr ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != 'x' ====================================================================== FAIL: test_minimal_function ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != '1' ====================================================================== FAIL: test_no_return ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != 'None' ====================================================================== FAIL: test_pass ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != '' ====================================================================== FAIL: test_print ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != 'hello, world!' ====================================================================== FAIL: test_raise (__main__.PirateTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 131, in test_raise self.assertEquals(res, "to be or not to be\n") AssertionError: '/bin/sh: parrot: command not found\n' != 'to be or not to be\n' ====================================================================== FAIL: test_simplemath ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != '6' ====================================================================== FAIL: test_string ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != '[\'abc\', "can\'t", \'I "quote" everything\', \'one \\\' two " back \\\\ done\']' ====================================================================== FAIL: test_while ---------------------------------------------------------------------- Traceback (most recent call last): File "PirateTest.py", line 179, in testFunc = lambda self, test=test: self.runTest(test) File "PirateTest.py", line 41, in runTest self.assertEquals(res, open(outfile).read().strip()) AssertionError: '/bin/sh: parrot: command not found' != '3 2 1' ---------------------------------------------------------------------- Ran 62 tests in 2.037s FAILED (failures=14, errors=47)
After another dry spell, pirate is once again showing signs of life. Parrot has changed out from under us again, but newcomer Tyler Coumbes has been bringing the code up to date. His changes involve patches both to pirate and to the PMC's. He's working on getting the PMC code into the parrot repository, but in the meantime, you can get his PMC changes from cvs.
Thanks, Tyler!
Hello to everyone coming here from Sam Ruby's talk!
Well, we had the test cases working last night and suddenly today they all fail because the entire python_group got disabled in the parrot source tree. Sigh :/
Anyway, if you weren't there, you can still read Sam's slides over at his site!
I (Michal Wallace) launched the pirate project back in August of 2003 as a way to run python programs on the parrot virtual machine. The code was based on Andrew Kuchling's work, and made heavy use of python's standard compiler package. Thanks to many helpful people, pirate quickly grew to handle a significant subset of the python language.
When I announced pirate to the parrot list, people quickly pointed out that pirate was also the name of Klaas-Jan Stol's Lua to Parrot compiler. As the two compilers were very similar, we tossed around the idea for a generic compiler, but didn't get too far with the idea at the time.
The python-on-parrot project ran out of steam after a few weeks because parrot didn't yet have a working object system. Parrot's objects eventually matured, but I didn't have time to do anything but basic maintenance (keeping the tests running) and so pirate development stayed mostly dormant.
In late 2004, Sam Ruby brought pirate up to date by implementing a set of python PMCs (parrot built-in types) and incorporating work from pie-thon, a separate python-on-parrot implementation by the parrot team.
As of summer of 2005, pirate is once again in active development. Thanks to the perl foundation and Google's summer of code program, Univeristy of Arizona student Curtis Hall (who plans to develop an Icon compiler for parrot) was awarded a grant to decouple the parrot code emitter from the python compiler.
There is now a pirate mailing list for discussion of the generic compiler system.
Several compiler writers are already participating on the list, and we are starting to work with the pugs team to see whether pirate can be unified with the work they're doing for compiling perl 6.
With pirate becoming language-neutral, the python-specific code will be moving to a subproject. The python compiler is tentatively named "dutchman" after both The Flying Dutchman and python creator Guido van Rossum.
We are currently exploring how dutchman can best leverage the work being done with pypy.
(note: this part may be out of date)
Right now, pirate supports a good deal of python. The two
biggest things that are still missing are classes
(because parrot classes aren't quite done yet)
and exec/eval/import (because those
things require a compiler -- and without classes, pirate
can't compile itself). None of the builtin functions
exist, either, and the types are borrowed from perl. :)
BUT: there's still a lot you can do! For example, parrot is able to run this generator-based microtheads demo and correctly run over 50 small test cases covering much of the language.
As a special bonus, it currently runs dog slow! The microthreads example runs about 8-9 times slower on pirate than on regular python. But that's not parrot's fault: the generated code is completely unoptimized.
(under construction, but current as of july 13, 2005. Note: some of the tests are not passing at the moment, as parrot has changed)
First, you need to download and compile parrot.
Then you need a recent version of python. Pirate should work with any python >= v2.2 (there are reports that it breaks on 2.4+ at the moment)
To get the pirate source code:
% cvs -d:pserver:anonymous@pirate.versionhost.com:/cvs/pirate login Logging in to :pserver:anonymous@pirate.versionhost.com:2401/cvs/pirate CVS password: [just hit enter] % cvs -d:pserver:anonymous@pirate.versionhost.com:/cvs/pirate co pirate
Now, read the GUIDE and run the tests. Then you're set!
Questions? Comments? Want to help? Join the pirate list!
More stuff coming soon. :)