Preliminary support for future nested scopes
compile.h: #define NESTED_SCOPES_DEFAULT 0 for Python 2.1
           __future__ feature name: "nested_scopes"
symtable.h: Add st_nested_scopes slot.  Define flags to track exec and
    import star.
Lib/test/test_scope.py: requires nested scopes
compile.c: Fiddle with error messages.
    Reverse the sense of ste_optimized flag on
    PySymtableEntryObjects.  If it is true, there is an optimization
    conflict.
    Modify get_ref_type to respect st_nested_scopes flags.
    Refactor symtable_load_symbols() into several smaller functions,
    which use struct symbol_info to share variables.  In new function
    symtable_update_flags(), raise an error or warning for import * or
    bare exec that conflicts with nested scopes.  Also, modify handle
    for free variables to respect st_nested_scopes flag.
    In symtable_init() assign st_nested_scopes flag to
    NESTED_SCOPES_DEFAULT (defined in compile.h).
    Add preliminary and often incorrect implementation of
    symtable_check_future().
    Add symtable_lookup() helper for future use.
Showing
Please
register
or
sign in
to comment
