[pypy-svn] r40779 - in pypy/dist/pypy: jit/goal module/pypyjit translator translator/goal

ac at codespeak.net ac at codespeak.net
Mon Mar 19 17:18:09 CET 2007


Author: ac
Date: Mon Mar 19 17:18:07 2007
New Revision: 40779

Added:
   pypy/dist/pypy/module/pypyjit/portal.py
      - copied, changed from r40775, pypy/dist/pypy/jit/goal/jitstep.py
Removed:
   pypy/dist/pypy/jit/goal/
Modified:
   pypy/dist/pypy/translator/driver.py
   pypy/dist/pypy/translator/goal/targetpypystandalone.py
   pypy/dist/pypy/translator/goal/translate.py
Log:
(pedronis, arre)
Added support for --jit to targetpypystandalone.py



Modified: pypy/dist/pypy/translator/driver.py
==============================================================================
--- pypy/dist/pypy/translator/driver.py	(original)
+++ pypy/dist/pypy/translator/driver.py	Mon Mar 19 17:18:07 2007
@@ -78,7 +78,7 @@
 
 class TranslationDriver(SimpleTaskEngine):
 
-    def __init__(self, setopts=None, default_goal=None, extra_goals=[],
+    def __init__(self, setopts=None, default_goal=None,
                  disable=[],
                  exe_name=None, extmod_name=None,
                  config=None, overrides=None):
@@ -109,7 +109,7 @@
                 default_goal = None
         
         self.default_goal = default_goal
-        self.extra_goals = extra_goals
+        self.extra_goals = []
         self.exposed = []
 
         # expose tasks
@@ -147,7 +147,10 @@
                             expose_task(explicit_task)
                     else:
                         expose_task(explicit_task)
-    
+
+    def set_extra_goals(self, goals):
+        self.extra_goals = goals
+
     def get_info(self): # XXX more?
         d = {'backend': self.config.translation.backend}
         return d
@@ -703,13 +706,12 @@
     def from_targetspec(targetspec_dic, config=None, args=None,
                         empty_translator=None,
                         disable=[],
-                        default_goal=None,
-                        extra_goals=[]):
+                        default_goal=None):
         if args is None:
             args = []
 
         driver = TranslationDriver(config=config, default_goal=default_goal,
-                                   extra_goals=extra_goals, disable=disable)
+                                   disable=disable)
         # patch some attributes of the os module to make sure they
         # have the same value on every platform.
         backend, ts = driver.get_backend_and_type_system()

Modified: pypy/dist/pypy/translator/goal/targetpypystandalone.py
==============================================================================
--- pypy/dist/pypy/translator/goal/targetpypystandalone.py	(original)
+++ pypy/dist/pypy/translator/goal/targetpypystandalone.py	Mon Mar 19 17:18:07 2007
@@ -98,7 +98,7 @@
             multimethod.Installer = multimethod.InstallerVersion1
 
     def handle_translate_config(self, translateconfig):
-        pass
+        self.translateconfig = translateconfig
 
     def print_help(self, config):
         self.opt_parser(config).print_help()
@@ -128,6 +128,11 @@
         elif config.objspace.usemodules._stackless:
             config.translation.stackless = True
 
+        if self.translateconfig.goal_options.jit:
+            config.objspace.usemodules.pypyjit = True
+        elif config.objspace.usemodules.pypyjit:
+            self.translateconfig.goal_options.jit = True
+
         config.objspace.nofaking = True
         config.objspace.compiler = "ast"
         config.translating = True
@@ -143,6 +148,10 @@
 
         return self.get_entry_point(config)
 
+    def portal(self, driver):
+        from pypy.module.pypyjit.portal import get_portal
+        return get_portal(driver)
+    
     def get_entry_point(self, config):
         space = make_objspace(config)
 
@@ -164,7 +173,7 @@
 
     def interface(self, ns):
         for name in ['take_options', 'handle_config', 'print_help', 'target',
-                     'handle_translate_config',
+                     'handle_translate_config', 'portal',
                      'get_additional_config_options']:
             ns[name] = getattr(self, name)
 

Modified: pypy/dist/pypy/translator/goal/translate.py
==============================================================================
--- pypy/dist/pypy/translator/goal/translate.py	(original)
+++ pypy/dist/pypy/translator/goal/translate.py	Mon Mar 19 17:18:07 2007
@@ -260,16 +260,16 @@
 
         pdb_plus_show.start(tb, server_setup, graphic=not translateconfig.text)
 
-    log_config(translateconfig, "translate.py configuration")
-    extra_goals = []
-    if translateconfig.goal_options.jit:
-        extra_goals.append('timeshift')
     try:
         drv = driver.TranslationDriver.from_targetspec(targetspec_dic, config, args,
                                                        empty_translator=t,
                                                        disable=translateconfig.skipped_goals,
-                                                       default_goal='compile',
-                                                       extra_goals=extra_goals)
+                                                       default_goal='compile')
+        log_config(translateconfig, "translate.py configuration")
+        if translateconfig.goal_options.jit:
+            if 'portal' not in targetspec_dic:
+               raise Exception('target has no portal defined.') 
+            drv.set_extra_goals(['timeshift'])
         log_config(config.translation, "translation configuration")
         pdb_plus_show.expose({'drv': drv, 'prof': prof})
 



More information about the Pypy-commit mailing list