[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- 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<evilpineapple@cox.net> wrote:
It does this already, last time I checked (-3 secs ago) Are you
thinking of hex string literals?
Oops, yah. My mistake, sorry!
As operators? I think most of us would live with a set of 'blessed'
functions to do this.
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... ?
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
code.
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
compatibility." :p
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
instead?
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.
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?)
Olivier Hamel