paul@548 | 1 | Analysis of the PyPy Interpreter
|
paul@548 | 2 | ================================
|
paul@548 | 3 |
|
paul@627 | 4 | Analysis of PyPy is likely to be rather difficult because the method of
|
paul@627 | 5 | collecting information about the interpreter's behaviour and characteristics
|
paul@627 | 6 | initially involves introspection of the loaded program, thus taking advantage
|
paul@627 | 7 | of the capabilities of any existing Python interpreter implementation.
|
paul@627 | 8 |
|
paul@548 | 9 | Program used for analysis: pypy/pypy/bin/py.py
|
paul@548 | 10 |
|
paul@548 | 11 | Errors
|
paul@548 | 12 | ------
|
paul@548 | 13 |
|
paul@548 | 14 | Error in 'pypy.rpython.ootypesystem.ootype' at line 1048: Base class
|
paul@548 | 15 | CallFunc(Name('_null_mixin'), [Name('_instance')], None, None)
|
paul@548 | 16 | for 'pypy.rpython.ootypesystem.ootype._null_instance' is not found: it may be
|
paul@548 | 17 | hidden in some way.
|
paul@548 | 18 |
|
paul@548 | 19 | Fixed by redefining _null_mixin and parameterising it in subclasses that are then used.
|
paul@548 | 20 |
|
paul@548 | 21 | Error in 'pypy.annotation.binaryop' at line 64: Base class
|
paul@548 | 22 | CallFunc(Name('pairtype'), [Name('SomeObject'), Name('SomeObject')], None, None)
|
paul@548 | 23 | for 'pypy.annotation.binaryop.__extend__' is not found: it may be hidden in
|
paul@548 | 24 | some way.
|
paul@548 | 25 |
|
paul@548 | 26 | Caused by usage of pypy.tool.pairtype which uses the __new__ method.
|
paul@548 | 27 | Micropython does not support the metaclass tricks suggested in the offending
|
paul@548 | 28 | module.
|