pirate: a python compiler for parrot

Parrot is a virtual machine for running programming langagues.
Pirate is a Python compiler that targets parrot..

results.txt

PIRATE TEST RESULTS
last run: Mon Feb 8 08:02:01 EST 2010
this file is generated daily from the latest versions of pirate and parrot.


FEEEEEFFEFEFEEFEEEEEEEEFFEEEEEEEEEEEEEFEEFFFFFEEEEEFFEEFEE.EFE
======================================================================
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_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_attr (__main__.PirateTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "PirateTest.py", line 70, in test_del_attr
    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_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_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_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_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_PARROT_INLINE
----------------------------------------------------------------------
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' != 'cat\\n'

======================================================================
FAIL: 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 41, in runTest
    self.assertEquals(res, open(outfile).read().strip())
AssertionError: '/bin/sh: parrot: command not found' != 'Stuff'

======================================================================
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_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
----------------------------------------------------------------------
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' != 'shiver me timbers!\nyar har har!\navast, ye landlubbers!'

======================================================================
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_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 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_tuple
----------------------------------------------------------------------
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, 2, (3, 4), 5)'

======================================================================
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 1.246s

FAILED (failures=18, errors=43)

atom.xml

Tuesday, July 11, 2006

progress on pirate!

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!

Thursday, August 04, 2005

Sam's talk at OSCON

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!

Wednesday, July 27, 2005

hello

if this works, we have a blog.

quick history

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.

pirate today

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.

dutchman

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.

what it can do

(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.

getting pirate

(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!

more info / get involved

Questions? Comments? Want to help? Join the pirate list!


More stuff coming soon. :)