[pypy-dev] Re: [Python-Dev] AST branch update

Neal Norwitz nnorwitz at gmail.com
Sat Oct 22 09:25:40 CEST 2005


On 10/21/05, Armin Rigo <arigo at tunes.org> wrote:
> Hi Neal,
>
> (CC-ing to pypy-dev, if you don't mind :-)

Of course not!

> > Any interesting ideas that can be used to improve CPython?
>
> That's an interesting question.  So far PyPy has produced mostly bug
> reports for obscure errors and crashes in CPython -- only today, trying
> the CPython HEAD with the newly merged AST compiler showed 7 of them :-)

Jeez!  I was hoping that was in PyPy, but I see the bug report now. 
At least one was taken care of (lambda became <lambda> again).

I suspect there could be many more corner cases like these.  Thanks!

> Anyway, someone might want to try
> again to scrap Py_INCREF/DECREF and use the Boehm GC with CPython.

I would like to see this happen, but don't think I will have time for
it.  I hope to try to play with speeding up function calls.

> I suppose that we will soon try more experiments.  Coming to mind:
> unboxed integers to see if they help -- I doubt it, but if they have a
> large effect then CPython might consider to use them at least in some
> speed-critical places.  Different locking approaches for threads, though
> it is unclear how much of what we do there would be practical for
> CPython.  Several implementations for app-level string objects, e.g. a
> "string slice" one, a "lazily joined substrings" one, etc., which might
> give interesting speed-ups for some programs.

Yes, I think this is true.  I'm not sure it would be an overall win.  Another
possibility is for lists.  I wonder how many times empty lists are
instantiated, but never used.  It might be possible to make a sort of
copy-on-write empty list that is (are) cached.  Also, list slices are
often used for iteration.  It would be nice if we didn't need to make
a copy of the list.  This becomes difficult since the list could
change during iteration.  But we could make a copy in that case at the
time it was modified.  I'm not sure if that would be easy or difficult
to implement.

> All in all I suspect that it will be some more time before we can go
> past the current state, which is "being a bit like CPython but not quite
> as good".

Best of luck.

If anyone has time it wouldn't hurt to give little status updates on
python-dev from time to time, just so we have more insight into PyPy
and anything interesting you run across.  I don't know how the
experiment will turn out, but it's interesting to watch.  And you have
certainly contributed many bug reports on corner cases which helps
improve Python.

n



More information about the Pypy-dev mailing list