SF patch [ 597919 ] compiler package and SET_LINENO
A variety of changes from Michael Hudson to get the compiler working
with 2.3. The primary change is the handling of SET_LINENO:
# The set_lineno() function and the explicit emit() calls for
# SET_LINENO below are only used to generate the line number table.
# As of Python 2.3, the interpreter does not have a SET_LINENO
# instruction. pyassem treats SET_LINENO opcodes as a special case.
A few other small changes:
- Remove unused code from pycodegen and pyassem.
- Fix error handling in parsermodule. When PyParser_SimplerParseString()
fails, it sets an exception with detailed info. The parsermodule
was clobbering that exception and replacing it was a generic
"could not parse string" exception. Keep the original exception.
diff --git a/Python/compile.c b/Python/compile.c
index c7ca534..5784780 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1241,6 +1241,9 @@
#endif
}
+/* compiler.transformer.Transformer.decode_literal depends on what
+ might seem like minor details of this function -- changes here
+ must be reflected there. */
static PyObject *
parsestr(struct compiling *c, char *s)
{