lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Just a thought on the subject:
minimal extension could be to add some symbols ('i' & 'n'?) to the __mode
field, telling that we are using __index and __newindex in protected mode
(like __gettable, __settable). This will require minimal change to the
language, and (maybe) make everyone happy?

Best Regards,
Grisha

----- Original Message ----- 
From: "Mark Hamburg" <mhamburg@adobe.com>
To: "Lua list" <lua@bazar2.conectiva.com.br>
Sent: Thursday, June 24, 2004 5:57 PM
Subject: Re: lua hacking wondering


> The chief argument I can see for providing an alternative to the proxy
> approach is that if you have to put items in a separate table to trap
> writes, then you get in the way of reads and more significantly
iterations.
> If I'd like to build a data structure that looks from a consumption
> standpoint just like a Lua table but provides notification when changed,
> that's actually a bit difficult without overriding various other functions
> like pairs and next.
>
> As for simply providing "better" support for proxies, I have to agree that
> there needs to be a demonstrable need. The benefits of a userdata proxy as
> opposed to a table proxy are probably mostly speed -- you avoid the effort
> to look things up in the empty table though if the table really is empty
> that probably doesn't cost too much. I suspect that an empty userdata and
an
> empty table have roughly the same space cost but I haven't pulled up the
> headers to check.
>
> If sticking with the existing proxy system, the most useful extension I
> could see to Lua would be to add table.swap which would exchange the
> contents of two tables so that you could convert an existing table into a
> proxied table. This would not be compatible with userdata-based proxies.
>
> As a longer term design process, it might be worth examining what one
would
> expect from a Lua proxy data type but I would agree that expanding the set
> of basic data types is something best done with care.
>
> Mark
>