diff Python/pythonrun.c @ 18611:fdb36a0c7e6e legacy-trunk

Part way to allowing "from __future__ import generators" to communicate that info to code dynamically compiled *by* code compiled with generators enabled. Doesn't yet work because there's still no way to tell the parser that "yield" is OK (unlike nested_scopes, the parser has its fingers in this too). Replaced PyEval_GetNestedScopes by a more-general PyEval_MergeCompilerFlags. Perhaps I should not have? I doubted it was *intended* to be part of the public API, so just did.
author Tim Peters <tim.peters@gmail.com>
date Mon, 16 Jul 2001 02:29:45 +0000
parents 9dda0c11e006
children 4ac98fe7abd2
line wrap: on
line diff
--- a/Python/pythonrun.c	Mon Jul 16 02:17:14 2001 +0000
+++ b/Python/pythonrun.c	Mon Jul 16 02:29:45 2001 +0000
@@ -494,7 +494,7 @@
 
 	if (flags == NULL) {
 		flags = &local_flags;
-		local_flags.cf_nested_scopes = 0;
+		local_flags.cf_flags = 0;
 	}
 	v = PySys_GetObject("ps1");
 	if (v == NULL) {
@@ -1075,10 +1075,14 @@
 	v = PyEval_EvalCode(co, globals, locals);
 	if (v && flags) {
 		if (co->co_flags & CO_NESTED)
-			flags->cf_nested_scopes = 1;
+			flags->cf_flags |= PyCF_NESTED_SCOPES;
+		if (co->co_flags & CO_GENERATOR)
+			flags->cf_flags |= PyCF_GENERATORS;
 #if 0
 		fprintf(stderr, "run_pyc_file: nested_scopes: %d\n",
-			flags->cf_nested_scopes);
+			flags->cf_flags & PyCF_NESTED_SCOPES);
+		fprintf(stderr, "run_pyc_file: generators: %d\n",
+			flags->cf_flags & PyCF_GENERATORS);
 #endif
 	}
 	Py_DECREF(co);