[pypy-svn] r11005 - pypy/dist/pypy/interpreter
tismer at codespeak.net
tismer at codespeak.net
Thu Apr 21 23:18:13 CEST 2005
Author: tismer
Date: Thu Apr 21 23:18:13 2005
New Revision: 11005
Modified:
pypy/dist/pypy/interpreter/gateway.py
Log:
removed the old cache code.
changed the name of code with no sourcefile name
to start with "zznoname" for convenience
Modified: pypy/dist/pypy/interpreter/gateway.py
==============================================================================
--- pypy/dist/pypy/interpreter/gateway.py (original)
+++ pypy/dist/pypy/interpreter/gateway.py Thu Apr 21 23:18:13 2005
@@ -538,90 +538,6 @@
def _freeze_(self):
return True # hint for the annotator: applevel instances are constants
-class old_ApplevelInterpClass(ApplevelClass):
- """ similar to applevel, but using translation to interp-level.
- """
- NOT_RPYTHON_ATTRIBUTES = []
-
- def __init__(self, source, filename = None, modname = 'applevelinterp', do_imports=False):
- "NOT_RPYTHON"
- self.filename = filename
- self.source = source
- self.modname = modname
- self.do_imports = do_imports
-
- def _builddict(self, space):
- "NOT_RPYTHON"
- if not self._setup_done:
- self._setup()
- from pypy.translator.geninterplevel import translate_as_module, \
- render_docstr
- initfunc = self.known_source.get(self.source)
- if not initfunc:
- initfunc, newsrc = translate_as_module(
- self.source, self.filename, self.modname, self.do_imports)
- f = file(self.cache_filename, "a")
- print >> f
- print >> f, "#"+72*"_"
- print >> f
- print >> f, render_docstr(
- self.source, "source = ")
- print >> f
- print >> f, newsrc
- print >> f, "known_source[source] = %s" % initfunc.__name__
- w_glob = initfunc(space)
- return w_glob
-
- _setup_done = False
-
- def _setup(cls):
- """NOT_RPYTHON"""
- import os
- cls.cache_filename = os.path.join(os.path.dirname(__file__),
- "_interplevel_cache.py")
- try:
- if not os.path.exists(cls.cache_filename):
- raise ImportError # don't import if only a .pyc file left!!!
- from pypy.interpreter._interplevel_cache import known_source, \
- GI_VERSION_RENDERED
- except ImportError:
- GI_VERSION_RENDERED = 0
- from pypy.translator.geninterplevel import GI_VERSION
- if GI_VERSION != GI_VERSION_RENDERED or GI_VERSION is None:
- file(cls.cache_filename, "w").write("""\
-# This file acts as a cache for code snippets which have been
-# compiled by compile_as_module().
-# It will get a new entry for every piece of code that has
-# not been seen, yet.
-#
-# Caution! Only the code snippet is checked. If something
-# is imported, changes are not detected. Also, changes
-# to geninterplevel or gateway are also not checked.
-# Exception: There is a checked version number in geninterplevel.py
-#
-# If in doubt, remove this file from time to time.
-
-known_source = {}
-
-GI_VERSION_RENDERED = %r
-
-# self-destruct on double-click:
-if __name__ == "__main__":
- from pypy.interpreter import _interplevel_cache
- import os
- namestart = os.path.splitext(_interplevel_cache.__file__)[0]
- for ending in ('.py', '.pyc', '.pyo'):
- try:
- os.unlink(namestart+ending)
- except os.error:
- pass
-
-""" % GI_VERSION)
- known_source = {}
- cls.known_source = known_source
- cls._setup_done = True
- _setup = classmethod(_setup)
-
class ApplevelInterpClass(ApplevelClass):
""" similar to applevel, but using translation to interp-level.
This version maintains a cache folder with single files.
@@ -646,10 +562,12 @@
initfunc = self.known_source.get(key)
if not initfunc:
# try to get it from file
- name = '_' + key
+ name = key
if self.filename:
prename = os.path.splitext(os.path.basename(self.filename))[0]
- name = prename + name
+ else:
+ prename = 'zznoname'
+ name = "%s_%s" % (prename, name)
try:
__import__("pypy._cache."+name)
except ImportError, x:
More information about the Pypy-commit
mailing list