Patches item #1251748, was opened at 2005-08-04 10:28 Message generated for change (Comment added) made by arigo You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1251748&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Parser/Compiler Group: None Status: Open Resolution: None Priority: 5 Submitted By: Armin Rigo (arigo) Assigned to: Nobody/Anonymous (nobody) Summary: compiler package: "global a; a=5" Initial Comment: The stdlib compiler package produces wrong code for "global a; a=5". It produces a STORE_NAME instead of a STORE_GLOBAL. Quick patch from Michael attached. ---------------------------------------------------------------------- >Comment By: Armin Rigo (arigo) Date: 2005-09-04 13:09 Message: Logged In: YES user_id=4771 The compiler package contains several bugs along the lines of the one reported here. It doesn't seem to be that much used; with PyPy it is probably the first time that this package is tested in-depth, as we are trying to pass CPython's own test suite by using only this compiler package. We had to make a few involved fixes. Attached is a diff against the 2.4 maintenance head of CPython (we based our changes on 2.4.1). If there is interest, I can extract individual parts of the big diff and/or port them to 2.5 CVS HEAD. For now I will only give a quick overview of the diff. * the more involved problem was related to scoping of variables. This turned out to be more difficult to fix than mwh's patch (included in this tracker). (Disclaimer: Michael never pretended his patch was more than a quick hack.) For reference, see the following code snippets: http://codespeak.net/svn/pypy/dist/pypy/interpreter/test/test_syntax.py * we try to always raise SyntaxErrors with line number information. (Note sure if this has been done completely yet.) * pyassem.py has some heavy changes that I cannot comment on (don't know about them). Other changes there are related to scoping flags. * a number of situations should raise a SyntaxError, but were silently accepted (and generally produce weird bytecodes). * fixed docstring handling. Previously, in interactive mode, entering "hello" produced no result at all -- because the string was interpreted as a docstring! Also, a genuine docstring on the same line as a statement -- "docstring"; x=5 -- would result in the statement being ignored. * we can pass future flags from outside now. * lambda functions didn't get the official name <lambda>. (Yeah, I know it's a detail, but a CPython test fails because of that.) * added raising of SyntaxWarnings. * the st->ast transformer 'single' mode now returns a Module AST node instead of a Stmt. This matches more closely what the rest of the package expects. * some minor changes in transformer.py are probably not interesting to CPython (e.g. changing some () into []). Their goal was to make transformer.py statically typeable for PyPy. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1251748&group_id=5470 _______________________________________________ Patches mailing list [email protected] http://mail.python.org/mailman/listinfo/patches
