[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: RE: VM object types (was: TIOBE: Lua in the Top 20)
- From: "Jerome Vuarand" <jerome.vuarand@...>
- Date: Fri, 13 Jul 2007 13:47:27 -0400
Roberto Ierusalimschy wrote:
>> And ... IMHO mutable strings probably won't have less management
>> overhead than buffers implemented with userdatas. Yes, I know,
>> passing userdatas to C APIs expecting plain strings doesn't work
>> right now. But this can be changed.
>
> This seems a more promissing approach. Diego suggested something in
> these lines some time ago. (Of course, the userdata must be converted
> to a char*, not to a Lua string; this is tricky with metamethods...)
It could be possible to override lua_istring, lua_tostring and
lua_pushstring to accept/generate such string userdata (which would be
identified with a __isstring boolean metamember). That way many binary
modules designed for non-mutable strings could work transparently with
mutable ones.
For the lua_tostring it's straightforward, for lua_pushstring it may be
desirable to activate it on a per function basis (which could have a
__pushmutablestrings boolean member in the function metatable) by the
module user.