Hi, On Fri, Jan 07, 2005 at 12:39:41PM +0100, holger krekel wrote: > > Log: > > changed LOAD_GLOBAL to support the flow space better. > > In case of a NameError, where the space does not define NameError, > > we raise a real NameError with a message. > > (...). It seems the flow > object space could easily provide its own w_NameError and > then you can check the usual way, catching an OperationError and > then for e.match(space, space.w_NameError) without changing > the interpreter.
I guess the goal is to have the problem crash the program with a meaningful error message. If the flow objspace provided a w_NameError, then it would become a normal exception within the flow graph, and you would end up compiling a program that contains an explicit "raise NameError". In this case it's better just to crash the flow objspace clearly. Maybe a nicer hack than Christian's can be found for this purpose, e.g. setting w_NameError to a special value that would trigger an (interp-level) AssertionError in the constructor of OperationError -- the advantage is that the AssertionError can provide the meaningful bit of information: the intended message of the faulty w_NameError. A bientot, Armin _______________________________________________ [email protected] http://codespeak.net/mailman/listinfo/pypy-dev
