
Hi Armin, On Thu, Sep 01, 2005 at 11:41 +0200, Armin Rigo wrote:
On Wed, Aug 31, 2005 at 08:45:04PM +0200, holger krekel wrote:
I'd like to suggest heading towards making PyPy's mixed C-ported modules more self-contained and not have it's implementation and initilization spread over several directories and code areas.
The 'thread' module is pretty much self-contained in this respect (I tried to keep it this way as much as possible), so I would like to hear more specifically what you think is still missing. The structure is:
pypy/module/thread/ __init__.py interface app_*.py app-level stuff os_*.py interp-level stuff ('os' means using os threads) test/ tests for the above rpython/ exttable.py table of external functions (guides both the annotator and the rtyper) ll_thread.py the low-level functions (similar to rpython/module/ll_*.py) test/ rpython-level tests of external functions
That looks good indeed but we are not using similar structures for most of the other mixed modules. Moreover, i am more interested in the "runtime" interface and decoupling module implementations from PyPy internals. For example, we could import all module/X's at root level and query the package (or plain module, even) for all neccessary info like lldefs, annotation info for external functions, etc. And the module files themselves should use a resonably stable and documented way to access the neccessary lltypes and friends. The idea is a bit to allow more people to work on porting C-modules conveniently and rather self-containedly (with good error messages for annotations that conflict with provided info in the exttable for example). cheers, holger