Sign in to follow this  
Zouflain

Lua prebuilt functions cause script to terminate. Environment issues?

Recommended Posts

I suspect this has to do with the recent change of operating system, but I'm having a rather frustrating time with trying to work with Lua's metatables on my newest linux install (Ubuntu 12.04). I've used Lua in just about every game I've written, and never seen this before. Put simply, scripts terminate at the first mention of getmetatable or setmetatable. I suspect it has to do with the environment or some sort of global blacklist, because [i]none[/i] of the predefined functions appear to work (so even print('hello world') causes termination!), but I've never before had to deal with it before whilst working with Lua on windows and for basic OOD, I'll need get- and setmetatable.

Is the environment blacklisted by default on Linux (or, specifically, Ubuntu)? And if it [i]starts[/i] without defining the default functions, how can I create a global environment that enables them without being able to refer to the functions I wish to enable in that environment? I imagine I have to do it from the C++ side, but I can't find the appropriate documentation for this (http://pgl.yoyo.org/luai/i/lua_setfenv is not appropriate if there is no way to create a table with the correct references from within lua itself).

Share this post


Link to post
Share on other sites
Are you using the distributed Lua interpreter, or one you've built yourself? It sounds as if luaL_openlibs isn't being called on your state, if none of the built-ins are available.

Share this post


Link to post
Share on other sites
[quote name='FLeBlanc' timestamp='1347905053' post='4980966']
Are you using the distributed Lua interpreter, or one you've built yourself? It sounds as if luaL_openlibs isn't being called on your state, if none of the built-ins are available.
[/quote]Aha! I did not build this myself, I used one of the official distributions (actually, through my package manager). This did the trick. Thank you. (Thinking about it, it seems as though I [i]should[/i] have had to do this on windows. Why didn't I?).

Share this post


Link to post
Share on other sites
That's weird that an official distribution build was broken like this. You might check with the package maintainer and make sure they haven't inadvertently broken something. Or, it could possibly have been some kind of "safe" build (since access to the basic libraries, such as the OS stuff, could be regarded by some as "unsafe"). Glad you fixed your problem, though.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this