Python on Parrot is still a work in progress.  It builds upon work
by Leo, Dan and others (described below), and by Michal Sabren and
others in the Pirate project.

The ultimate goal is to have a version of Python which is written
in Python and directly targets Parrot Byte Code.  This final version
should have no dependencies on CPython, instead it will depend on
Parrot and a set of Parrot PMCs which will implement the Python
specific behavior required.

For now, Pirate, its tests, and the tests in this directory and those
in the t/dynclass directory are being used to flesh out the runtime.

You can get the latest version of Pirate from:

    http://pirate.tangentcode.com/

Outstanding Parrot archicture/design issues/major todos:

  Keyword/Default arguments
  Multiple inheritance (Python)
  Multiple inheritance (Parrot)
  MMD
  Bound vs Unbound methods
  "Const"-ness (particularly for dictionaries)
  isinstance VTABLE entry?
  DOES for dynclasses
  bounds checking
  "in" dict vs "in" tuple vs exists_key

- Sam Ruby

Below is the previous contents of this README:

 - - -

This directory contains the outcome of the (failed) attempt to
implement - within five weeks - enough of Python, to run the Pie-thon
benchmark for OSCON:

http://mail.python.org/pipermail/python-dev/2003-December/040977.html

The bytecode translator pie-thon.pl was just intended as a quick hack,
to see, what parts of parrot are missing and to get the project
running. The implementation is a mess and partially wrong, OTOH it's
enough to get four and half tests running. F<t/pie/b*.t> shows
implemented features.

IMHO its not a good idea to translate a language at the bytecode
level: too much information is hidden in the linearized opcode stream,
the opcodes are already specialized for the target VM. The
translator has more or less to guess, what's really intended.

A real implementation of a compiler should use the AST to produce
Parrot bytecode.

leo
