[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