Hi Duy, On Tue, Dec 11, 2012 at 8:50 PM, Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> wrote: > On Wed, Dec 12, 2012 at 7:53 AM, Tomas Carnecky > <tomas.carnecky@xxxxxxxxx> wrote: >> If it doesn't, it would be trivial to add. It's a one-liner. It's been a while >> since I used Lua, but it would be something like this: >> >> void L_putenv(lua_State *L) { >> putenv(lua_tostring(L, 1)); >> } >> >> and then somewhere during setup: >> >> lua_register(L, "putenv", L_putenv); > > I should have done my homework before asking, but well.. is there any > way to automate this? If you want these basic POSIX functions, use an existing library. If you want to automate adding a number of application specific functions, you can use swig or similar. AFAIK, all languages rely on third party tools like swig to assist in automated binding generation. Although, automated binding generation is usually used to make it easy to export bindings for multiple languages easily. If Lua is going to be used as a "standard" module glue language, using swig is really overkill. > If we use lua for writing "builtin" commands, > we'll need to export a lot of C functions and writing wrappers like > this is boring and time consuming. Also, assume I export fn(char*,int) > to Lua, then I change the prototype to fn(char*, char*), can Lua spot > all the call sites at compile time (or something) so I can update > them? If the API calls are generic (don't require special handling), you can use some preprocessor magic to save time/space. -- - Patrick Donnelly -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html