|
I haven't done sandboxing yet, but here are my 2 cents:
Why do you think so? 'setfenv' and 'getfenv' implemented for _ENV aren't compatible with 5.1 analogs only when the _ENV upvalue isn't used. I doubt this will break much. Meanwhile, I think _ENV would make new sandboxes easier to make. _ENV is certainly very good for persistence, especially Pluto-like custom __persist functions.(*) I guess most users won't care or won't need to know about _ENV. But those that do are unlikely to upgrade, as they'll have to ditch their sandboxing frameworks and redesign them from scratch.
As for __pairs and __ipairs, they have potential to break sandboxing or persistence by making it possible to fool the functions of framework that were written for 5.1.
-- Best regards, Sergey Rozhenko mailto:sergroj@mail.ru