3
These are the installation instructions for LuaGnome. It is distributed
4
primarily as source tarball, with precompiled binaries possibly available
5
for Linux (different architectures), Windows, and as Debian packages (most
6
likely not the latest versions). You can also get the latest source from
7
the CVS repository on LuaForge.
10
<h3>Prerequisites</h3>
13
The following software is required to build LuaGnome:
21
<li>ffi (foreign function interface)</li>
22
<li>(optional) <a href="http://cmph.sf.net/">cmph</a></li>
23
<li>The libraries to support, i.e. glib, gdk, gtk, atk, cairo etc., with
24
their header files.</li>
30
<li>Fetch the source from either CVS or as source tarball, unpack.</li>
31
<li>Run the script <tt>./configure</tt> (which is a Lua script, not
33
<li>Run <tt>make</tt></li>
37
On success, you can now run the included tests, examples or other programs.
38
If something didn't work, please use your skillz to fix it, otherwise write
39
about your problems on the project's forums on LuaForge.
45
This is a library to create and use minimal perfect hash (mph) tables.
46
LuaGnome relies heavily on hashing to look up functions, constants, types and
47
fundamental types. Thus having a good hashing algorithm and functions
48
available improves execution speed and reduces memory usage. All these tables
49
are computed at build time, saved as .c files which are then compiled into the
54
Note: a hash <i>function</i> computes a hash value for a given input string. A
55
hash <i>algorithm</i> maps an input string to a bucket number, and requires at
56
least one hash function.
60
Cmph comes with various algorithms. Two of them are currently supported by
61
LuaGnome, which doesn't link with the cmph library, but implements the (simple)
62
lookup functions directly to save space (and because cmph doesn't offer saving
63
a hash table to a .c file).
67
<li>The older <b>fch</b> algorithm already delivers excellent results.</li>
68
<li>The newer <b>bdz</b> algorithm, available starting with cmph version 0.8,
69
results in slightly smaller hash table data which is generated a lot
71
<li>A fallback algorithm (named <b>simple</b>) is not part of cmph. It
72
produces somewhat larger data tables and probably runs somewhat slower at
73
runtime, but doesn't require cmph to build.</li>
77
For comparison, the complete build of LuaGnome on Linux/i386 with all 10
78
libaries supported as of 12/2008 results in the following combined binary
83
<tr><th>Algorithm</th><th>Size in kB</th></tr>
84
<tr><td>simple</td><td>415</td></tr>
85
<tr><td>fch</td><td>372</td></tr>
86
<tr><td>bdz</td><td>370</td></tr>