Jump to content
  • Advertisement
Sign in to follow this  
Zouflain

Lua prebuilt functions cause script to terminate. Environment issues?

This topic is 2221 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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 none 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 starts 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
Advertisement
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

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.
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 should 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
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!