[pypy-dev] Build and test failures

Armin Rigo arigo at tunes.org
Sun Jul 31 21:24:12 CEST 2005


Hi Ben,

On Fri, Jul 22, 2005 at 09:18:56AM +0100, Ben.Young at risk.sungard.com wrote:
> So is a family of classes the set of any classes that can be assigned to a 
> particular instance variable, even if they dont share a common base?
> 
> e.g:
> 
> class A:
>         pass
> 
> class B:
>         pass
> 
> foo = somebool ? A() : B()
> 
> Would it be simpler to require that all instances must at least be 
> annotated to a common base, and fail to annotate if a not-base-defined 
> method is called on the instance. Or is that really what you are already 
> doing!?

Indeed, we track each class that can be in a particular variable,
instead of (at this point) falling back to a common class, requiring
that it exists.  While this would not be absolutely necessary for
classes, we need the notion of "set of values" anyway for functions and
for prebuilt constant instances.

> Do function PBCs all have to have the same signature, or can it vary?

It can vary to some extent.  We have code in rpython/normalizecalls.py
that analyzes calls from a single place that can go to a family of
functions, and that "normalizes" the functions -- i.e. modify their
signature and insert conversions at the beginning of the functions if
needed, so that they all get exactly the same signature.

> Anyway, thanks for the reply! As illuminating as ever. I guess with the 
> rtyping, the first flush of exciting coding has gone and you are down to 
> the grinding out bugs stage. Are you pleased with the way things have gone 
> or are there any chages you would make to the architecture now?

Given that we succeeded in translating the whole of PyPy yesterday --
sorry for the long delay again in answering -- I guess that yes, I'm
pretty much pleased in general with the way everything has gone :-)

> P.S os.ftruncate doesn't exist on windows I'm afraid, so most of the tests 
> fail at the moment

Thanks for the report.  It still fails on Windows, indeed...


A bientot,

Armin



More information about the Pypy-dev mailing list