Lua: FAQ (original) (raw)
Frequently Asked Questions
Here are answers to some frequently asked questions about Lua.
For an introduction to what Lua is, see thissummaryor learn how toget started with Lua.
For programming questions, see the community-maintainedLuaFaqand also the much longeruFAQ.
1 – Distribution
See thedownloadandget startedpages for instructions on how to get source code and binaries for Lua.
1.1 – What do I need to build Lua?
Lua is implemented in pure ANSI C and compiles unmodified in all known platforms. All you need to build Lua is an ANSI C compiler (gcc andclangare a popular ones). Lua also compiles cleanly as C++.
If you are building Lua in a Unix system (like Linux or macOS), then you probably already have everything you need and simply typing make should do it. (You'll only have to choose a suitable platform.) Otherwise, see thenext question. In any case, for full instructions see the READMEthat comes with the distribution.Chapter 1of the bookBeginning Lua Programmingcontains detailed instructions for downloading, building, and installing Lua. Here are simple instructions for common platforms:
curl -L -R -O https://www.lua.org/ftp/lua-5.4.8.tar.gz tar zxf lua-5.4.8.tar.gz cd lua-5.4.8 make all test
If you don't have curl, try wget.
If you don't have the time or the inclination to compile Lua yourself, get a binary fromLuaBinaries. If you only want to try Lua, try alive demo.
1.2 – How do I build Lua in Windows and other systems?
This depends on your compiler. Most compilers in these platforms require that you create "project" files. You'll need to create projects (or whatever your compiler uses) for building the library, the interpreter, and the compiler. The sources are all in the src directory. The exact lists of which modules should go into which project are given in the README. See alsoBuildingLuain thewiki.Chapter 1of the bookBeginning Lua Programmingcontains detailed instructions for downloading, building, and installing Lua.
If you don't have the time or the inclination to compile Lua yourself, get a binary fromLuaBinaries.
1.3 – When is the next version due?
Lua is in continuous development but new versions areinfrequent.
Lua 5.4.8 was released on 4 Jun 2025.
1.4 – What changes will the next version bring?
For a preview of what is coming in the next version, try awork versionwhen available.
If you're concerned with incompatibilities, you shouldn't, because we make every effort to avoid introducing any incompatibilities. When incompatibilities are unavoidable, previous code is usually supported unmodified, possibly by building Lua with a suitable compilation flag. In any case, thereference manualcontains alist of incompatibilities.
1.5 – Is Lua free software?
Yes, Lua is freely available for any purpose, including commercial purposes, at absolutely no cost, and using it requires no paperwork. Read the details in thelicense page.
1.6 – Is Lua compatible with GPL software?
Yes. Lua is distributed under the terms of the very liberal and well-knownMIT license, which iscompatible with GPLand is approved by theOpen Source Initiative. Read the details in thelicense page.
1.7 – What do I call software derived from Lua?
Lua is intended to be used in other people's software, including yours. In most cases, Lua is simply extended with new functions that adapt Lua to your specific domain. This is exactly what Lua was designed for. When the time comes to distribute your software two questions may arise: "May I still call the language inside my software Lua?" and "May I call it something else?".
The answer is the following: If the syntax and the semantics of the language (that is, the parser and the virtual machine) remain the same, then the language is still Lua. If you simply add new libraries, or even replace the standard Lua libraries with your own libraries, the language is still the same, and you don't need to (and probably shouldn't) give it a completely different name.
If you have changed the syntax or the semantics of the language, then it's probably a minor extension and you'll probably benefit from calling your language a Lua variant, so that you can refer users to existing Lua documentation and community, with the caveats relating to your extension of the language.
Usually, people use some name that has Lua as part of it (CGILua, LuaMan, LuaOrb, etc.), so that it is clear that it uses Lua but it is not the official Lua distribution. In other words, it should be very clear that your software uses Lua (or, more specifically, that the language inside your software is Lua), but also it should be clear that your software is not Lua.
In any case, please give us credit for Lua, according to thelicense.
If this explanation is still unclear, pleasecontact us.
1.8 – Is there a public revision control repository?
There is apublic mirror at GitHubof Lua development code, as seen by the Lua team. It contains the full history of all commits, but is mirrored irregularly. Please do not send pull requests. Send bug reports and suggestions to themailing list. Lua is open-source software but it is not openly developed. Readthis explanation.
If you want to see a preview of what is coming in the next version, you'll have to wait until awork versionbecomes available.
1.9 – Do you accept patches?
We encourage discussions based on tested code solutions for problems and enhancements, but we never incorporate third-party code verbatim. We always try to understand the issue and the proposed solution and then, if we choose to address the issue, we provide our own code. All code in Lua is written by us. See also theprevious question.
2 – Information
Complete information on Lua can be found in itshome page. You may want to read asummary first, choose an entry point from thesite map, or learn how toget started with Lua.
2.1 – Is there a mailing list for Lua?
Yes, a friendly and active one calledlua-l. Everyone is welcome. Read all about ithere.
For discussions in Portuguese, there isLua BR, the Brazilian version of lua-l.
2.2 – Is there a newsgroup for Lua?
No, just use themailing list. If you want to read the postings using a web interface, visitGoogle Groupsor see the archives atMARC. You may want also want tosearch the archives.
If you're looking for a Q&A forum for Lua, trystackoverfloworpt.stackoverflow.
2.3 – How do I report a bug in Lua?
First, try to make sure that you have indeed found a bug.Checkwhether the problem has been alreadyreported(and probably fixed).Search the archivesof themailing listto see whether someone else has come across the same problem and have a fix or an explanation. After that research, if you still think you may have found a bug, post a report in themailing list.
Before reporting a bug, try to identify a minimal program that exhibits the bug, also known asMWEandSSCCE. This makes it much easier to reproduce, document, and track down the bug. Also, read Simon Tatham's essay onHow to Report Bugs Effectively. In particular, make sure to mention the exact Luareleasethat contains the bug.
2.4 – Who uses Lua?
Lua is used in many products and projects around the world, including several well-known games. The full list is too long for us to keep track. See alist of lists.
2.5 – Are there any books on Lua?
Yes, several. See the complete listhere. The bookProgramming in Luais a detailed and authoritative introduction to all aspects of Lua programming written by Lua's chief architect. Thefourth editionappeared in 2016 and is also available as ane-book. The first edition was published in 2003 and is freely availableonline.Previous editionsare available in several languages. There are severalbooks on Lua by other authorsas well.
2.6 – How can I help to support the Lua project?
You can help tosupport the Lua projectbybuying a bookpublished by Lua.org and bymaking a donation.
You can also help to spread the word about Lua by buying Lua products atZazzle.