[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Some notes about Lua 4.0 alpha
- From: Roberto Ierusalimschy <roberto@...>
- Date: Fri, 16 Jun 2000 12:13:45 -0300
To complement the reply given by lhf:
- you must be very careful when using lbuffer.c's functions. Lua itself
uses this buffer for many tasks, so it is not safe to call Lua while using
this buffer (unless you create a "new" buffer; see, for instance,
lstrlib.c->add_s, that calls a Lua function in the middle of a gsub).
- By the same token, you must be careful when using dynamic memory inside
Lua, because Lua uses longjmp in case of errors; that may create memory
leaks in your implementation. (For instance, luaL_verror is a function that
never returns, an so would never free a dynamically allocated buffer.)
- you cannot free variable ldo.c->lua_dofile():source before calling
do_main. luaZ_Fopen puts a pointer to this variable inside the structure
ZIO z. (However, you should be able to set -DMAXFILENAME=60 or other
smaller limit; we will fix that for the next version.)
- You can reduce the memory used by FuncState if you define smaller limits
for some arrays: For instance, -DMAXLOCALS=50 and -DMAXUPVALUES=8 is more
than enough for most applications. Moreover, the memory used by LexState
will be reduced in next version with the end of $if.
-- Roberto