The 'find_type' opcode seems to return a positive integer for a PMC or ParrotObject, and a negative integer for a Parrot datatype such as "longlong".
How is this useful? If you are using 'find_type' to get an int to pass to the 'new' opcode then you don't want the negative type numbers, and if you do want to lookup a native Parrot datatype you can just include /runtime/parrot/include/datatypes/pasm which defines them all as constants. Also, you can't use "newclass" with a class name that happens to be the same as a native datatype. For example: .sub main :main $P1 = newclass "INTVAL" .end ...gives the rather bizarre message native type with name '';'' already exists - can't register PMC Maybe I'm missing something deep here... Regards, Roger Browne