[pypy-dev] Re: Recoding C libs in Python

Anthony Baxter anthony at interlink.com.au
Fri Aug 13 16:50:54 CEST 2004


holger krekel wrote:
> This reminds me of the task of reimplementing C-coded
> libraries in Python which seems to be needed for a couple of
> projects (Jython, IronPython, this new pycore one) and
> certainly for PyPy even more so as we are approaching
> low-level translations.  
> 
> So i guess we should think about organizing this effort in a
> pypy-independent way i.e. it should be equally accessible to
> all projects/interested parties and have a code base that can
> be deployed within all the implementations.  What do you
> think? Anyone interested to head/contribute to such an effort? 

Here's a quick breakdown of the modules in Modules/, broken
up into rough groups. Hope it's useful - probably worth putting
on a wiki page so that people can correct this grouping, and
annotate it appropriately. For instance, there's a horde of
strange little SGI-specific modules - I might have missed one
or two.


Possibly doable
---------------

These ones are probably achievable, although you might think
otherwise.

_bisectmodule - already exists
_codecsmodule
_csv - already exists?
_heapqmodule - already exists
_hotshot
_localemodule
_randommodule
_sre - already exists?
_weakref
arraymodule
audioop
binascii
cPickle - already exists
cStringIO - already exists
cgensupport
cmathmodule
collectionsmodule
cryptmodule
datetimemodule - already exists
gcmodule
imageop
imgfile
itertoolsmodule
mathmodule
md5module
operator
parsermodule
rgbimgmodule
sgimodule
shamodule
stropmodule
structmodule
symtablemodule
syslogmodule
timingmodule
unicodedata
yuvconvert
zipimport

Deprecated
----------

These modules are deprecated

regexmodule
regexpr
rotormodule
mpzmodule

Links in an external library
----------------------------

These are all wrappers around external C libraries. Rewriting them
from scratch is really not practical.

_bsddb
_curses_panel
_cursesmodule
_ssl
_tkinter
almodule
bsddbmodule
bz2module
cdmodule
clmodule
dbmmodule
flmodule
fmmodule
gdbmmodule
glmodule
nismodule
puremodule
pyexpat
readline (replace with pyrepl?)
svmodule
termios
tkappinit
zlibmodule

System specific
---------------

These are modules that are wrappers around system calls
and the like. Rewriting them in pure Python will still
need a way to invoke the underlying calls - and will probably
be different for each platform (pypy, pycore, ironpython, &c).
A lot of these are also a mass of #ifdefs for various broken
operating systems.

dlmodule
errnomodule
fcntlmodule
fpectlmodule
fpetestmodule
grpmodule
linuxaudiodev
mmapmodule
ossaudiodev
posixmodule
pwdmodule
resource
selectmodule
signalmodule
socketmodule
sunaudiodev
threadmodule
timemodule




More information about the Pypy-dev mailing list