[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: setfenv(0,tbl) in Lua 5.1
- From: Dubiousjim <lists+lua@...>
- Date: Sat, 19 May 2012 15:25:04 -0400
I'm trying to understand the exact behavior of thread environments in
Lua 5.1. (I am familiar with the changes introduced in 5.2.)
>From the Lua 5.1 ref manual, I would expect the following to print
false, however it prints true:
flag = true
local newG = { flag = false}
local coroutine, print,setfenv = coroutine,print,setfenv
coroutine.wrap(function()
setfenv(0, newG)
print(flag)
end)()
Can someone explain? And what could be written in place of `print(flag)`
that would rely on newG for the lookup? getfenv(0) does return newG,
but any functions or new coroutine calls I insert there still seem to be
using the original _G.
--
Jim Pryor
dubiousjim@gmail.com