[pypy-svn] rev 2086 - in pypy/trunk/src/pypy: interpreter module module/test
rocco at codespeak.net
rocco at codespeak.net
Sun Oct 26 20:42:32 CET 2003
Author: rocco
Date: Sun Oct 26 20:42:31 2003
New Revision: 2086
Modified:
pypy/trunk/src/pypy/interpreter/baseobjspace.py
pypy/trunk/src/pypy/module/sysmodule.py
pypy/trunk/src/pypy/module/test/test_sysmodule.py
Log:
Add builtin_module_names attribute to sys, and adjust module loading to populate it.
Modified: pypy/trunk/src/pypy/interpreter/baseobjspace.py
==============================================================================
--- pypy/trunk/src/pypy/interpreter/baseobjspace.py (original)
+++ pypy/trunk/src/pypy/interpreter/baseobjspace.py Sun Oct 26 20:42:31 2003
@@ -53,14 +53,14 @@
# an almost functional 'builtin' attribute on the space
self.builtin._initcompiledbuiltins()
- self.sys._setmodule(self.w_builtin)
+ self.sys._setbuiltinmodule(self.w_builtin)
def make_sys(self):
assert not hasattr(self, 'sys')
from pypy.module import sysmodule
self.sys = sysmodule.Sys(self)
self.w_sys = self.wrap(self.sys)
- self.sys._setmodule(self.w_sys)
+ self.sys._setbuiltinmodule(self.w_sys)
# XXX get rid of this.
def get_builtin_module(self, name):
Modified: pypy/trunk/src/pypy/module/sysmodule.py
==============================================================================
--- pypy/trunk/src/pypy/module/sysmodule.py (original)
+++ pypy/trunk/src/pypy/module/sysmodule.py Sun Oct 26 20:42:31 2003
@@ -19,6 +19,7 @@
appdir = os.path.join(pypydir, 'pypy', 'appspace')
self.w_path = space.newlist([appdir] + [p for p in cpy_sys.path if p!= pypydir])
self.w_modules = space.newdict([])
+ self.w_builtin_module_names = space.newlist([])
ExtModule.__init__(self, space)
stdout = cpy_sys.stdout
@@ -30,6 +31,15 @@
w_name = self.space.getattr(w_module, self.space.wrap('__name__'))
self.space.setitem(self.w_modules, w_name, w_module)
+ def _setbuiltinmodule(self, w_module):
+ """ put a module into modules list and builtin_module_names """
+ w_name = self.space.getattr(w_module, self.space.wrap('__name__'))
+ append = self.space.getattr(self.w_builtin_module_names,
+ self.space.wrap('append'))
+ self.space.call(append, self.space.newtuple((w_name,)),
+ self.space.newdict([]))
+ self.space.setitem(self.w_modules, w_name, w_module)
+
def displayhook(self, w_x):
space = self.space
w = space.wrap
Modified: pypy/trunk/src/pypy/module/test/test_sysmodule.py
==============================================================================
--- pypy/trunk/src/pypy/module/test/test_sysmodule.py (original)
+++ pypy/trunk/src/pypy/module/test/test_sysmodule.py Sun Oct 26 20:42:31 2003
@@ -25,6 +25,33 @@
def test_name_exists(self):
import sys
self.failUnless(hasattr(sys, '__name__'), "sys.__name__ gone missing")
+ def test_builtin_module_names_exists(self):
+ import sys
+ self.failUnless(hasattr(sys, 'builtin_module_names'),
+ "sys.builtin_module_names gone missing")
+ def test_sys_in_modules(self):
+ import sys
+ modules = sys.modules
+ self.failUnless('sys' in modules, "An entry for sys "
+ "is not in sys.modules.")
+ sys2 = sys.modules['sys']
+ self.failUnless(sys is sys2, "import sys is not sys.modules[sys].")
+ def test_builtin_in_modules(self):
+ import sys
+ modules = sys.modules
+ self.failUnless('__builtin__' in modules, "An entry for __builtin__ "
+ "is not in sys.modules.")
+ import __builtin__
+ builtin2 = sys.modules['__builtin__']
+ self.failUnless(__builtin__ is builtin2, "import __builtin__ "
+ "is not sys.modules[__builtin__].")
+ def test_builtin_module_names(self):
+ import sys
+ names = sys.builtin_module_names
+ self.failUnless('sys' in names,
+ "sys is not listed as a builtin module.")
+ self.failUnless('__builtin__' in names,
+ "__builtin__ is not listed as a builtin module.")
if __name__ == '__main__':
test.main()
More information about the Pypy-commit
mailing list