Hi,

On 15 March 2017 at 04:40, William ML Leslie
<william.leslie....@gmail.com> wrote:
> The RTTI are a hook that the backend can implement, there is a fair
> bit of flexibility in what values they can take.

That's right, but also, the RTTI is actually something from the early
days of PyPy and not used any more nowadays.  It is used with our
test-only refcounting GC but not by "real code".  I wouldn't start
with that.

>> It seems that by default the JIT transformer throws away the actual type 
>> information
>> (GcStruct etc., which is not representable under RPython, I know) and only 
>> keeps
>> the size. However, in Mu, memory allocation requires specific type 
>> information.

That's not really true.  We need to keep at least the typeid (a
number, also called "tid") in addition to the size.  This is stored in
the SizeDescr, for GcStructs, which is a small piece of type
information built at translation time by cpu.sizeof().  Look for
get_size_descr() in jit/backend/llsupport/, and for init_size_descr()
in jit/backend/llsupport/gc.py.  You can tweak SizeDescr to attach
whatever info is needed there.

As William said, depending on what exactly you need, you need to also
tweak jit/codewriter/, which is the code that ultimately invokes the
translation-time setting up of SizeDescr.

Also, the same applies to the other Descr classes in
llsupport/descr.py, at least ArrayDescr.


A bientôt,

Armin.
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to