Lua Site Lua Page

I love this language, its syntax, its compactness, its simplicity and its power...

You should find here some information about Lua (mostly project and binaries for MSVC6).
This page needs badly to be updated, I just corrected the bare minimum to be consistent...

If you want to see some of my Lua scripts, you should go to my Lua Wiki page.

Lua 5.0.2

The tarball of this version is here.

Here are the Windows binaries I have generated (exe, dlls, libs). (LuaBinaries-5.0.2.zip ~433KB)

Here are the Windows binaries I have packaged for smaller download and immediate running: there are lua.exe, luac.exe, the HTML manual (original one where I included an index I generated (with Lua) for fast search) and a .reg file to associate .lua files to lua.exe (to be edited to the correct path). (LuaBinary-5.0.2.zip ~127KB)

Here are the projects and additional files I used to generate the above binaries. (LuaProjects-5.0.2.zip ~18KB)

Lua 4.0.2

With the official bug correcting update! The tarball of patched source files being here.
The tarball of all the source files is here.

Here are the Windows binaries I have generated (exe, dlls, libs). (LuaBinaries-4.0.2.zip ~282KB)

Here are the Windows binaries I have packaged for smaller download and immediate running: there are lua.exe, luac.exe, the HTML manual and a .reg file to associate .lua files to lua.exe (to be edited to the correct path). (LuaBinary-4.0.2.zip ~100KB)

Here are the projects and additional files I used to generate the above binaries. (LuaProjects-4.0.2.zip ~14KB)

I first (4.0.0) tried to mimic the provided Makefiles (create libraries for Lua and LibLua) and to be as close as possible to the Lua 3.2 Windows binaries: Lua.exe and LuaC.exe being standalone, Lua.dll and LuaLib.dll depending on the MSVCRT.dll, LuaLib.dll depending on the Lua.dll (makes sense...).
Now all binaries depends on the MSVCRT.dll, that make small executable, and avoid .obj file mixing.
I have added Lua+Lib.dll to allow simplier and more compact distributions. Lua.dll and LuaLib.dll are still available, as you may want to dynamically load only the smallest possible (and needed) binary. You can, for example, use the first, shell-like, line to indicate to the programming loading Lua scripts which DLL to load. So a script not using libraries would use a # Lua.dll while one needing some library would use a # LuaLib.dll.
Lua.dll exports all the functions found in lua.h and luadebug.h, plus (new in 4.0.1) the luaxlib.h functions.
LuaLib.dll exports all the functions found in lualib.h.
Lua+Lib.dll exports all the functions found in both of the above DLLs.

Things changed from the previous (4.0.1) distribution:

Things changed from the first (4.0.0) distribution:

Note for both versions

The projects use the default settings: __cdecl Calling convention and 8 Bytes Struct member alignment. If this cause trouble, you can change this, and/or warn me so I will update the projects.
I disabled the pre-compiled headers and some other non-sense Microsoft stuff (actually useful for very large projects, not for Lua...).
No options from the config file are used here. If you need them, you add them by hand...
Optimization is simply set to Maximize Speed.
I have set the Warning level to 4. All I got is a warning because one function have non-reachable code (because of code added to avoid warning with another compiler :-), and several ones because of an implicit cast of int to short (no longer in version 5).
A note about the undocumented /opt:nowin98 option I used. It forces MSCV6 to avoid to pad the binary with zeroes to put segments in 4096 bytes boundaries (if I recall correctly). So, with this option, it is padded the way MSVC5 was doing, resulting in slightly smaller file. The purpose of this padding is to speed up loading executables in memory under Win98 (and perhaps Win2000). Note that this option doesn't prevent running on Win98! It will just be loaded some microseconds later... Again, useful only for the bloated Microsoft products...

There is one workspace file (Lua.dsw) to put on the Lua directory. There are 7 project files:
LibLua.dsp and LibLuaLib.dsp generate the object files in the ./obj directory and LibLua.lib + LibLuaLib.lib in the ./bin directory. (in release 4.0.0, everything was put in ./obj dir.). You should build these projects first, but now (4.0.1 and above), project dependencies ensure the correct order of compilation.
DLLLua.dsp, DLLLuaLib.dsp and DLLLua+Lib.dsp generate the Lua.dll, LuaLib.dll and Lua+Lib.dll files and the corresponding import libraries.
Lua.dsp and LuaC.dsp generate the Lua.exe and LuaC.exe files.
Put LibLua.dsp, DLLLua.dsp and DLLLua+Lib.dsp in the .\src directory, LibLuaLib.dsp and DLLLuaLib.dsp in the .\src\lib directory. Put Lua.dsp in the .\src\lua directory and LuaC.dsp in the .\src\luac directory.
The .def and .rc[2] files must be in the .\etc directory.
The projects create a .\bin directory (.\dbin for debug) for the binaries, and a .\obj (.\dobj) for the intermediate files.

Go to main page. Contact me, comment this

Created: 2002?
Updated: ? (Minor update (links): 2004/05/30)