| ||
... the best things in life are free ... |
These are the extensions and tools we have developed for Lua programming language. All these things are free to use for anyone in both private and commercial environment. | |||
mod_lua apache module | just a very simple apache module which allows to run both pure Lua scripts (and bytecode files) and HTML files with embedded pieces of Lua code (similar to PHP). | Linux, Win32 | Details |
titmouse editor/debugger | component (window-class) which can be used stand-alone or enbedded in your own application. It provides integrated editor and debugger (break-points, step into/over, variable inspection, expression evaluation) | Win32 | Details |
xtg_lua_lib function library | library with many useful functions present in other development enveronment we use (number, string, date, file and SQLdb functions) | Win32 | Details |
XTG Systems home Lua home Scintilla home |
mod_lua will report both compile-time and run-time errors in a developer-friendly
way to ease the debugging. The module provides two handlers, one for pure-Lua modules,
the other for LHTML files (HTML with Lua source-code embedded within <?lua ?> brackets).
mod_lua source code and binary releases can be found here:
mod_lua10.rh7.zip for RedHat 7, Apache 1.3.14
Compilation on Linux: you need apache-devel package installed and Lua headers and
static libraries liblua.a (core) and liblualib.a (lualib). Then just have a look at the
Makefile which is included in the release. Be root and run make all.
This should compile and install the module with the other Apache modules.
Compilation on Win32: you need MSVC6 and Apache binaries and sources installed,
plus Lua header files and static libraries liblua.a (core) and liblualib.a (lualib). Then
copy the source files (mod_lua.c, mod_lua_handler.c and mod_lua.h) into
apache/src/modules/experimental directory and copy the project file (mod_lua.dsp)
into apache/src/os/win32 directory. Open Apache workspace file and add the project
mod_lua.dsp to this workspace and compile it. You will find module mod_lua.so in the
apache/src/os/win32/Release (or Debug) directory. You have to copy it by hand into
apache/modules directory where the other modules reside.
Setting up Apache to use mod_lua:
Lua-html-handler itself registers
two functions in Lua: print and import. Print function just takes all its arguments as strings
and writes them out. Import function takes single string argument - name of the file. This name
can be either absolute path (starting with slash(/)) or relative path. If the path is absolute
it is not changed. If the path is relative, then the current path (web-page directory) is
prepended. Then is called lua_dofile.
The name of the tool (titmouse) is kind of symbolic, those of you
who know this bird will recall that it is very small and nice and clever one.
Currently you can download windows binaries only. These binaries contain the titmouse
component embedded in a very simple application called xtgvdl (standing for XTG Visual
Debugger for Lua) plus xtgluc.dll which is Lua interpreter enhanced with some dozens
of functions which we find useful (ODBC connectivity, some number, string and date routines;
the list of functions can be found here).
Please view this as a kind of demo you can have a look at and play with a bit. I will release
the sources and the binaries for the Titmouse component itself in a short time (there is some
cleanup needed in the sources). This application can be freely used and the component will be
free to use and develop under the same conditions as Lua itself.
There is no need to install the tool, just download the zip file, unzip it and run
xtgvdl10.exe. Please keep in mind that this application is still in development and
that it may contain some bugs.
Titmouse currently supports working with several files at once, Lua syntax highliting
and indentation guides (thanks to Scintilla editor), setting break-points, syntax
check, run to break, step over, step into, stop execution. You can set watches
and inspect variables and expressions after step, break and at the script termination.
Titmouse also prepared to support custom loading and saving of the scripts. This feature is
intended for future use when it could be possible to eg. load and save the scripts
from/into databases (we use SQL databases a lot). Debugging in xtgvdl can be controlled
from keyboard completely which eases this task a lot.
titmouse and xtgvdl binary releases can be found here:
titmouse and xtgvdl screen shots can be found here:
There is no release of this library avilable yet but it will be in a short time here.
I have to do some function name clean-ups (current names are kept close to the functions
of the other development tools we use) and some small updates. But you can give a try to
titmouse in xtgvdl which currently contains all these functions bundled in xtgluc
library and the basic documentation is included.
mod_lua apache module
mod_lua is very simple apache module. It is compilable on Linux and Win32 platforms, it
links to lua core and lualib statically. It can run both pure-Lua modules (source-code
and byte-compiled) and HTML files with Lua source-code embedded in a way similar to PHP.
Please consider this module to be more a demo of how this can be done although it surely
can be used.
mod_lua10.src.zip
mod_lua10.win32.zip for Win32, Apache 1.3.19
(this applies to all platforms)
You need to add three directives into httpd.conf to make it work.
LoadModule lua_module modules/mod_lua.so
AddHandler lua-handler .lua
AddHandler lua-html-handler .lhtml
The first one will load the module into Apache.
The other two will attach the files with extension .lua to lua-handler
and the files with extension .lhtml to lua-html-handler. Lua-handler is
very simple, it just runs the file through lua_dofile function. Lua-html-handler
works in a way similar to PHP, it parses the file source and leaves everything
intact (sends everything out unchanged) until it finds the <?lua opening bracket. Then
it searches for the closing bracket ?> and evaluates the contents like a Lua source code.
Then it continues the same way until the end of the file.titmouse editor/debugger
Titmouse is integreated Lua editor and debugger. I have started working on it around
Christmas 2000 and the goal was to make it easier to me and to my colleagues to work
with Lua scripts. The idea was to be able to edit and debug the code in the same window
in order to fix the bugs very easily and also to be able to work with several scripts
at once. I have been very happy to find Scintilla editor component which has eased my task
very much and which has become the core part of Titmouse. Scintilla is free source code
editor with syntax highliting and other nice features, it supports Lua syntax highliting too,
and it has some debugging features bult-in (eg. showing break-point and current line marks).
I have wanted for Titmouse to be more a component than a stand-alone application, the object
which could be used in other programs which need to provide Lua editing and debugging
features to its users.
xtgvdl_10.win32.zip
tm01.jpg (editing, compilation error after check)
tm02.jpg (debugging session prepared to run)
xtg_lua_lib function library
Before I started working on the titmouse project, I had started working on support
libraries which enabled us to use Lua. We are working with SQL databases a lot
so we needed SQL connectivity and some data manipulation routines. We have developed
several C/C++ tool libraries before for these tasks, so I have only exported some
of these functions to Lua (with some modifications where needed). This gave us
ODBC connectivity plus some dozens of number, string and date manipulation routines.
Last update: 2001-04-14 by
Roman Vanicek (vanicek@xtgsystems.com)