[pypy-dev] Low level operations and ootypesystem
anto.cuni at gmail.com
Wed Mar 29 23:12:03 CEST 2006
I have some doubts about the semantic of some low level operations I
have found during my development of the CLI backend.
The first doubt is about overflow-checked operations: I've noticed there
are a number of checked operations that can never fail due to their
semantic, such as "int_lt_ovf" or "int_rshift_ovf": am I missing
something or are they simply redundant?
Moreover, I've found that the rtyper produces both "int_lshift_ovf" and
"int_lshift_ovf_val": what's the difference between the two? And what's
the semantic of "int_floordiv_ovf_zer" and "int_mod_ovf_zer"?
The second question regards "uint_neg" and "uint_abs": considering the
an unsigned integer can't be negative, what are they intended to do? Are
they simply no-op?
Finally, the last question is ootypesystem-specific: I've noticed that
the rtyper sets the 'meta' field of every instance just after it has
been created: what does it contain? It seems to me that it contains the
class the object belongs to: am I correct? If so I could safely ignore
that operations, because the CLI automatically tracks the type of each
object, couldn't I?
Just a curiosity: why the name 'meta' instead of 'class' or 'type'?
Thanks for the help and good coding! :-)
More information about the Pypy-dev