[pypy-dev] Re: Base Object library (was: stdobjspace status)
Stephan Diehl
stephan.diehl at gmx.net
Wed Feb 26 20:22:04 CET 2003
[...]
>
> Wile we are at it, Stephan,
> you wrote the longobject.py .
> You are probably aware of the fact that
> this implementation is slightly not what
> we need?
Yes, I'm aware. If it is already anything, then only a proxy.
My initial idea was, of course, just to build the interface of the objects
first --- so they can be already used as long as everything is in an CPython
environment --- and provide the "real" implementation later.
>
> You coded, for instance:
>
> def long_long_sub(space, w_long1, w_long2):
> x = w_long1.longval
> y = w_long2.longval
> try:
> z = x - y # <== ick! We don't have that!
> except Error,e:
> raise OperationError(Error, e)
> return W_LongObject(z)
>
> This is ok, if you rely on the existance of
> long objects. But for a real implementation,
> we need to use integer arrays like in
> longobject.c, and implement everything by
> hand.
That's actually the place, where I'd really do it different to the CPython
implementation. I'd factor out the r_longs to a library (as discussed several
times in this thread) and would indeed write:
-----------------------------------------------------------------------------------------
import basiclong # <== or something similar
def long_long_sub(space, w_long1, w_long2):
x = w_long1.longval
y = w_long2.longval
try:
z = basiclong.sub(x , y) #
except Error,e:
raise OperationError(Error, e)
return W_LongObject(z)
---------------------------------------------------------------------------------------
As far as I'm concerned, the implementation of the basic/restricted types and
the implementation of the W_XXXObjects should be clearly separated.
>
> So how to fill longobject.py with real life?
> I think, we first need some basic structure
> like r_integerarray or maybe even better
> r_uintarray, and based upon that, we must
> build every and all the necessary loops.
>
> Anybody wants to try it?
>
> ciao - chris
Anyway, we are probably not too far apart in our opinion about this topic :-)
Cheers
Stephan
More information about the Pypy-dev
mailing list