diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-02-09 22:22:18 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-02-09 22:22:18 (GMT) |
commit | cb17ae8b19c35cc63e7daec871c025d903c49105 (patch) | |
tree | 763b5b42fc1a889f7445f77263aab2c5c3dd13a3 /Modules | |
parent | 670fa52698e90b5025dc2434310eada42fcfdd4a (diff) | |
download | cpython-cb17ae8b19c35cc63e7daec871c025d903c49105.zip cpython-cb17ae8b19c35cc63e7daec871c025d903c49105.tar.gz cpython-cb17ae8b19c35cc63e7daec871c025d903c49105.tar.bz2 |
Relax the rules for using 'from ... import *' and exec in the presence
of nested functions. Either is allowed in a function if it contains
no defs or lambdas or the defs and lambdas it contains have no free
variables. If a function is itself nested and has free variables,
either is illegal.
Revise the symtable to use a PySymtableEntryObject, which holds all
the revelent information for a scope, rather than using a bunch of
st_cur_XXX pointers in the symtable struct. The changes simplify the
internal management of the current symtable scope and of the stack.
Added new C source file: Python/symtable.c. (Does the Windows build
process need to be updated?)
As part of these changes, the initial _symtable module interface
introduced in 2.1a2 is replaced. A dictionary of
PySymtableEntryObjects are returned.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/symtablemodule.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c index ccf4aba..ce1f206 100644 --- a/Modules/symtablemodule.c +++ b/Modules/symtablemodule.c @@ -31,7 +31,7 @@ symtable_symtable(PyObject *self, PyObject *args) st = Py_SymtableString(str, filename, start); if (st == NULL) return NULL; - t = Py_BuildValue("OO", st->st_symbols, st->st_scopes); + t = Py_BuildValue("O", st->st_symbols); PySymtable_Free(st); return t; } |