CloneTrooper1019
#123742448Wednesday, January 22, 2014 2:40 AM GMT

We have already discussed this a billion times Its not happening.
cntkillme
#123742619Wednesday, January 22, 2014 2:42 AM GMT

newproxies are still overrated, I realized just how slow they were and switched to tables with this little method to prevent rawset/table.insert to insert into the actual table: do local real={} fake=setmetatable({},{__index=real}) end fake.blah
CloneTrooper1019
#123742801Wednesday, January 22, 2014 2:44 AM GMT

@cnt Whats the point of using do alone? No one ever told me :P
cntkillme
#123742926Wednesday, January 22, 2014 2:45 AM GMT

Just opening a scope, so the "real" table can't be accessed but the "fake" can
TheScriptAdventurer
#123743972Wednesday, January 22, 2014 2:58 AM GMT

@CloneTrooper1019: What is so wrong with 5.2 from your standpoint? I'm just curious.
TheLuaWeaver
#123747307Wednesday, January 22, 2014 3:35 AM GMT

Did you not read my bit about why that can be bad, Cnt? That mem might not get cleaned up, and __gc won't work. ~LuaWeaver; Programmer, gamer, developer.
cntkillme
#123747504Wednesday, January 22, 2014 3:37 AM GMT

Oh, I forgot c;
TheScriptAdventurer
#123753450Wednesday, January 22, 2014 4:48 AM GMT

Again, why would those things EVER be needed in Roblox?
Kenetec
#123760712Wednesday, January 22, 2014 9:24 AM GMT

how about no lua 5.2 is stupid
TheScriptAdventurer
#123763960Wednesday, January 22, 2014 1:28 PM GMT

GIVE a reason as to why rather than saying "it's stupid"
appropriations
#123764875Wednesday, January 22, 2014 1:54 PM GMT

So many things will break. Roblox would probably have to re-write almost everything that makes RBX.Lua different to standard Lua. Keyboard not found. Press F1 to continue.
CloneTrooper1019
#123798964Wednesday, January 22, 2014 11:21 PM GMT

Lets see. No global function environments No newproxy goto is for bloody lazy people Everything would break Its bad
MettaurSp
#123803847Thursday, January 23, 2014 12:13 AM GMT

TheScriptAdventurer
#123809045Thursday, January 23, 2014 1:10 AM GMT

What would break exactly? And why? Lua is offered as an API, so it shouldn't be so embedded in Roblox Lua to require a full scale rewrite, unless they mixed the Lua library code with Roblox Lua implemention code ( which would be extremely unprofessional). Nothing really major minus the stuff already mentioned is changed, the C API generally has no changes put to it. Why would they have to rewrite EVERYTHING?
cntkillme
#123809294Thursday, January 23, 2014 1:13 AM GMT

Plus it is a bit trickier to sandbox qq
appropriations
#123809934Thursday, January 23, 2014 1:19 AM GMT

Bytecode execution exploit fix Don't know how difficult this would be, but yeah. Keyboard not found. Press F1 to continue.
TheScriptAdventurer
#123810251Thursday, January 23, 2014 1:22 AM GMT

There are ways around that. You see, since _ENV is the, well, environment, all you have to do to change the environment for a chunk is to change the variable. If you wanted to sandbox, you can do it like so: function sandboxedcall(env, func, ...) _ENV = env return func(....) -- env is the environment for this function in this call: sandboxing! end function printLOLLFAIL() print("LOLL FAIL") end sandboxedcall({}, printLOLLFAIL()) -- fails, since print is not in the new environment printLOLLFAIL() -- would succeed! ---------- You guys seem to not even understand the new environment concepts for 5.2! Global environments technically still kind of exist, and as to the loss of _G's special status, there are better ways to share functions and data across scripts, such as StringValue objects and ModuleScripts.
cntkillme
#123810370Thursday, January 23, 2014 1:23 AM GMT

'Plus it is a bit trickier to sandbox qq' I did not say it's hard, nor did I say impossible...
TheScriptAdventurer
#123810607Thursday, January 23, 2014 1:26 AM GMT

But the new change is not even a significant impediment!
suremark
#123811868Thursday, January 23, 2014 1:37 AM GMT

I'm going to reiterate what I said. The GOTO statement in and of itself is not bad, but it is very abusable by newbie programmers. Structured programming must be taught first, or else irresponsible use of GOTO will lead to awful spaghetti code. I don't think most 9-14 year olds (ROBLOX's target demographic) would be immediately cognizant of this. Now, about another thing you said: "First off, why would we in the context of Riblox EVER need to fake indexes in a table?! If you want to use the index metamethod to do some extra computation on the side whenever a certain index is used, why can't you use a get method instead?! It is just unnecessary in this context." Could you elaborate more? I really don't have any idea what you're talking about. LuaWeaver clearly pointed out the necessity of newproxy under certain circumstances.
TheScriptAdventurer
#123811879Thursday, January 23, 2014 1:38 AM GMT

local _ENV = env Fail on my part. Also, how now that I think of it, you could use _ENV to share stuff across scripts!
TheScriptAdventurer
#123812245Thursday, January 23, 2014 1:41 AM GMT

What I meant was, in Roblox, I don't see a context where you would a proxy in the first place, since the primary reason for intercepting table accesses would be for security reasons (at least in my mind). But who are you protecting the table FROM? Yourself? If you wanted to do some extra computational stuff upon such an access, why don't you write a function that gets the value and does that extra stuff you wanted to do on the side?
suremark
#123812360Thursday, January 23, 2014 1:42 AM GMT

Script builders-- that's the only real application of secure sandboxing.
cntkillme
#123812702Thursday, January 23, 2014 1:46 AM GMT

Roblox's sandbox
suremark
#123812882Thursday, January 23, 2014 1:48 AM GMT

I would imagine that ROBLOX's sandboxing is handled C-side-- the Lua API probably does the rest.