aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMike Pall <mike>2009-12-08 19:49:20 +0100
committerMike Pall <mike>2009-12-08 19:49:20 +0100
commit1d1fed48a002dfc0919135911057ebc255a53e0a (patch)
treec5c6643908374bb8f02f4c7691332d32f6645986 /doc
parent55b16959717084884fd4a0cbae6d19e3786c20c7 (diff)
downloadluajit-1d1fed48a002dfc0919135911057ebc255a53e0a.tar.gz
luajit-1d1fed48a002dfc0919135911057ebc255a53e0a.tar.bz2
luajit-1d1fed48a002dfc0919135911057ebc255a53e0a.zip
RELEASE LuaJIT-2.0.0-beta2v2.0.0-beta2
Diffstat (limited to 'doc')
-rw-r--r--doc/api.html147
-rw-r--r--doc/changes.html32
-rw-r--r--doc/faq.html23
-rw-r--r--doc/install.html59
-rw-r--r--doc/running.html6
-rw-r--r--doc/status.html21
6 files changed, 249 insertions, 39 deletions
diff --git a/doc/api.html b/doc/api.html
index 79788d95..3bb10967 100644
--- a/doc/api.html
+++ b/doc/api.html
@@ -100,12 +100,6 @@ These functions are typically used with the command line options
100Flushes the whole cache of compiled code. 100Flushes the whole cache of compiled code.
101</p> 101</p>
102 102
103<h3 id="jit_flush_tr"><tt>jit.flush(tr)</tt></h3>
104<p>
105Flushes the code for the specified root trace and all of its
106side traces from the cache.
107</p>
108
109<h3 id="jit_onoff_func"><tt>jit.on(func|true [,true|false])<br> 103<h3 id="jit_onoff_func"><tt>jit.on(func|true [,true|false])<br>
110jit.off(func|true [,true|false])<br> 104jit.off(func|true [,true|false])<br>
111jit.flush(func|true [,true|false])</tt></h3> 105jit.flush(func|true [,true|false])</tt></h3>
@@ -142,6 +136,13 @@ of a module to turn off JIT compilation for the whole module for
142debugging purposes. 136debugging purposes.
143</p> 137</p>
144 138
139<h3 id="jit_flush_tr"><tt>status = jit.flush(tr)</tt></h3>
140<p>
141Tries to flush the code for the specified trace and all of its
142side traces from the cache. Returns <tt>true</tt> on success.
143Returns <tt>false</tt> if there are still links to this trace.
144</p>
145
145<h3 id="jit_version"><tt>jit.version</tt></h3> 146<h3 id="jit_version"><tt>jit.version</tt></h3>
146<p> 147<p>
147Contains the LuaJIT version string. 148Contains the LuaJIT version string.
@@ -189,6 +190,140 @@ The debug modules <tt>-jbc</tt>, <tt>-jv</tt> and <tt>-jdump</tt> make
189extensive use of these functions. Please check out their source code, 190extensive use of these functions. Please check out their source code,
190if you want to know more. 191if you want to know more.
191</p> 192</p>
193
194<h2 id="c_api">C API extensions</h2>
195<p>
196LuaJIT adds some extensions to the Lua/C API. The LuaJIT include
197directory must be in the compiler search path (<tt>-I<i>path</i></tt>)
198to be able to include the required header for C code:
199</p>
200<pre class="code">
201#include "luajit.h"
202</pre>
203<p>
204Or for C++ code:
205</p>
206<pre class="code">
207#include "lua.hpp"
208</pre>
209
210<h2 id="luaJIT_setmode"><tt>luaJIT_setmode(L, idx, mode)</tt>
211&mdash; Control VM</h2>
212<p>
213This is a C API extension to allow control of the VM from C code. The
214full prototype of <tt>LuaJIT_setmode</tt> is:
215</p>
216<pre class="code">
217LUA_API int luaJIT_setmode(lua_State *L, int idx, int mode);
218</pre>
219<p>
220The returned status is either success (<tt>1</tt>) or failure (<tt>0</tt>).
221The second argument is either <tt>0</tt> or a stack index (similar to the
222other Lua/C API functions).
223</p>
224<p>
225The third argument specifies the mode, which is 'or'ed with a flag.
226The flag can be <tt>LUAJIT_MODE_OFF</tt> to turn a feature on,
227<tt>LUAJIT_MODE_ON</tt> to turn a feature off, or
228<tt>LUAJIT_MODE_FLUSH</tt> to flush cached code.
229</p>
230<p>
231The following modes are defined:
232</p>
233
234<h3 id="mode_engine"><tt>luaJIT_setmode(L, 0, LUAJIT_MODE_ENGINE|flag)</tt></h3>
235<p>
236Turn the whole JIT compiler on or off or flush the whole cache of compiled code.
237</p>
238
239<h3 id="mode_func"><tt>luaJIT_setmode(L, idx, LUAJIT_MODE_FUNC|flag)</tt><br>
240<tt>luaJIT_setmode(L, idx, LUAJIT_MODE_ALLFUNC|flag)</tt><br>
241<tt>luaJIT_setmode(L, idx, LUAJIT_MODE_ALLSUBFUNC|flag)</tt></h3>
242<p>
243This sets the mode for the function at the stack index <tt>idx</tt> or
244the parent of the calling function (<tt>idx = 0</tt>). It either
245enables JIT compilation for a function, disables it and flushes any
246already compiled code or only flushes already compiled code. This
247applies recursively to all subfunctions of the function with
248<tt>LUAJIT_MODE_ALLFUNC</tt> or only to the subfunctions with
249<tt>LUAJIT_MODE_ALLSUBFUNC</tt>.
250</p>
251
252<h3 id="mode_engine"><tt>luaJIT_setmode(L, trace,<br>
253&nbsp;&nbsp;LUAJIT_MODE_TRACE|LUAJIT_MODE_FLUSH)</tt></h3>
254<p>
255Tries to flush the code for the specified trace and all of its
256side traces from the cache.
257</p>
258
259<h3 id="mode_engine"><tt>luaJIT_setmode(L, idx, LUAJIT_MODE_WRAPCFUNC|flag)</tt></h3>
260<p>
261This mode defines a wrapper function for calls to C functions. The
262first time this is called with <tt>LUAJIT_MODE_ON</tt>, the stack
263index at <tt>idx</tt> must be a <tt>lightuserdata</tt> object holding
264a pointer to the wrapper function. All <b>subsequently created C
265functions</b> are called through the wrapper functions. After the initial
266definition <tt>idx</tt> can be left at <tt>0</tt> when turning the mode
267on or off.
268</p>
269<p>
270The wrapper function can be used for debugging purposes or to catch
271and convert foreign exceptions. Recommended usage can be seen in this
272C++ code excerpt:
273</p>
274<pre class="code">
275#include &lt;exception&gt;
276#include "lua.hpp"
277
278// Catch C++ exceptions and convert them to Lua error messages.
279// Customize as needed for your own exception classes.
280static int wrap_exceptions(lua_State *L, lua_CFunction f)
281{
282 try {
283 return f(L); // Call wrapped function and return result.
284 } catch (const char *s) { // Catch and convert exceptions.
285 lua_pushstring(L, s);
286 } catch (std::exception& e) {
287 lua_pushstring(L, e.what());
288 } catch (...) {
289 lua_pushliteral(L, "caught (...)");
290 }
291 return lua_error(L); // Rethrow as a Lua error.
292}
293
294static int myregister(lua_State *L)
295{
296 ...
297 // Define wrapper function and enable it.
298 lua_pushlightuserdata(L, (void *)wrap_exceptions);
299 luaJIT_setmode(L, -1, LUAJIT_MODE_WRAPCFUNC|LUAJIT_MODE_ON);
300 lua_pop(L, 1);
301 luaL_register(L, "mymodule", myfuncs); // Pass luaL_Reg list.
302 luaJIT_setmode(L, 0, LUAJIT_MODE_WRAPCFUNC|LUAJIT_MODE_OFF);
303 ...
304 // Wrap some more C++ functions which might throw an exception.
305 luaJIT_setmode(L, 0, LUAJIT_MODE_WRAPCFUNC|LUAJIT_MODE_ON);
306 lua_pushcfunction(L, mythrowingfunc1);
307 lua_pushcclosure(L, mythrowingfunc2, 1);
308 luaJIT_setmode(L, 0, LUAJIT_MODE_WRAPCFUNC|LUAJIT_MODE_OFF);
309 ...
310}
311</pre>
312<p>
313Note that you can only define <b>a single global wrapper function</b>,
314so be careful when using this mechanism from multiple C++ modules.
315Also note that this mechanism is not without overhead. It should only
316be enabled for definitions of C++ functions that can actually throw
317exceptions. If you're embedding LuaJIT into an application, only
318enable it <b>after</b> running <tt>luaL_openlibs</tt>.
319</p>
320<p>
321LuaJIT already intercepts exception handling for systems using
322ELF/DWARF2 stack unwinding (e.g. Linux). This is a zero-cost mechanism
323and always enabled. You don't need to use any wrapper functions,
324except when you want to get a more specific error message than
325<tt>"C++&nbsp;exception"</tt>.
326</p>
192<br class="flush"> 327<br class="flush">
193</div> 328</div>
194<div id="foot"> 329<div id="foot">
diff --git a/doc/changes.html b/doc/changes.html
index 6c34b8be..641f1e28 100644
--- a/doc/changes.html
+++ b/doc/changes.html
@@ -43,7 +43,7 @@ div.major { max-width: 600px; padding: 1em; margin: 1em 0 1em 0; }
43<div id="main"> 43<div id="main">
44<p> 44<p>
45This is a list of changes between the released versions of LuaJIT.<br> 45This is a list of changes between the released versions of LuaJIT.<br>
46The current <span style="color: #c00000;">development version</span> is <strong>LuaJIT&nbsp;2.0.0-beta1</strong>.<br> 46The current <span style="color: #c00000;">development version</span> is <strong>LuaJIT&nbsp;2.0.0-beta2</strong>.<br>
47The current <span style="color: #0000c0;">stable version</span> is <strong>LuaJIT&nbsp;1.1.5</strong>. 47The current <span style="color: #0000c0;">stable version</span> is <strong>LuaJIT&nbsp;1.1.5</strong>.
48</p> 48</p>
49<p> 49<p>
@@ -53,6 +53,36 @@ to see whether newer versions are available.
53</p> 53</p>
54 54
55<div class="major" style="background: #ffd0d0;"> 55<div class="major" style="background: #ffd0d0;">
56<h2 id="LuaJIT-2.0.0-beta2">LuaJIT 2.0.0-beta2 &mdash; 2009-11-09</h2>
57<ul>
58<li>Reorganize build system. Build static+shared library on POSIX.</li>
59<li>Allow C++ exception conversion on all platforms
60using a wrapper function.</li>
61<li>Automatically catch C++ exceptions and rethrow Lua error
62(ELF/DWARF2 only).</li>
63<li>Check for the correct x87 FPU precision at strategic points.</li>
64<li>Always use wrappers for libm functions.</li>
65<li>Resurrect metamethod name strings before copying them.</li>
66<li>Mark current trace, even if compiler is idle.</li>
67<li>Ensure FILE metatable is created only once.</li>
68<li>Fix type comparisons when different integer types are involved.</li>
69<li>Fix getmetatable() recording.</li>
70<li>Fix TDUP with dead keys in template table.</li>
71<li><tt>jit.flush(tr)</tt> returns status.
72Prevent manual flush of a trace that's still linked.</li>
73<li>Improve register allocation heuristics for invariant references.</li>
74<li>Compile the push/pop variants of <tt>table.insert()</tt> and
75<tt>table.remove()</tt>.</li>
76<li>Compatibility with MSVC <tt>link&nbsp/debug</tt>.</li>
77<li>Fix <tt>lua_iscfunction()</tt>.</li>
78<li>Fix <tt>math.random()</tt> when compiled with <tt>-fpic</tt> (OSX).</li>
79<li>Fix <tt>table.maxn()</tt>.</li>
80<li>Bump <tt>MACOSX_DEPLOYMENT_TARGET</tt> to <tt>10.4</tt></li>
81<li><tt>luaL_check*()</tt> and <tt>luaL_opt*()</tt> now support
82negative arguments, too.<br>
83This matches the behavior of Lua 5.1, but not the specification.</li>
84</ul>
85
56<h2 id="LuaJIT-2.0.0-beta1">LuaJIT 2.0.0-beta1 &mdash; 2009-10-31</h2> 86<h2 id="LuaJIT-2.0.0-beta1">LuaJIT 2.0.0-beta1 &mdash; 2009-10-31</h2>
57<ul> 87<ul>
58<li>This is the first public release of LuaJIT 2.0.</li> 88<li>This is the first public release of LuaJIT 2.0.</li>
diff --git a/doc/faq.html b/doc/faq.html
index 6f62e1eb..f76308a1 100644
--- a/doc/faq.html
+++ b/doc/faq.html
@@ -72,6 +72,7 @@ Search for: <a href="http://scholar.google.com/scholar?q=JIT+Compiler"><span cla
72Search for: <a href="http://scholar.google.com/scholar?q=Dynamic+Language+Optimizations"><span class="ext">&raquo;</span>&nbsp;Dynamic Language Optimizations</a><br> 72Search for: <a href="http://scholar.google.com/scholar?q=Dynamic+Language+Optimizations"><span class="ext">&raquo;</span>&nbsp;Dynamic Language Optimizations</a><br>
73Search for: <a href="http://scholar.google.com/scholar?q=SSA+Form"><span class="ext">&raquo;</span>&nbsp;SSA Form</a><br> 73Search for: <a href="http://scholar.google.com/scholar?q=SSA+Form"><span class="ext">&raquo;</span>&nbsp;SSA Form</a><br>
74Search for: <a href="http://scholar.google.com/scholar?q=Linear+Scan+Register+Allocation"><span class="ext">&raquo;</span>&nbsp;Linear Scan Register Allocation</a><br> 74Search for: <a href="http://scholar.google.com/scholar?q=Linear+Scan+Register+Allocation"><span class="ext">&raquo;</span>&nbsp;Linear Scan Register Allocation</a><br>
75Here is a list of the <a href="http://article.gmane.org/gmane.comp.lang.lua.general/58908"><span class="ext">&raquo;</span>&nbsp;innovative features in LuaJIT</a>.<br>
75And, you know, reading the source is of course the only way to enlightenment. :-) 76And, you know, reading the source is of course the only way to enlightenment. :-)
76</dd> 77</dd>
77</dl> 78</dl>
@@ -87,6 +88,28 @@ vararg syntax</a>.</dd>
87</dl> 88</dl>
88 89
89<dl> 90<dl>
91<dt>Q: Why do I get this error: "bad FPU precision"?<br>
92<dt>Q: I get weird behavior after initializing Direct3D.<br>
93<dt>Q: Some FPU operations crash after I load a Delphi DLL.<br>
94</dt>
95<dd>
96
97DirectX/Direct3D (up to version 9) sets the x87 FPU to single-precision
98mode by default. This violates the Windows ABI and interferes with the
99operation of many programs &mdash; LuaJIT is affected, too. Please make
100sure you always use the <tt>D3DCREATE_FPU_PRESERVE</tt> flag when
101initializing Direct3D.<br>
102
103Direct3D version 10 or higher do not show this behavior anymore.
104Consider testing your application with older versions, too.<br>
105
106Similarly, the Borland/Delphi runtime modifies the FPU control word and
107enables FP exceptions. Of course this violates the Windows ABI, too.
108Please check the Delphi docs for the Set8087CW method.
109
110</dl>
111
112<dl>
90<dt>Q: Sometimes Ctrl-C fails to stop my Lua program. Why?</dt> 113<dt>Q: Sometimes Ctrl-C fails to stop my Lua program. Why?</dt>
91<dd>The interrupt signal handler sets a Lua debug hook. But this is 114<dd>The interrupt signal handler sets a Lua debug hook. But this is
92currently ignored by compiled code (this will eventually be fixed). If 115currently ignored by compiled code (this will eventually be fixed). If
diff --git a/doc/install.html b/doc/install.html
index b7211d21..3aa60f1c 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -58,17 +58,15 @@ application under x64-based systems, too.
58<h2>Configuring LuaJIT</h2> 58<h2>Configuring LuaJIT</h2>
59<p> 59<p>
60The standard configuration should work fine for most installations. 60The standard configuration should work fine for most installations.
61Usually there is no need to tweak the settings, except when you want to 61Usually there is no need to tweak the settings. The following files
62install to a non-standard path. The following three files hold all 62hold all user-configurable settings:
63user-configurable settings:
64</p> 63</p>
65<ul> 64<ul>
66<li><tt>src/luaconf.h</tt> sets some configuration variables, in 65<li><tt>src/luaconf.h</tt> sets some configuration variables.</li>
67particular the default paths for loading modules.</li> 66<li><tt>Makefile</tt> has settings for <b>installing</b> LuaJIT (POSIX
68<li><tt>Makefile</tt> has settings for installing LuaJIT (POSIX
69only).</li> 67only).</li>
70<li><tt>src/Makefile</tt> has settings for compiling LuaJIT under POSIX, 68<li><tt>src/Makefile</tt> has settings for <b>compiling</b> LuaJIT
71MinGW and Cygwin.</li> 69under POSIX, MinGW and Cygwin.</li>
72<li><tt>src/msvcbuild.bat</tt> has settings for compiling LuaJIT with 70<li><tt>src/msvcbuild.bat</tt> has settings for compiling LuaJIT with
73MSVC.</li> 71MSVC.</li>
74</ul> 72</ul>
@@ -97,9 +95,8 @@ terminal window and change to this directory. Now unpack the archive
97and change to the newly created directory: 95and change to the newly created directory:
98</p> 96</p>
99<pre class="code"> 97<pre class="code">
100tar zxf LuaJIT-2.0.0-beta1.tar.gz 98tar zxf LuaJIT-2.0.0-beta2.tar.gz
101cd LuaJIT-2.0.0-beta1 99cd LuaJIT-2.0.0-beta2</pre>
102</pre>
103<h3>Building LuaJIT</h3> 100<h3>Building LuaJIT</h3>
104<p> 101<p>
105The supplied Makefiles try to auto-detect the settings needed for your 102The supplied Makefiles try to auto-detect the settings needed for your
@@ -109,6 +106,18 @@ which is probably the default on your system, anyway. Simply run:
109<pre class="code"> 106<pre class="code">
110make 107make
111</pre> 108</pre>
109<p>
110By default modules are only searched under the prefix <tt>/usr/local</tt>.
111You can add an extra prefix to the search paths by appending the
112<tt>PREFIX</tt> option, e.g.:
113</p>
114<pre class="code">
115make PREFIX=/home/myself/lj2
116</pre>
117<p>
118Note for OSX: <tt>MACOSX_DEPLOYMENT_TARGET</tt> is set to <tt>10.4</tt>
119in <tt>src/Makefile</tt>. Change it, if you want to build on an older version.
120</p>
112<h3>Installing LuaJIT</h3> 121<h3>Installing LuaJIT</h3>
113<p> 122<p>
114The top-level Makefile installs LuaJIT by default under 123The top-level Makefile installs LuaJIT by default under
@@ -124,20 +133,19 @@ sudo make install
124Otherwise specify the directory prefix as an absolute path, e.g.: 133Otherwise specify the directory prefix as an absolute path, e.g.:
125</p> 134</p>
126<pre class="code"> 135<pre class="code">
127sudo make install PREFIX=/opt/lj2 136make install PREFIX=/home/myself/lj2
128</pre> 137</pre>
129<p> 138<p>
130But note that the installation prefix and the prefix for the module paths 139Obviously the prefixes given during build and installation need to be the same.
131(configured in <tt>src/luaconf.h</tt>) must match.
132</p> 140</p>
133<p style="color: #c00000;"> 141<p style="color: #c00000;">
134Note: to avoid overwriting a previous version, the beta test releases 142Note: to avoid overwriting a previous version, the beta test releases
135only install the LuaJIT executable under the versioned name (i.e. 143only install the LuaJIT executable under the versioned name (i.e.
136<tt>luajit-2.0.0-beta1</tt>). You probably want to create a symlink 144<tt>luajit-2.0.0-beta2</tt>). You probably want to create a symlink
137for convenience, with a command like this: 145for convenience, with a command like this:
138</p> 146</p>
139<pre class="code" style="color: #c00000;"> 147<pre class="code" style="color: #c00000;">
140sudo ln -sf luajit-2.0.0-beta1 /usr/local/bin/luajit 148sudo ln -sf luajit-2.0.0-beta2&nbsp;/usr/local/bin/luajit
141</pre> 149</pre>
142 150
143<h2 id="windows">Windows Systems</h2> 151<h2 id="windows">Windows Systems</h2>
@@ -145,8 +153,8 @@ sudo ln -sf luajit-2.0.0-beta1 /usr/local/bin/luajit
145<p> 153<p>
146Either install one of the open source SDKs 154Either install one of the open source SDKs
147(<a href="http://mingw.org/"><span class="ext">&raquo;</span>&nbsp;MinGW</a> or 155(<a href="http://mingw.org/"><span class="ext">&raquo;</span>&nbsp;MinGW</a> or
148<a href="http://www.cygwin.com/"><span class="ext">&raquo;</span>&nbsp;Cygwin</a>) which come with modified 156<a href="http://www.cygwin.com/"><span class="ext">&raquo;</span>&nbsp;Cygwin</a>), which come with a modified
149versions of GCC plus the required development headers. 157GCC plus the required development headers.
150</p> 158</p>
151<p> 159<p>
152Or install Microsoft's Visual C++ (MSVC) &mdash; the freely downloadable 160Or install Microsoft's Visual C++ (MSVC) &mdash; the freely downloadable
@@ -159,8 +167,8 @@ Next, download the source package and unpack it using an archive manager
159</p> 167</p>
160<h3>Building with MSVC</h3> 168<h3>Building with MSVC</h3>
161<p> 169<p>
162Open a "Visual Studio .NET Command Prompt" and <tt>cd</tt> to the 170Open a "Visual Studio .NET Command Prompt", <tt>cd</tt> to the
163directory where you've unpacked the sources. Then run this command: 171directory where you've unpacked the sources and run these commands:
164</p> 172</p>
165<pre class="code"> 173<pre class="code">
166cd src 174cd src
@@ -176,14 +184,12 @@ are in your path. Then <tt>cd</tt> to the directory where
176you've unpacked the sources and run this command for MinGW: 184you've unpacked the sources and run this command for MinGW:
177</p> 185</p>
178<pre class="code"> 186<pre class="code">
179cd src
180mingw32-make 187mingw32-make
181</pre> 188</pre>
182<p> 189<p>
183Or this command for Cygwin: 190Or this command for Cygwin:
184</p> 191</p>
185<pre class="code"> 192<pre class="code">
186cd src
187make 193make
188</pre> 194</pre>
189<p> 195<p>
@@ -191,10 +197,11 @@ Then follow the installation instructions below.
191</p> 197</p>
192<h3>Installing LuaJIT</h3> 198<h3>Installing LuaJIT</h3>
193<p> 199<p>
194Copy <tt>luajit.exe</tt> and <tt>lua51.dll</tt> 200Copy <tt>luajit.exe</tt> and <tt>lua51.dll</tt> (built in the <tt>src</tt>
195to a newly created directory (any location is ok). Add <tt>lua</tt> 201directory) to a newly created directory (any location is ok).
196and <tt>lua\jit</tt> directories below it and copy all Lua files 202Add <tt>lua</tt> and <tt>lua\jit</tt> directories below it and copy
197from the <tt>lib</tt> directory of the distribution to the latter directory. 203all Lua files from the <tt>lib</tt> directory of the distribution
204to the latter directory.
198</p> 205</p>
199<p> 206<p>
200There are no hardcoded 207There are no hardcoded
diff --git a/doc/running.html b/doc/running.html
index db69578c..fcb28e85 100644
--- a/doc/running.html
+++ b/doc/running.html
@@ -69,11 +69,11 @@ interactive mode, too.
69<p class="indent" style="color: #c00000;"> 69<p class="indent" style="color: #c00000;">
70Note: the beta test releases only install under the versioned name on 70Note: the beta test releases only install under the versioned name on
71POSIX systems (to avoid overwriting a previous version). You either need 71POSIX systems (to avoid overwriting a previous version). You either need
72to type <tt>luajit-2.0.0-beta1</tt> to start it or create a symlink 72to type <tt>luajit-2.0.0-beta2</tt> to start it or create a symlink
73with a command like this: 73with a command like this:
74</p> 74</p>
75<pre class="code" style="color: #c00000;"> 75<pre class="code" style="color: #c00000;">
76sudo ln -sf luajit-2.0.0-beta1 /usr/local/bin/luajit 76sudo ln -sf luajit-2.0.0-beta2&nbsp;/usr/local/bin/luajit
77</pre> 77</pre>
78<p> 78<p>
79Unlike previous versions <b>optimization is turned on by default</b> in 79Unlike previous versions <b>optimization is turned on by default</b> in
@@ -119,7 +119,7 @@ itself. For a description of their options and output format, please
119read the comment block at the start of their source. 119read the comment block at the start of their source.
120They can be found in the <tt>lib</tt> directory of the source 120They can be found in the <tt>lib</tt> directory of the source
121distribution or installed under the <tt>jit</tt> directory. By default 121distribution or installed under the <tt>jit</tt> directory. By default
122this is <tt>/usr/local/share/luajit-2.0.0-beta1/jit</tt> on POSIX 122this is <tt>/usr/local/share/luajit-2.0.0-beta2/jit</tt> on POSIX
123systems. 123systems.
124</p> 124</p>
125 125
diff --git a/doc/status.html b/doc/status.html
index 23c14c76..aa4a1e26 100644
--- a/doc/status.html
+++ b/doc/status.html
@@ -90,7 +90,22 @@ known incompatibilities with standard Lua:
90<ul> 90<ul>
91<li> 91<li>
92The Lua <b>debug API</b> is missing a couple of features (call/return 92The Lua <b>debug API</b> is missing a couple of features (call/return
93hooks) and shows slightly different behavior (no per-coroutine hooks). 93hooks) and shows slightly different behavior (no per-coroutine hooks,
94no tail call counting).
95</li>
96<li>
97<b>Bytecode</b> currently cannot be loaded or dumped. Note that
98the bytecode format differs from Lua&nbsp;5.1 &mdash; loading foreign
99bytecode is not supported at all.
100</li>
101<li>
102Some of the <b>configuration options</b> of Lua&nbsp;5.1 are not supported:
103<ul>
104<li>The <b>number type</b> cannot be changed (it's always a <tt>double</tt>).</li>
105<li>The stand-alone executable cannot be linked with <b>readline</b>
106to enable line editing. It's planned to add support for loading it
107on-demand.</li>
108</ul>
94</li> 109</li>
95<li> 110<li>
96Most other issues you're likely to find (e.g. with the existing test 111Most other issues you're likely to find (e.g. with the existing test
@@ -105,7 +120,7 @@ demonstrable need is shown.
105<li> 120<li>
106The <b>JIT compiler</b> is not complete (yet) and falls back to the 121The <b>JIT compiler</b> is not complete (yet) and falls back to the
107interpreter in some cases. All of this works transparently, so unless 122interpreter in some cases. All of this works transparently, so unless
108you use -jv, you'll probably never notice (the interpreter is quite 123you use <tt>-jv</tt>, you'll probably never notice (the interpreter is quite
109fast, too). Here are the known issues: 124fast, too). Here are the known issues:
110<ul> 125<ul>
111<li> 126<li>
@@ -119,7 +134,7 @@ effort.
119</li> 134</li>
120<li> 135<li>
121<b>Recursion</b> is not traced yet. Often no trace will be generated at 136<b>Recursion</b> is not traced yet. Often no trace will be generated at
122all or some unroll limit will catch it and aborts the trace. 137all or some unroll limit will catch it and abort the trace.
123</li> 138</li>
124<li> 139<li>
125The trace compiler currently does not back off specialization for 140The trace compiler currently does not back off specialization for