Okay, here's my notes on the aftermath of the piethon push. We need to take a look at where we stand with things, where we want to go from here, and how we're going to finish up the compiler and requisite runtime libraries.

If anyone wants to chime in with extra stuff or questions, by all means go for it. We should flesh this out, take a look at the result, and then deal with the issues.



Things we did wrong
===================
* Started far too late (Admin, Dan)
* Involved too few people (Admin, Dan/Leo)
* Code in repository is near-impossible to follow (Source, Leo)
* There are no docs to speak of in the repository for the code that was written (Source, Leo)


Things we did right
===================
* Didn't put hacks into parrot's design for the contest
* Added in features to Parrot for Python that we did really need (slices, for example)


Things we need to fix
=====================
* Exceptions
* MMD with right-default needs fixing

Stuff we need to address
========================
* Namespace issues for Python builtins
* Better lexical handling
* OrderedHash PMC is far too slow
* Need to work out parameter passing a bit more
* Redo the converter into pasm/PIR, so we can load python bytecode just like parrot bytecode
* How to do objects and classes in parrot's object scheme


What we got out of it
=====================
* The start of slices
* A good shakedown of parts of parrot
* A collection of useful builtin functions
* Templates for writing parrot subs in C
* Bignum support, to an extent. (GMP-dependent right now)

Plan Bs
=======
* This'd be better done with a python parser implementation, rather than a bytecode translator. Optimization is a lot better
* The Python standard builtin stuff needs to be modularized


General notes
=============
For Dan's converter, at least, Parrot mapped pretty well to Python. It needs finishing, and a lot of optimization. (There's no analysis of the code, which could be done)


MMD for Python PMCs would make a difference, and we should make sure it happens.

The Python standard library should be loadable, rather than builtin. Taking a page from the VMS book, it *should* be required for Parrot to build. This'll make sure that the library's built, tested, and available for anything but a truly minimalist release.
--
Dan


--------------------------------------it's like this-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to