[pypy-dev] annotation status
Samuele Pedroni
pedronis at strakt.com
Sun Apr 24 19:12:46 CEST 2005
I think people not following IRC/pyp-svn etc may still be interested in
this piece of information about progress.
As of end of last week the annotator is able to type-annotate all of the
pypy codebase, at least as loaded by goal/buildcache2.py
and goal/targetpypy.py, that means the interpreter plus the standard
object space plus interp-level modules.
We still get some expected warnings in areas touched by faking, and some
of that code may be delicate to translate.
Notice that the code-generators right now are not up to the task of
using this result, gen-llvm is probably the most evoluted.
Having them catch up with the annotator is the next important step.
Trying to translate is also probably the only way in order to discover
whether there are still problems with the annotator result.
Annotation takes around 15 mins on a 1.5Ghz Powerbook 15" and grows up
to around .5Gb of memory also because we keep
a lot of debug info about how annotations evolved during the process to
facilitate type-pollution tracking.
.../goal$ python translate_pypy.py -no-t -no-c targetpypy
Analysing target as defined by targetpypy
faking <type 'unicode'>
faking <type 'module'>
faking <type 'file'>
*builtin*
*sys*
*parser*
*GetSetProperty*
*Member*
*Ellipsis*
*method*
*function*
*generator*
*staticmethod*
*ControlFlowException*
*NotImplemented*
*traceback*
*code*
*cell*
*internal-code*
*internal-frame*
*module*
*frame*
*list*
*type*
*tuple*
*long*
*str*
*float*
*int*
*dict*
*object*
*unicode*
*NoneType*
*slice*
*bool*
*sequenceiterator*
*basestring*
*dictproxy*
cache build finished
getflowgraph (?:7) entry_point
getflowgraph (pypy.objspace.std.intobject:15) __init__
getflowgraph (pypy.objspace.descroperation:460) binop_mul_impl
getflowgraph (pypy.objspace.std.objspace:264) type
getflowgraph (pypy.objspace.std.model:108) __init__
getflowgraph (pypy.interpreter.baseobjspace:28) getclass
(pypy.objspace.std.model:108) __init__ -> SomePBC(const=None)
getflowgraph (pypy.objspace.std.objspace:159) gettypeobject
getflowgraph (pypy.interpreter.baseobjspace:102) loadfromcache
getflowgraph (pypy.interpreter.baseobjspace:102) loadfromcache
getflowgraph (pypy.tool.cache:21) getorbuild
getflowgraph (pypy.tool.cache:21) getorbuild
(pypy.objspace.std.intobject:15) __init__ -> SomePBC(const=None)
(pypy.tool.cache:21) getorbuild -> SomeInstance(can_be_None=False,
classdef=W_TypeObject)
(pypy.interpreter.baseobjspace:102) loadfromcache ->
SomeInstance(can_be_None=False, classdef=W_TypeObject)
(pypy.objspace.std.objspace:159) gettypeobject ->
SomeInstance(can_be_None=False, classdef=W_TypeObject)
(pypy.interpreter.baseobjspace:28) getclass ->
SomeInstance(can_be_None=False, classdef=W_TypeObject)
(pypy.objspace.std.objspace:264) type -> SomeInstance(can_be_None=False,
classdef=W_TypeObject)
...
...
...
(pypy.objspace.std.listsort:119) gallop -> SomeInteger(nonneg=False,
unsigned=False)
(pypy.objspace.std.objspace:166) wrap__SomePBC__SI_ControlFlowException
-> SomeInstance(can_be_None=False, classdef=BaseWrappable)
(pypy.objspace.std.listsort:428) merge_at -> SomePBC(const=None)
getflowgraph (pypy.objspace.std.listsort:216) merge_lo
(pypy.objspace.std.objspace:166) wrap__SomePBC__SI_SApplicationException
-> SomeInstance(can_be_None=False, classdef=BaseWrappable)
(pypy.interpreter.pyframe:415) unroll -> SomeBool(const=True)
getflowgraph (pypy.objspace.std.listsort:319) merge_hi
(pypy.interpreter.pyframe:382) unroll -> SomeBool()
getflowgraph (pypy.objspace.std.listsort:553) copyitems
(pypy.objspace.std.listsort:553) copyitems ->
SomeInstance(can_be_None=False, classdef=ListSlice)
getflowgraph (pypy.objspace.std.listsort:567) popright
getflowgraph (pypy.objspace.std.listsort:561) popleft
(pypy.objspace.std.listsort:561) popleft ->
SomeInstance(can_be_None=True, classdef=W_Root)
(pypy.objspace.std.listsort:567) popright ->
SomeInstance(can_be_None=True, classdef=W_Root)
(pypy.objspace.std.listsort:216) merge_lo -> SomePBC(const=None)
(pypy.objspace.std.listsort:319) merge_hi -> SomePBC(const=None)
======================================================================
Functions that have SomeObject in their signature
======================================================================
PyCode._from_code(SomeInstance, SomeObject, const SomeBool) -> SomeInstance
pypy.interpreter.pycode:101
PyInterpFrame.MISSING_OPCODE(SomeInstance, SomeObject) -> ?
pypy.interpreter.pyopcode:695
StdObjSpace.unwrap(const SomePBC, SomeInstance) -> SomeObject
pypy.objspace.std.objspace:223
StdObjSpace.wrap__SomePBC__SomeObject(const SomePBC, SomeObject) ->
SomeInstance
pypy.objspace.std.objspace:166
W_FakeFile.__init__(SomeInstance, const SomePBC, SomeObject) -> const
SomePBC
pypy.objspace.std.fake:98
W_FakeFile.unwrap(SomeInstance) -> SomeObject
pypy.objspace.std.fake:101
W_FakeModule.unwrap(SomeInstance) -> SomeObject
pypy.objspace.std.fake:101
W_FakeUnicode.__init__(SomeInstance, const SomePBC, SomeObject) -> const
SomePBC
pypy.objspace.std.fake:98
W_FakeUnicode.unwrap(SomeInstance) -> SomeObject
pypy.objspace.std.fake:101
W_LongObject.longval(SomeInstance) -> SomeObject
pypy.objspace.std.longobject:32
W_LongObject.unwrap(SomeInstance) -> SomeObject
pypy.objspace.std.longobject:39
W_TupleObject.unwrap(SomeInstance) -> SomeObject
pypy.objspace.std.tupleobject:20
W_TypeObject.unwrap(SomeInstance) -> SomeObject
pypy.objspace.std.typeobject:212
args_from_long(SomeObject) -> SomeTuple
pypy.objspace.std.longobject:527
get_unique_interplevel_subclass(SomePBC, SomeObject, SomeBool) -> SomePBC
pypy.interpreter.typedef:23
string_to_long(SomeString, SomeInteger) -> SomeObject
pypy.objspace.std.strutil:77
======================================================================
somobjectness: 0 percent
(16 out of 2951 functions get or return SomeObjects
======================================================================
------------------------------------------------------------
Not generating C code.
------------------------------------------------------------
Done.
More information about the Pypy-dev
mailing list