On Mar 21, 2005, at 11:59 AM, Alan Milligan wrote:

I'm not sure that it's necessarily this difficult.  Perhaps it's simply
a matter of implementing Python's import/dlopen semantics and running
this C natively on the VM.


Take a look at something like

Zope-{version}/lib/Components/ExtensionClass/src

and look at the "Py{mumble}" functions that get called. To get Zope to work under Python, either those classes will need to be written, or compatible versions of those that interact with parrot. (which is what Fred was asking about whether Parrot supported Python's C API) So faced with the choice of re-writing things like ExtensionClass or emulating enough of the Python C API to support them, I'd start with writing a conversion library.

Some of the replacements would be easy. For example having a Py_None global that can fetch the None object. Things like PyArg_ParseTuple look like they map fairly well to <http://search.cpan.org/~ltoetsch/parrot-0.1.2/docs/pdds/ pdd16_native_call.pod> Some of them (lets say PyModule_GetDict) might be more difficult. The amount of glue code needed to convert ExtensionClass's idea of what the cPython interpreter provides into the functionality that the Parrot VM provides will start increasing. (does a Parrot module have the equivalent of an embedded dictionary object?)

None of this is a show stopper, but it would take some time to get it to work.

_______________________________________________
Zope-Dev maillist - Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to