</p>
<p>
If the second argument is <tt>true</tt>, JIT compilation is also
-enabled, disabled or flushed recursively for all subfunctions of a
-function. With <tt>false</tt> only the subfunctions are affected.
+enabled, disabled or flushed recursively for all sub-functions of a
+function. With <tt>false</tt> only the sub-functions are affected.
</p>
<p>
The <tt>jit.on</tt> and <tt>jit.off</tt> functions only set a flag
the parent of the calling function (<tt>idx = 0</tt>). It either
enables JIT compilation for a function, disables it and flushes any
already compiled code or only flushes already compiled code. This
-applies recursively to all subfunctions of the function with
-<tt>LUAJIT_MODE_ALLFUNC</tt> or only to the subfunctions with
+applies recursively to all sub-functions of the function with
+<tt>LUAJIT_MODE_ALLFUNC</tt> or only to the sub-functions with
<tt>LUAJIT_MODE_ALLSUBFUNC</tt>.
</p>
<li>Unified closure checks in <tt>jit.*</tt>.</li>
<li>Fixed some range checks in <tt>jit.util.*</tt>.</li>
<li>Fixed __newindex call originating from <tt>jit_settable_str()</tt>.</li>
-<li>Merged with Lua 5.1 alpha (including early bugfixes).</li>
+<li>Merged with Lua 5.1 alpha (including early bug fixes).</li>
</ul>
<p>
This is the first public release of LuaJIT.
<meta name="Language" content="en">
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
+<style type="text/css">
+table.compat {
+ line-height: 1.2;
+ width: 35em;
+}
+tr.compathead td {
+ font-weight: bold;
+}
+td.compatos {
+ width: 40%;
+}
+td.compatcc {
+ width: 30%;
+ vertical-align: top;
+}
+</style>
</head>
<body>
<div id="site">
make && sudo make install
</pre>
<p>
-LuaJIT currently builds out-of-the box on all popular x86 or x64 systems
-(Linux, Windows, OSX etc.).
-</p>
+LuaJIT currently builds out-of-the box on most x86 or x64 systems.
+Here's the compatibility matrix for the supported combinations of
+operating system, CPU and compilers:
+</p>
+<table class="compat">
+<tr class="compathead">
+<td class="compatos">Operating system</td>
+<td class="compatcc">x86 (32 bit)</td>
+<td class="compatcc">x64 (64 bit)</td>
+</tr>
+<tr class="odd separate">
+<td class="compatos">Linux</td>
+<td class="compatcc">GCC 4.x<br>GCC 3.4</td>
+<td class="compatcc">GCC 4.x</td>
+</tr>
+<tr class="even">
+<td class="compatos">Windows 98/XP/Vista/7</td>
+<td class="compatcc">MSVC (EE)<br>Windows SDK<br>MinGW (GCC)<br>Cygwin (GCC)</td>
+<td class="compatcc">MSVC<br>Windows SDK</td>
+</tr>
+<tr class="odd">
+<td class="compatos">OSX 10.3-10.6</td>
+<td class="compatcc">GCC 4.x<br>GCC 3.4</td>
+<td class="compatcc">GCC 4.x</td>
+</tr>
+<tr class="even">
+<td class="compatos">*BSD, other</td>
+<td class="compatcc">GCC 4.x<br>GCC 3.4</td>
+<td class="compatcc">(not supported)</td>
+</tr>
+</table>
<h2>Configuring LuaJIT</h2>
<p>
</p>
<p>
You can cross-compile to a 32 bit binary on a multilib x64 OS by
-installing the multilib development pacakges (e.g. <tt>libc6-dev-i386</tt>
+installing the multilib development packages (e.g. <tt>libc6-dev-i386</tt>
on Debian/Ubuntu) and running:
</p>
<pre class="code">
<pre class="code">
-pagezero_size 10000 -image_base 100000000
</pre>
+<p>
+It's recommended to <tt>rebase</tt> all (self-compiled) shared libraries
+which are loaded at runtime on OSX/x64 (e.g. C extension modules for Lua).
+See: <tt>man rebase</tt>
+</p>
<br class="flush">
</div>
<div id="foot">
<p>
This options allows fine-tuned control of the optimizations used by
the JIT compiler. This is mainly intended for debugging LuaJIT itself.
-Please note that the JIT compiler is extremly fast (we are talking
+Please note that the JIT compiler is extremely fast (we are talking
about the microsecond to millisecond range). Disabling optimizations
doesn't have any visible impact on its overhead, but usually generates
code that runs slower.