[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Next Version of Lua?
- From: Olivier Hamel <evilpineapple@...>
- Date: Wed, 10 Jun 2009 06:44:17 -0400
steve donovan wrote:
On Wed, Jun 10, 2009 at 12:02 PM, Olivier Hamel<firstname.lastname@example.org> wrote:
It does this already, last time I checked (-3 secs ago) Are you
thinking of hex string literals?
Oops, yah. My mistake, sorry!
That could work, I just think it'd be/feel more elegant/neater to make
them ops, then perhaps we can meta-overload them as well... ?
As operators? I think most of us would live with a set of 'blessed'
functions to do this.
That will not be an issue, Roberto has already publicly confirmed he
will be break everyone's code anyways:
"Lua 5.2 is allowed to make design changes that break full
The thing, we're used to the rule that multiple args only get expanded
at the end of a table ctor. Maybe an explicit 'explode' function, but
keeping the default behaviour? Changes like this can break lots of
But I do get your point, but the problem is that such an explode
function would also be under the restrictions as the original function
unless it were hacked deep into Lua, something I doubt would be popular
with Roberto + others (including me). Perhaps some sort of lexer marker
No, no, I mean, if it's NOT nil then the metamethod get's called, it
would allow you to create enforced single-assignment lists for example,
or prevent overriding of a meta-method in the metatable. To prevent a
new method from being inserted into the host table would require a
__setindex sort of scheme, though with __setindex you could check for
the current value of the key to check if it were nil. So __setindex
solves both aspects! :)
(Correct me if I'm wrong, but __setindex doesn't sound like any vanilla
meta-method I know of. Am I wrong?)
OK, so like __setindex if the key is nil, but works even otherwise.
You can then override '=' for keys basically. But there are tricks
you can use already to get this effect, e.g. the key is actually
called '_a' but use __setindex so that 'A.a = 2' updates _a, etc.