[FW: Re: [pypy-dev] Patches?]
Seo Sanghyeon
tinuviel at fluid.sparcs.net
Wed Jun 30 14:24:36 CEST 2004
Oops, replied in private by mistake...
----- Forwarded message from tinuviel -----
To: Ben Young <ben at transversal.com>
Subject: Re: [pypy-dev] Patches?
On Wed, Jun 30, 2004 at 11:08:38AM +0100, Ben Young wrote:
> Hi,
>
> I have been following the pypy-dev mailing list for some time, as well as
> maintaining a anon svn checkout of the pypy source and am really excited by
> this project (in fact it has inspired me to write my own experimental
> language in python along similar lines!).
Welcome to PyPy!
> I was just wondering whether the
> project is considered stable enough to accept patches and/or bug reports from
> people who are not directly developers (i.e me!). I have been playing with
> getting pypy to run some of my own python programs, and although it seems to
> get pretty close there are a couple of issues.
PyPy is not exactly stable, but I think patches are welcome any time.
> The first is in appspace/operator.py where if you import this in the trivial
> object space then is gives errors about modifying a dictionary while
> iterating over it. This can be fixed by the following patch
> (patch follows)
Fixed in r5407, but in a different way. In case you don't read the commit
mailing list, here is the detail:
http://codespeak.net/pipermail/pypy-svn/2004-June/002572.html
In short, "#ugh" part is removed altogether. It was a hack, and it was
there to make built-in function never-bound as in CPython. (See the checkin
message.) If you don't understand what that means, try this:
====
from operator import add
def add2(x,y): return x+y
class X: pass
X.add = add
X.add2 = add2
print X().add(2,2)
print X().add2(2,2)
====
CPython doesn't raise exception for X().add, but do for X().add2. That's
because built-in function operator.add is never-bound. PyPy before
commit does the same. PyPy after commit raise exception for both.
> The second is in pprint. If you do
>
> >>>> import pprint
> >>>> pprint.pprint([])
>
> you get a massive traceback which I haven't yet quite worked out a fix for.
This seems to work in the standard object space though.
Regards,
----- End forwarded message -----
More information about the Pypy-dev
mailing list