[pypy-svn] r9386 - pypy/dist/pypy/interpreter

tismer at codespeak.net tismer at codespeak.net
Mon Feb 21 17:35:16 CET 2005


Author: tismer
Date: Mon Feb 21 17:35:15 2005
New Revision: 9386

Modified:
   pypy/dist/pypy/interpreter/gateway.py
Log:
added an experimental applevelinterp with the same interface
as applevel. The only difference is that it translates
to interp level using geninterplevel.py

Modified: pypy/dist/pypy/interpreter/gateway.py
==============================================================================
--- pypy/dist/pypy/interpreter/gateway.py	(original)
+++ pypy/dist/pypy/interpreter/gateway.py	Mon Feb 21 17:35:15 2005
@@ -500,7 +500,7 @@
         return self.__dict__.setdefault(space, Cache())
 
 
-# and now for something completly different ... 
+# and now for something completely different ... 
 #
 
 class applevel:
@@ -546,6 +546,29 @@
         appcaller.get_function = get_function
         return appcaller
 
+## XXX experimental code using geninterplevel
+
+class applevelinterp(applevel):
+    """ same as applevel, but using translation to interp-level.
+    Hopefully this will replace applevelatsome point.
+    """
+    NOT_RPYTHON_ATTRIBUTES = ['initfunc']
+
+    def __init__(self, source, modname = 'applevelinterp'):
+        "NOT_RPYTHON"
+        from pypy.translator.geninterplevel import translate_as_module
+        self.initfunc = translate_as_module(source, modname)
+
+    def getwdict(self, space):
+        return space.loadfromcache(self, applevelinterp._builddict,
+                                   space._gatewaycache)
+
+    def _builddict(self, space):
+        "NOT_RPYTHON"
+        w_glob = self.initfunc(space)
+        return w_glob
+
+
 def appdef(source, applevel=applevel):
     """ NOT_RPYTHON: build an app-level helper function, like for example:
     myfunc = appdef('''myfunc(x, y):



More information about the Pypy-commit mailing list