[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Hooks for I/O, memory, etc?
- From: "J. Perkins" <jason@...>
- Date: Tue, 11 Jun 2002 10:37:38 -0400
Roberto Ierusalimschy wrote:
The drawback is that everyone using Lua would have to start it with
something like
lua_open(&realloc);
You could always call lua_open(NULL), which isn't so bad.
> If we call it before lua_open, where would we store such value?
> (Lua uses no global/static variables. Everything in Lua is stored
> in a lua_State, which is created by lua_open.)
Well, I guess I could argue semantics and say that you're
using global variables to store the memory and file I/O
function pointers. Allowing us an API to change those
variables just makes Lua more flexible.
> What about varargs, with name-value pairs?
> lua_open("realloc", &my_realloc, NULL)
Ugh. How about a structure:
struct {
lua_ReallocFunc realloc;
lua_FreeFunc free;
} lua_Callbacks;
lua_open(lua_Callbacks* callbacks);
...where 'callbacks' can be NULL?
As for file I/O, printing, etc.: if I can override these things
without touching the Lua code, great. But again, considering the
intent of Lua is to embed it into a larger application, the
process for overriding these things should be explained clearly
in the manual. I shouldn't have to hunt around the source code
looking for stdc calls, as I have for past versions.
Okay, I'm probably overdue to say that Lua is awesome, and
despite all my complaining I will probably include it in every
project I write. My thanks to the authors for their time and
effort, and for listening to people like me.
Jason