mid
Newcomer
Obviously, nothing is concrete as of the moment. I mean the potential changes that are still in discussion. So far, these were the (big only) changes:
- Warning system. This is, AFAIK, a pretty controversial addition on the mailing list. I don't remember what the arguments against it are, but I remember agreeing. I'll look up the arguments soon.
%p
specifier instring.format
. Potential security breach, maybe?- To-be-closed or const locals. This, for me, seems like a needlessly complicating feature to add to a language. I would probably be more in favor if the syntax was a bit less ugly, although
<const>
can be done with just good coding practices. Any reason we can't just ditchclose
functions and/or let that happen in__gc
? - Userdata now have multiple user values. AWESOME! Wonderful feature to add for all the backend developers.
- I think the biggest (potential!) change is the addition of
undef
. This is, in essence, a fix to table holes that break the#
operator and several other things. This feature is not enabled by default, as far as I'm aware, it's enabled via a macro and allows you to do something of this sort:
Code:local t = {a = 1, b = 2}; t.b = undef;
nil
does this exact same task, it erases the key completely from the table. Whereas withundef
enabled,nil
instead would be placed as a value of the key, instead of erasing it. A more detailed explanation can be found on this e-mail by Ierusalimschy.