Parent Directory
|
Revision Log
tyler's changes to the code from the parrot subversion repository
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/dynpmc 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 dynpmc
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
| No admin address has been configured | ViewVC Help |
| Powered by ViewVC 1.0.5 |