Hi Armin,
Fwiw the patch I have in mind would look like this: http://bpaste.net/show/87755/
this line: - 'gbl' : 'pythonify.gbl', can not be removed, as w/o it 'gbl' will not show up at the module level.
and I have no clue about which part of the code contains an error message about being circular.
Looks like this (and I get it when running the translation with the patch as above, but with 'gbl' still in the applevel defs). Sorry, the message said recursive, not circular: [translation:ERROR] File "/home/wlav/pypy-dev/pypy/pypy/interpreter/mixedmodule.py", line 81, in getdictvalue [translation:ERROR] return self._load_lazily(space, name) [translation:ERROR] File "/home/wlav/pypy-dev/pypy/pypy/interpreter/mixedmodule.py", line 91, in _load_lazily [translation:ERROR] w_value = loader(space) [translation:ERROR] File "/home/wlav/pypy-dev/pypy/pypy/interpreter/mixedmodule.py", line 245, in afileloader [translation:ERROR] return app.wget(space, attrname) [translation:ERROR] File "/home/wlav/pypy-dev/pypy/pypy/interpreter/gateway.py", line 999, in wget [translation:ERROR] w_globals = self.getwdict(space) [translation:ERROR] File "/home/wlav/pypy-dev/pypy/pypy/interpreter/gateway.py", line 992, in getwdict [translation:ERROR] return space.fromcache(ApplevelCache).getorbuild(self) [translation:ERROR] File "/home/wlav/pypy-dev/pypy/rpython/rlib/cache.py", line 48, in getorbuild [translation:ERROR] self, key) [translation:ERROR] Exception: ("<Cache 'ApplevelCache' (18 items)> recursive building of <ApplevelClass filename='/home/wlav/pypy-dev/pypy/pypy/module/cppyy/pythonify.py'>", < [translation:ERROR] v42 = getattr(self_2, ('builtin_modules')) [translation:ERROR] In <FunctionGraph of (pypy.interpreter.baseobjspace:407)getbuiltinmodule at 0x2fe303a0>: [translation:ERROR] Happened at file /home/wlav/pypy-dev/pypy/pypy/interpreter/baseobjspace.py line 422 [translation:ERROR] [translation:ERROR] ==> w_mod = self.builtin_modules[name] [translation:ERROR] [translation:ERROR] Known variable annotations: [translation:ERROR] self_2 = SomePBC(can_be_None=False, const=StdObjSpace, subset_of=None)>) [translation:ERROR] Processing block: [translation:ERROR] block@120 is a <class 'rpython.flowspace.flowcontext.SpamBlock'> [translation:ERROR] in (pypy.interpreter.baseobjspace:407)getbuiltinmodule [translation:ERROR] containing the following operations: [translation:ERROR] v42 = getattr(self_2, ('builtin_modules')) [translation:ERROR] v43 = getitem_key(v42, name_0) [translation:ERROR] --end-- But again, the real problem is that startup() still runs immediately when I type './pypy-c' and not when 'import cppyy' later on the prompt, so even if the above problem gets solved, I still can't raise an ImportError in startup() when the library is missing. That is, if I leave the setup as-is and simply call verify_backend() in the startup() function in cppyy/__init__.py, this is how it looks if the library is missing: $ ./pypy-c Traceback (most recent call last): File "app_main.py", line 52, in run_toplevel ImportError: missing reflection module rflxlib.so! Python 2.7.3 (2377fb34943d+3ef424d4281f+, Mar 30 2013, 03:53:47) [PyPy 2.0.0-beta1 with GCC 4.6.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. And now for something completely different: ``things worked nicely till today just by chance'' >>>> (And copying rflxlib.so to an accessible location nicely makes the error message go away, so the checking does work properly, unless that message I got on the prompt is being prophetic. :) ) Thanks, Wim -- wlavrij...@lbl.gov -- +1 (510) 486 6411 -- www.lavrijsen.net _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev