[IronPython] NameError: locals() is not defined?

Dan Eloff dan.eloff at gmail.com
Tue Jun 24 04:20:13 CEST 2008


Thanks, Beta 3 here I come.

-Dan

On Mon, Jun 23, 2008 at 9:15 PM, Dino Viehland
<dinov at exchange.microsoft.com> wrote:
> It seems to be fixed in beta 3.  It's probably a bug in the interpreter as writing the snippet out and executing w/ execfile, which doesn't run under the interpreter, works in beta 2 as well.
>
> The reason it got silently fixed was because between the two versions the interpreter was moved from M.S.Core.dll up to M.S.dll and a bunch of bugs were fixed along the way.  In beta 3 the interpreter is also now always used for exec or eval - previously it avoided certain constructs it couldn't support.
>
> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Dan Eloff
> Sent: Monday, June 23, 2008 7:02 PM
> To: Discussion of IronPython
> Subject: [IronPython] NameError: locals() is not defined?
>
> In IronPython b2 I get:
>
>>>> s = '''
> ... def body(context):
> ...     def ccall():
> ...             body = lambda: None
> ...             context.update(locals())
> ...     ccall()
> ...
> ... '''
>>>> d = {}
>>>> exec s in d
>>>> c = {}
>>>> d['body'](c)
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "", line unknown, in Interpreted_body_1
> NameError: name 'locals' is not defined
>
> This works fine in CPython:
>
>>>> s = '''
> ... def body(context):
> ...     def ccall():
> ...             body = lambda: None
> ...             context.update(locals())
> ...     ccall()
> ...
> ... '''
>>>> exec s in d
>>>> c = {}
>>>> d['body'](c)
>>>> c
> {'body': <function <lambda> at 0x0359CCB0>, 'context': {...}}
>
> Any idea why?
>
> Thanks,
> -Dan
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>



More information about the Ironpython-users mailing list