lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi Tim,

> The compiler clearly knows if it’s emitting a function with _ENV as the first upvalue, since it takes care to ensure it is always the first upvalue in the function. However, this information doesnt seem to make it into the compiled chunk anywhere (that I can see).

You may try to avoid this problem by serializing a special value instead of _ENV. When you serialize the upvalues, you know if the first one points to the _ENV for the given function, so just store a special table value for it, so that when you deserialize it to setup proper value, you know that this function expects _ENV as the first upvalue, so you can do whatever is appropriate in this case.

Paul.