[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Coding 5.1-style packages to allow static linking of C code..
- From: duck <duck@...>
- Date: Sun, 9 Jan 2005 04:36:56 +0000
Just took a bit of time to look at compat-5.1.lua, and at the 
the thread from September 2004 where the package stuff came from.
Now, consider a hybrid C/Lua pacakge in which you require() Lua code which 
itself require()s a C library (e.g. luasocket). Do I understand correctly 
that if you statically link the C library, then you must register its 
initialisation function in the table package.preload at startup time, so 
that require() will behave correctly? 
OTOH, a package written entirely in C can be statically linked, 
initialised at startup and added to package.loaded *or* handled via 
package.preload, as above.
If I've got this correct, my next question is this: is there a proposed 
standard way (or a standard luaL_helper() function) to take care of the 
preload case?
Indeed, is there a propsed standard way for hybrid C/Lua packages to have 
their Lua code "statically linked" and tidily called from the library 
initialisation code in the standard Lua interpreter? 
(At the moment, statically-linked C libs are handled simply by adding 
their init functions to the EXTRA_LIBS list. It would be neat if there 
were a similarly elegant and standard way to "statickise" libraries like 
luasocket -- and, indeed, compat-5.1 :-) -- to make the building of an 
all-in-one Lua binary easy.)