[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