[pypy-dev] Low level operations and ootypesystem

Antonio Cuni 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! :-)

ciao Anto

More information about the Pypy-dev mailing list