[pypy-svn] r15849 - in pypy/dist/pypy/translator: . goal
pedronis at codespeak.net
pedronis at codespeak.net
Tue Aug 9 18:31:45 CEST 2005
Author: pedronis
Date: Tue Aug 9 18:31:43 2005
New Revision: 15849
Modified:
pypy/dist/pypy/translator/ann_override.py
pypy/dist/pypy/translator/goal/targetpypymain.py
pypy/dist/pypy/translator/goal/targetpypystandalone.py
pypy/dist/pypy/translator/goal/translate_pypy.py
Log:
let targets optionally specify a policy
Modified: pypy/dist/pypy/translator/ann_override.py
==============================================================================
--- pypy/dist/pypy/translator/ann_override.py (original)
+++ pypy/dist/pypy/translator/ann_override.py Tue Aug 9 18:31:43 2005
@@ -7,6 +7,7 @@
from pypy.annotation import specialize
class PyPyAnnotatorPolicy(AnnotatorPolicy):
+ allow_someobjects = False
def override__wrap_exception_cls(pol, space, x):
import pypy.objspace.std.typeobject as typeobject
Modified: pypy/dist/pypy/translator/goal/targetpypymain.py
==============================================================================
--- pypy/dist/pypy/translator/goal/targetpypymain.py (original)
+++ pypy/dist/pypy/translator/goal/targetpypymain.py Tue Aug 9 18:31:43 2005
@@ -7,6 +7,7 @@
from pypy.annotation.listdef import ListDef
from pypy.interpreter import gateway
from pypy.interpreter.error import OperationError
+from pypy.translator.ann_override import PyPyAnnotatorPolicy
# WARNING: this requires the annotator.
# There is no easy way to build all caches manually,
@@ -71,7 +72,7 @@
res = entry_point("app_basic_example.py")
assert res == 0
- return entry_point, [SomeString()]
+ return entry_point, [SomeString()], PyPyAnnotatorPolicy()
def get_llinterp_args():
from pypy.rpython import rstr
Modified: pypy/dist/pypy/translator/goal/targetpypystandalone.py
==============================================================================
--- pypy/dist/pypy/translator/goal/targetpypystandalone.py (original)
+++ pypy/dist/pypy/translator/goal/targetpypystandalone.py Tue Aug 9 18:31:43 2005
@@ -7,6 +7,7 @@
from pypy.annotation.listdef import ListDef
from pypy.interpreter import gateway
from pypy.interpreter.error import OperationError
+from pypy.translator.ann_override import PyPyAnnotatorPolicy
# WARNING: this requires the annotator.
# There is no easy way to build all caches manually,
@@ -66,5 +67,5 @@
res = entry_point(["pypy", "app_basic_example.py"])
assert res == 0
- return entry_point, None
+ return entry_point, None, PyPyAnnotatorPolicy()
Modified: pypy/dist/pypy/translator/goal/translate_pypy.py
==============================================================================
--- pypy/dist/pypy/translator/goal/translate_pypy.py (original)
+++ pypy/dist/pypy/translator/goal/translate_pypy.py Tue Aug 9 18:31:43 2005
@@ -71,11 +71,11 @@
import threading, pdb
from pypy.translator.translator import Translator
-from pypy.translator.ann_override import PyPyAnnotatorPolicy
from pypy.annotation import model as annmodel
from pypy.annotation import listdef
from pypy.tool.cache import Cache
from pypy.annotation.model import SomeObject
+from pypy.annotation.policy import AnnotatorPolicy
from pypy.tool.udir import udir
from pypy.tool.ansi_print import ansi_print
from pypy.translator.pickle.main import load, save
@@ -97,25 +97,30 @@
def analyse(target):
global t, entry_point, inputtypes, standalone
+ policy = AnnotatorPolicy()
if target:
- entry_point, inputtypes = target()
+ spec = target()
+ try:
+ entry_point, inputtypes, policy = spec
+ except ValueError:
+ entry_point, inputtypes = spec
t = Translator(entry_point, verbose=True, simplifying=True)
a = None
else:
# otherwise we have been loaded
a = t.annotator
t.frozen = False
+
standalone = inputtypes is None
- policy = PyPyAnnotatorPolicy()
if standalone:
ldef = listdef.ListDef(None, annmodel.SomeString())
inputtypes = [annmodel.SomeList(ldef)]
- policy.allow_someobjects = False
if listen_port:
run_async_server()
if not options['-no-a']:
print 'Annotating...'
+ print 'with policy: %s.%s' % (policy.__class__.__module__, policy.__class__.__name__)
a = t.annotate(inputtypes, policy=policy)
sanity_check_exceptblocks(t)
lost = query.sanity_check_methods(t)
More information about the Pypy-commit
mailing list