[pypy-dev] binascii.py in pure python
bauflo3 at web.de
Fri Nov 26 16:40:18 CET 2004
Christian Tismer wrote:
> holger krekel wrote:
>> Hi Florian,
>> [Florian Bauer Thu, Nov 25, 2004 at 04:53:33PM +0100]
>>> Hi there,
>>> I checked the list of missing C modules on the wiki pages.
>>> I could contribute some code for binascii.py.
>>> Some time ago i started porting the C module to python.
>>> It's halfway done, but some functions are pretty usable and have
>>> some test coverage.
>>> Right now, I don't have time to download pypy and play with it, so I
>>> don't know if there are any issues with integrating my code. It
>>> would be best if I could develop and test the module on CPython.
>> that's just fine. Actually it's faster <wink> to develop against
>> CPython and
>> not let the current PyPy interpret your application level code.
> As an addition:
> I'm just busy figuring out how to make C modules which are implemented
> in Python easier to compile back to C.
> It turned out that there is only little to change if your
> implementation does not use fancy features like generators.
> If you can assume that
> - all your globals are constant after initialization
> - you don't use ints or longs larger than machine words
> - methods are constants and not shadowed by instance vars
> - exceptions are raised only if you provide a try statement
> - no generators
> - no imports of modules which don't obey these rules
> - use __all__ to report the exports
> then this module is almost ready to become a builtin module.
> I just have to convert the exported objects in __all__
> an give them an application-python interface, again.
> ciao - chris
This is pretty trivial in the case of binascii.py. The interface assumes
strings, not iterables, so there's no need for fancy stuff.
What I'm thinking about is whether I should use regular expressions or
not. I haven't played around with it yet, but I guess that at least for
running under CPython re.sub woud be faster than a state machine with
the loop coded in python. But in pypy, maybe not. Any thoughts on this
Btw. I will need some time to clean up the module. In the next 10 days
I'm pretty busy with matching the deadline for my thesis <wink>.
But afterwards, I'll clean up my code and submit it.
More information about the Pypy-dev