aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMike Pall <mike>2023-08-21 02:28:49 +0200
committerMike Pall <mike>2023-08-21 02:28:49 +0200
commitc34594681909cac98d44629863df2c7afd93eaf0 (patch)
tree494edfb290b2354cd738e07751c58d65d6b1c1c2 /doc
parent158a284cc9c33ade9054df976018401e4996cfbd (diff)
downloadluajit-c34594681909cac98d44629863df2c7afd93eaf0.tar.gz
luajit-c34594681909cac98d44629863df2c7afd93eaf0.tar.bz2
luajit-c34594681909cac98d44629863df2c7afd93eaf0.zip
Update documentation for switch to rolling releases.
Diffstat (limited to 'doc')
-rw-r--r--doc/bluequad.css8
-rw-r--r--doc/contact.html4
-rw-r--r--doc/ext_c_api.html4
-rw-r--r--doc/ext_ffi.html4
-rw-r--r--doc/ext_ffi_api.html4
-rw-r--r--doc/ext_ffi_semantics.html4
-rw-r--r--doc/ext_ffi_tutorial.html4
-rw-r--r--doc/ext_jit.html8
-rw-r--r--doc/extensions.html5
-rw-r--r--doc/faq.html191
-rw-r--r--doc/install.html236
-rw-r--r--doc/luajit.html53
-rw-r--r--doc/running.html5
-rw-r--r--doc/status.html107
14 files changed, 58 insertions, 579 deletions
diff --git a/doc/bluequad.css b/doc/bluequad.css
index 14a0d1b9..7399f625 100644
--- a/doc/bluequad.css
+++ b/doc/bluequad.css
@@ -206,11 +206,9 @@ img.right {
206.ext { 206.ext {
207 color: #ff8000; 207 color: #ff8000;
208} 208}
209.new { 209.note {
210 font-size: 6pt; 210 padding: 0.5em 1em;
211 vertical-align: middle; 211 border-left: 3px solid #bfcfff;
212 background: #ff8000;
213 color: #ffffff;
214} 212}
215#site { 213#site {
216 clear: both; 214 clear: both;
diff --git a/doc/contact.html b/doc/contact.html
index 7b8cd404..c32bc9dc 100644
--- a/doc/contact.html
+++ b/doc/contact.html
@@ -42,9 +42,9 @@
42<a href="ext_c_api.html">Lua/C API</a> 42<a href="ext_c_api.html">Lua/C API</a>
43</li></ul> 43</li></ul>
44</li><li> 44</li><li>
45<a href="status.html">Status</a> 45<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
46</li><li> 46</li><li>
47<a href="faq.html">FAQ</a> 47<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
48</li><li> 48</li><li>
49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
50</li></ul> 50</li></ul>
diff --git a/doc/ext_c_api.html b/doc/ext_c_api.html
index ee64ec0f..43c82047 100644
--- a/doc/ext_c_api.html
+++ b/doc/ext_c_api.html
@@ -42,9 +42,9 @@
42<a class="current" href="ext_c_api.html">Lua/C API</a> 42<a class="current" href="ext_c_api.html">Lua/C API</a>
43</li></ul> 43</li></ul>
44</li><li> 44</li><li>
45<a href="status.html">Status</a> 45<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
46</li><li> 46</li><li>
47<a href="faq.html">FAQ</a> 47<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
48</li><li> 48</li><li>
49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
50</li></ul> 50</li></ul>
diff --git a/doc/ext_ffi.html b/doc/ext_ffi.html
index c78fef84..683c0cd0 100644
--- a/doc/ext_ffi.html
+++ b/doc/ext_ffi.html
@@ -42,9 +42,9 @@
42<a href="ext_c_api.html">Lua/C API</a> 42<a href="ext_c_api.html">Lua/C API</a>
43</li></ul> 43</li></ul>
44</li><li> 44</li><li>
45<a href="status.html">Status</a> 45<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
46</li><li> 46</li><li>
47<a href="faq.html">FAQ</a> 47<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
48</li><li> 48</li><li>
49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
50</li></ul> 50</li></ul>
diff --git a/doc/ext_ffi_api.html b/doc/ext_ffi_api.html
index 570ea4fe..d5f7032f 100644
--- a/doc/ext_ffi_api.html
+++ b/doc/ext_ffi_api.html
@@ -47,9 +47,9 @@ td.abiparam { font-weight: bold; width: 6em; }
47<a href="ext_c_api.html">Lua/C API</a> 47<a href="ext_c_api.html">Lua/C API</a>
48</li></ul> 48</li></ul>
49</li><li> 49</li><li>
50<a href="status.html">Status</a> 50<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
51</li><li> 51</li><li>
52<a href="faq.html">FAQ</a> 52<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
53</li><li> 53</li><li>
54<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 54<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
55</li></ul> 55</li></ul>
diff --git a/doc/ext_ffi_semantics.html b/doc/ext_ffi_semantics.html
index 5ecb2f4e..381a2010 100644
--- a/doc/ext_ffi_semantics.html
+++ b/doc/ext_ffi_semantics.html
@@ -47,9 +47,9 @@ td.convop { font-style: italic; width: 40%; }
47<a href="ext_c_api.html">Lua/C API</a> 47<a href="ext_c_api.html">Lua/C API</a>
48</li></ul> 48</li></ul>
49</li><li> 49</li><li>
50<a href="status.html">Status</a> 50<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
51</li><li> 51</li><li>
52<a href="faq.html">FAQ</a> 52<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
53</li><li> 53</li><li>
54<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 54<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
55</li></ul> 55</li></ul>
diff --git a/doc/ext_ffi_tutorial.html b/doc/ext_ffi_tutorial.html
index 94e2f61d..03b6ec56 100644
--- a/doc/ext_ffi_tutorial.html
+++ b/doc/ext_ffi_tutorial.html
@@ -49,9 +49,9 @@ td.idiomlua b { font-weight: normal; color: #2142bf; }
49<a href="ext_c_api.html">Lua/C API</a> 49<a href="ext_c_api.html">Lua/C API</a>
50</li></ul> 50</li></ul>
51</li><li> 51</li><li>
52<a href="status.html">Status</a> 52<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
53</li><li> 53</li><li>
54<a href="faq.html">FAQ</a> 54<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
55</li><li> 55</li><li>
56<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 56<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
57</li></ul> 57</li></ul>
diff --git a/doc/ext_jit.html b/doc/ext_jit.html
index 908701b6..b1dbf36c 100644
--- a/doc/ext_jit.html
+++ b/doc/ext_jit.html
@@ -42,9 +42,9 @@
42<a href="ext_c_api.html">Lua/C API</a> 42<a href="ext_c_api.html">Lua/C API</a>
43</li></ul> 43</li></ul>
44</li><li> 44</li><li>
45<a href="status.html">Status</a> 45<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
46</li><li> 46</li><li>
47<a href="faq.html">FAQ</a> 47<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
48</li><li> 48</li><li>
49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 49<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
50</li></ul> 50</li></ul>
@@ -131,7 +131,9 @@ Contains the LuaJIT version string.
131<h3 id="jit_version_num"><tt>jit.version_num</tt></h3> 131<h3 id="jit_version_num"><tt>jit.version_num</tt></h3>
132<p> 132<p>
133Contains the version number of the LuaJIT core. Version xx.yy.zz 133Contains the version number of the LuaJIT core. Version xx.yy.zz
134is represented by the decimal number xxyyzz. 134is represented by the decimal number xxyyzz.<br>
135<b>DEPRECATED after the switch to
136<a href="https://luajit.org/status.html#release"><span class="ext">&raquo;</span>&nbsp;rolling releases</a>. zz is frozen at 99.</b>
135</p> 137</p>
136 138
137<h3 id="jit_os"><tt>jit.os</tt></h3> 139<h3 id="jit_os"><tt>jit.os</tt></h3>
diff --git a/doc/extensions.html b/doc/extensions.html
index fc673ef7..f8b45c28 100644
--- a/doc/extensions.html
+++ b/doc/extensions.html
@@ -59,14 +59,15 @@ td.excinterop {
59<a href="ext_c_api.html">Lua/C API</a> 59<a href="ext_c_api.html">Lua/C API</a>
60</li></ul> 60</li></ul>
61</li><li> 61</li><li>
62<a href="status.html">Status</a> 62<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
63</li><li> 63</li><li>
64<a href="faq.html">FAQ</a> 64<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
65</li><li> 65</li><li>
66<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 66<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
67</li></ul> 67</li></ul>
68</div> 68</div>
69<div id="main"> 69<div id="main">
70
70<p> 71<p>
71LuaJIT is fully upwards-compatible with Lua 5.1. It supports all 72LuaJIT is fully upwards-compatible with Lua 5.1. It supports all
72<a href="https://www.lua.org/manual/5.1/manual.html#5"><span class="ext">&raquo;</span>&nbsp;standard Lua 73<a href="https://www.lua.org/manual/5.1/manual.html#5"><span class="ext">&raquo;</span>&nbsp;standard Lua
diff --git a/doc/faq.html b/doc/faq.html
deleted file mode 100644
index f160fffe..00000000
--- a/doc/faq.html
+++ /dev/null
@@ -1,191 +0,0 @@
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3<head>
4<title>Frequently Asked Questions (FAQ)</title>
5<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6<meta name="Copyright" content="Copyright (C) 2005-2023">
7<meta name="Language" content="en">
8<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
9<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
10<style type="text/css">
11dd { margin-left: 1.5em; }
12</style>
13</head>
14<body>
15<div id="site">
16<a href="https://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
17</div>
18<div id="head">
19<h1>Frequently Asked Questions (FAQ)</h1>
20</div>
21<div id="nav">
22<ul><li>
23<a href="luajit.html">LuaJIT</a>
24<ul><li>
25<a href="https://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
26</li><li>
27<a href="install.html">Installation</a>
28</li><li>
29<a href="running.html">Running</a>
30</li></ul>
31</li><li>
32<a href="extensions.html">Extensions</a>
33<ul><li>
34<a href="ext_ffi.html">FFI Library</a>
35<ul><li>
36<a href="ext_ffi_tutorial.html">FFI Tutorial</a>
37</li><li>
38<a href="ext_ffi_api.html">ffi.* API</a>
39</li><li>
40<a href="ext_ffi_semantics.html">FFI Semantics</a>
41</li></ul>
42</li><li>
43<a href="ext_jit.html">jit.* Library</a>
44</li><li>
45<a href="ext_c_api.html">Lua/C API</a>
46</li></ul>
47</li><li>
48<a href="status.html">Status</a>
49</li><li>
50<a class="current" href="faq.html">FAQ</a>
51</li><li>
52<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
53</li></ul>
54</div>
55<div id="main">
56<dl id="info">
57<dt>Q: Where can I learn more about LuaJIT and Lua?</dt>
58<dd>
59<ul style="padding: 0;">
60<li>The <a href="https://luajit.org/list.html"><span class="ext">&raquo;</span>&nbsp;LuaJIT mailing list</a> focuses on topics
61related to LuaJIT.</li>
62<li>News about Lua itself can be found at the
63<a href="https://www.lua.org/lua-l.html"><span class="ext">&raquo;</span>&nbsp;Lua mailing list</a>.
64The mailing list archives are worth checking out for older postings
65about LuaJIT.</li>
66<li>The <a href="https://lua.org"><span class="ext">&raquo;</span>&nbsp;main Lua.org site</a> has complete
67<a href="https://www.lua.org/docs.html"><span class="ext">&raquo;</span>&nbsp;documentation</a> of the language
68and links to books and papers about Lua.</li>
69<li>The community-managed <a href="http://lua-users.org/wiki/"><span class="ext">&raquo;</span>&nbsp;Lua Wiki</a>
70has information about diverse topics.</li>
71</ul></dd>
72</dl>
73
74<dl id="tech">
75<dt>Q: Where can I learn more about the compiler technology used by LuaJIT?</dt>
76<dd>
77Please use the following Google Scholar searches to find relevant papers:<br>
78Search for: <a href="https://scholar.google.com/scholar?q=Trace+Compiler"><span class="ext">&raquo;</span>&nbsp;Trace Compiler</a><br>
79Search for: <a href="https://scholar.google.com/scholar?q=JIT+Compiler"><span class="ext">&raquo;</span>&nbsp;JIT Compiler</a><br>
80Search for: <a href="https://scholar.google.com/scholar?q=Dynamic+Language+Optimizations"><span class="ext">&raquo;</span>&nbsp;Dynamic Language Optimizations</a><br>
81Search for: <a href="https://scholar.google.com/scholar?q=SSA+Form"><span class="ext">&raquo;</span>&nbsp;SSA Form</a><br>
82Search for: <a href="https://scholar.google.com/scholar?q=Linear+Scan+Register+Allocation"><span class="ext">&raquo;</span>&nbsp;Linear Scan Register Allocation</a><br>
83Here is a list of the <a href="http://lua-users.org/lists/lua-l/2009-11/msg00089.html"><span class="ext">&raquo;</span>&nbsp;innovative features in LuaJIT</a>.<br>
84And, you know, reading the source is of course the only way to enlightenment.
85</dd>
86</dl>
87
88<dl id="arg">
89<dt>Q: Why do I get this error: "attempt to index global 'arg' (a nil value)"?<br>
90Q: My vararg functions fail after switching to LuaJIT!</dt>
91<dd>LuaJIT is compatible to the Lua 5.1 language standard. It doesn't
92support the implicit <tt>arg</tt> parameter for old-style vararg
93functions from Lua 5.0.<br>Please convert your code to the
94<a href="https://www.lua.org/manual/5.1/manual.html#2.5.9"><span class="ext">&raquo;</span>&nbsp;Lua 5.1
95vararg syntax</a>.</dd>
96</dl>
97
98<dl id="x87">
99<dt>Q: Why do I get this error: "bad FPU precision"?<br>
100<dt>Q: I get weird behavior after initializing Direct3D.<br>
101<dt>Q: Some FPU operations crash after I load a Delphi DLL.<br>
102</dt>
103<dd>
104
105DirectX/Direct3D (up to version 9) sets the x87 FPU to single-precision
106mode by default. This violates the Windows ABI and interferes with the
107operation of many programs &mdash; LuaJIT is affected, too. Please make
108sure you always use the <tt>D3DCREATE_FPU_PRESERVE</tt> flag when
109initializing Direct3D.<br>
110
111Direct3D version 10 or higher do not show this behavior anymore.
112Consider testing your application with older versions, too.<br>
113
114Similarly, the Borland/Delphi runtime modifies the FPU control word and
115enables FP exceptions. Of course, this violates the Windows ABI, too.
116Please check the Delphi docs for the Set8087CW method.</dd>
117</dl>
118
119<dl id="ctrlc">
120<dt>Q: Sometimes Ctrl-C fails to stop my Lua program. Why?</dt>
121<dd>The interrupt signal handler sets a Lua debug hook. But this is
122ignored by compiled code. If your program is running in a tight loop
123and never falls back to the interpreter, the debug hook never runs and
124can't throw the "interrupted!" error.<br>
125You have to press Ctrl-C twice to stop your program. That's similar
126to when it's stuck running inside a C function under the Lua interpreter.</dd>
127</dl>
128
129<dl id="order">
130<dt>Q: Table iteration with <tt>pairs()</tt> does not result in the same order?</dt>
131<dd>The order of table iteration is explicitly <b>undefined</b> by
132the Lua language standard.<br>
133Different Lua implementations or versions may use different orders for
134otherwise identical tables. Different ways of constructing a table may
135result in different orders, too.<br>
136Due to improved VM security, LuaJIT 2.1 may even use a different order
137on separate VM invocations or when string keys are newly interned.<br><br>
138If your program relies on a deterministic order, it has a bug. Rewrite it,
139so it doesn't rely on the key order. Or sort the table keys, if you must.</dd>
140</dl>
141
142<dl id="sandbox">
143<dt>Q: Can Lua code be safely sandboxed?</dt>
144<dd>
145Maybe for an extremely restricted subset of Lua and if you relentlessly
146scrutinize every single interface function you offer to the untrusted code.<br>
147
148Although Lua provides some sandboxing functionality (<tt>setfenv()</tt>, hooks),
149it's very hard to get this right even for the Lua core libraries. Of course,
150you'll need to inspect any extension library, too. And there are libraries
151that are inherently unsafe, e.g. the <a href="ext_ffi.html">FFI library</a>.<br>
152
153More reading material at the <a href="http://lua-users.org/wiki/SandBoxes"><span class="ext">&raquo;</span>&nbsp;Lua Wiki</a> and <a href="https://en.wikipedia.org/wiki/Sandbox_(computer_security)"><span class="ext">&raquo;</span>&nbsp;Wikipedia</a>.<br><br>
154
155Relatedly, <b>loading untrusted bytecode is not safe!</b><br>
156
157It's trivial to crash the Lua or LuaJIT VM with maliciously crafted bytecode.
158This is well known and there's no bytecode verification on purpose, so please
159don't report a bug about it. Check the <tt>mode</tt> parameter for the
160<tt>load*()</tt> functions to disable loading of bytecode.<br><br>
161
162<b>In general, the only promising approach is to sandbox Lua code at the
163process level and not the VM level.</b>
164</dd>
165</dl>
166
167<dl id="arch">
168<dt>Q: Lua runs everywhere. Why doesn't LuaJIT support my CPU?</dt>
169<dd>Because it's a compiler &mdash; it needs to generate native
170machine code. This means the code generator must be ported to each
171architecture. And the fast interpreter is written in assembler and
172must be ported, too. This is quite an undertaking.<br>
173The <a href="install.html">install documentation</a> shows the supported
174architectures.<br>
175Other architectures may follow based on sufficient user demand and
176market-relevance of the architecture. Sponsoring is required to develop
177the port itself, to integrate it and to continuously maintain it in the
178actively developed branches.</dd>
179</dl>
180<br class="flush">
181</div>
182<div id="foot">
183<hr class="hide">
184Copyright &copy; 2005-2023
185<span class="noprint">
186&middot;
187<a href="contact.html">Contact</a>
188</span>
189</div>
190</body>
191</html>
diff --git a/doc/install.html b/doc/install.html
index c960e071..21866315 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -20,7 +20,7 @@ table.compat tr.compathead td {
20 font-weight: bold; 20 font-weight: bold;
21 border-bottom: 2px solid #bfcfff; 21 border-bottom: 2px solid #bfcfff;
22} 22}
23td.compatname, td.compatver { 23td.compatname {
24 width: 10%; 24 width: 10%;
25} 25}
26td.compatbits { 26td.compatbits {
@@ -65,18 +65,18 @@ td.compatx {
65<a href="ext_c_api.html">Lua/C API</a> 65<a href="ext_c_api.html">Lua/C API</a>
66</li></ul> 66</li></ul>
67</li><li> 67</li><li>
68<a href="status.html">Status</a> 68<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
69</li><li> 69</li><li>
70<a href="faq.html">FAQ</a> 70<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
71</li><li> 71</li><li>
72<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 72<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
73</li></ul> 73</li></ul>
74</div> 74</div>
75<div id="main"> 75<div id="main">
76<p> 76<p>
77LuaJIT is only distributed as a source package. This page explains 77LuaJIT is only distributed as source code &mdash; get it from the
78how to build and install LuaJIT with different operating systems 78<a href="https://luajit.org/download.html"><span class="ext">&raquo;</span>&nbsp;git repository</a>. This page explains how to build
79and C&nbsp;compilers. 79and install the LuaJIT binary and library for different operating systems.
80</p> 80</p>
81<p> 81<p>
82For the impatient (on POSIX systems): 82For the impatient (on POSIX systems):
@@ -86,201 +86,21 @@ make &amp;&amp; sudo make install
86</pre> 86</pre>
87 87
88<h2 id="req">Requirements</h2> 88<h2 id="req">Requirements</h2>
89<h3 id="systems">Systems</h3>
90<p> 89<p>
91LuaJIT currently builds out-of-the box on most systems: 90LuaJIT currently builds out-of-the box on most systems. Please check the
91supported operating systems and CPU architectures on the
92<a href="https://luajit.org/status.html"><span class="ext">&raquo;</span>&nbsp;status page</a>.
92</p> 93</p>
93<table class="compat">
94<tr class="compathead">
95<td class="compatname">OS</td>
96<td class="compatver">Min. Version</td>
97<td class="compatx">Requirements</td>
98<td class="compatx">LuaJIT Versions</td>
99</tr>
100<tr class="odd separate">
101<td class="compatname"><a href="#windows">Windows</a></td>
102<td class="compatver">7</td>
103<td class="compatx">x86 or x64, ARM64: TBA</td>
104<td class="compatx">v2.0 &ndash;</td>
105</tr>
106<tr class="even">
107<td class="compatname"><a href="#posix">Linux</a></td>
108<td class="compatver">&nbsp;</td>
109<td class="compatx">&nbsp;</td>
110<td class="compatx">v2.0 &ndash;</td>
111</tr>
112<tr class="odd">
113<td class="compatname"><a href="#posix">*BSD</a></td>
114<td class="compatver">&nbsp;</td>
115<td class="compatx">&nbsp;</td>
116<td class="compatx">v2.0 &ndash;</td>
117</tr>
118<tr class="even">
119<td class="compatname"><a href="#osx">macOS (OSX)</a></td>
120<td class="compatver">10.4</td>
121<td class="compatx">&nbsp;</td>
122<td class="compatx">v2.1 &ndash;</td>
123</tr>
124<tr class="odd">
125<td class="compatname"><a href="#posix">POSIX</a></td>
126<td class="compatver">&nbsp;</td>
127<td class="compatx">mmap, dlopen</td>
128<td class="compatx">v2.0 &ndash;</td>
129</tr>
130<tr class="even separate">
131<td class="compatname"><a href="#android">Android</a></td>
132<td class="compatver">4.0</td>
133<td class="compatx">Recent Android NDK</td>
134<td class="compatx">v2.0 &ndash;</td>
135</tr>
136<tr class="odd">
137<td class="compatname"><a href="#ios">iOS</a></td>
138<td class="compatver">3.0</td>
139<td class="compatx">Xcode iOS SDK</td>
140<td class="compatx">v2.1 &ndash;</td>
141</tr>
142<tr class="even separate">
143<td class="compatname"><a href="#consoles">PS3</a></td>
144<td class="compatver">&nbsp;</td>
145<td class="compatx">PS3 SDK</td>
146<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
147</tr>
148<tr class="odd">
149<td class="compatname"><a href="#consoles">PS4</a></td>
150<td class="compatver">&nbsp;</td>
151<td class="compatx">PS4 SDK (ORBIS)</td>
152<td class="compatx">v2.0 &ndash;</td>
153</tr>
154<tr class="even">
155<td class="compatname"><a href="#consoles">PS5</a></td>
156<td class="compatver">&nbsp;</td>
157<td class="compatx">PS5 SDK (PROSPERO)</td>
158<td class="compatx">v2.1 &ndash;</td>
159</tr>
160<tr class="odd">
161<td class="compatname"><a href="#consoles">PS Vita</a></td>
162<td class="compatver">&nbsp;</td>
163<td class="compatx">PS Vita SDK (PSP2)</td>
164<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
165</tr>
166<tr class="even">
167<td class="compatname"><a href="#consoles">Xbox 360</a></td>
168<td class="compatver">&nbsp;</td>
169<td class="compatx">Xbox 360 SDK (XEDK)</td>
170<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
171</tr>
172<tr class="odd">
173<td class="compatname"><a href="#consoles">Xbox One</a></td>
174<td class="compatver">&nbsp;</td>
175<td class="compatx">Xbox One SDK (DURANGO)</td>
176<td class="compatx">v2.1 &ndash;</td>
177</tr>
178<tr class="even">
179<td class="compatname"><a href="#consoles">Nintendo Switch</a></td>
180<td class="compatver">&nbsp;</td>
181<td class="compatx">NintendoSDK + NX Addon</td>
182<td class="compatx">v2.1 &ndash;</td>
183</tr>
184</table>
185<p>
186The codebase has compatibility defines for some more systems, but
187without official support.
188</p>
189<h3 id="toolchains">Toolchains</h3>
190<p> 94<p>
191Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or 95Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or
192MSVC++. 96MSVC++.
193</p> 97</p>
194<p> 98<p>
195The Makefile-based build system requires GNU Make and supports 99The Makefile-based build system requires GNU Make and supports
196cross-builds. Batch files are provided for MSVC++ builds and console
197cross-builds. 100cross-builds.
198</p> 101</p>
199<h3 id="architectures">CPU Architectures</h3>
200<table class="compat">
201<tr class="compathead">
202<td class="compatname">CPU</td>
203<td class="compatbits">Bits</td>
204<td class="compatx">Requirements</td>
205<td class="compatx">Variants</td>
206<td class="compatx">LuaJIT Versions</td>
207</tr>
208<tr class="odd separate">
209<td class="compatname">x86</td>
210<td class="compatbits">32</td>
211<td class="compatx">v2.1+: SSE2</td>
212<td class="compatx">&nbsp;</td>
213<td class="compatx">v2.0 &ndash;</td>
214</tr>
215<tr class="even">
216<td class="compatname">x64</td>
217<td class="compatbits">64</td>
218<td class="compatx">&nbsp;</td>
219<td class="compatx">&nbsp;</td>
220<td class="compatx">v2.0 &ndash;</td>
221</tr>
222<tr class="odd">
223<td class="compatname">ARM</td>
224<td class="compatbits">32</td>
225<td class="compatx">ARMv5+, ARM9E+</td>
226<td class="compatx">hard-fp + soft-fp</td>
227<td class="compatx">v2.0 &ndash;</td>
228</tr>
229<tr class="even">
230<td class="compatname">ARM64</td>
231<td class="compatbits">64</td>
232<td class="compatx">&nbsp;</td>
233<td class="compatx">ARM64le + ARM64be</td>
234<td class="compatx">v2.1 &ndash;</td>
235</tr>
236<tr class="odd">
237<td class="compatname">PPC32</td>
238<td class="compatbits">32</td>
239<td class="compatx">&nbsp;</td>
240<td class="compatx">hard-fp + soft-fp</td>
241<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
242</tr>
243<tr class="even">
244<td class="compatname">PPC/e500</td>
245<td class="compatbits">32</td>
246<td class="compatx">e500v2</td>
247<td class="compatx">&nbsp;</td>
248<td class="compatx">v2.0 EOL</td>
249</tr>
250<tr class="odd">
251<td class="compatname">MIPS32</td>
252<td class="compatbits">32</td>
253<td class="compatx">MIPS32r1 &ndash; r5</td>
254<td class="compatx">hard-fp + soft-fp</td>
255<td class="compatx">v2.0 &ndash;</td>
256</tr>
257<tr class="even">
258<td class="compatname">MIPS64</td>
259<td class="compatbits">64</td>
260<td class="compatx">MIPS64r1 &ndash; r5</td>
261<td class="compatx">hard-fp + soft-fp</td>
262<td class="compatx">v2.1 &ndash;</td>
263</tr>
264<tr class="odd">
265<td class="compatname">MIPS64</td>
266<td class="compatbits">64</td>
267<td class="compatx">MIPS64r6</td>
268<td class="compatx">hard-fp + soft-fp</td>
269<td class="compatx">v2.1 EOL</td>
270</tr>
271<tr class="even">
272<td class="compatname">RISC-V</td>
273<td class="compatbits">64</td>
274<td class="compatx">RVA22+</td>
275<td class="compatx">&nbsp;</td>
276<td class="compatx">TBA</td>
277</tr>
278</table>
279<p> 102<p>
280There are no plans to add historic architectures or to continue support 103Batch files are provided for MSVC++ builds and console cross-builds.
281for end-of-life (EOL) architectures, for which no new CPUs are commonly
282available anymore. Likewise, there are no plans to support marginal
283and/or de-facto-dead architectures.
284</p> 104</p>
285 105
286<h2>Configuring LuaJIT</h2> 106<h2>Configuring LuaJIT</h2>
@@ -290,7 +110,6 @@ Usually there is no need to tweak the settings. The following files
290hold all user-configurable settings: 110hold all user-configurable settings:
291</p> 111</p>
292<ul> 112<ul>
293<li><tt>src/luaconf.h</tt> sets some configuration variables.</li>
294<li><tt>Makefile</tt> has settings for <b>installing</b> LuaJIT (POSIX 113<li><tt>Makefile</tt> has settings for <b>installing</b> LuaJIT (POSIX
295only).</li> 114only).</li>
296<li><tt>src/Makefile</tt> has settings for <b>compiling</b> LuaJIT 115<li><tt>src/Makefile</tt> has settings for <b>compiling</b> LuaJIT
@@ -306,23 +125,11 @@ any settings.
306<h2 id="posix">POSIX Systems (Linux, macOS, *BSD etc.)</h2> 125<h2 id="posix">POSIX Systems (Linux, macOS, *BSD etc.)</h2>
307<h3>Prerequisites</h3> 126<h3>Prerequisites</h3>
308<p> 127<p>
309Depending on your distribution, you may need to install a package for 128Depending on your distribution, you may need to install a package for a
310GCC, the development headers and/or a complete SDK. E.g. on a current 129compiler (GCC or Clang/LLVM), the development headers and/or a complete SDK.
311Debian/Ubuntu, install <tt>libc6-dev</tt> with the package manager. 130E.g. on a current Debian/Ubuntu, install <tt>build-essential</tt> with the
131package manager.
312</p> 132</p>
313<p>
314The recommended way to fetch the latest version is to do a pull from
315the git repository.
316</p>
317<p>
318Alternatively, download the latest source package of LuaJIT (pick the .tar.gz).
319Move it to a directory of your choice, open a terminal window and change
320to this directory. Now unpack the archive and change to the newly created
321directory (replace XX.YY.ZZ with the version you downloaded):
322</p>
323<pre class="code">
324tar zxf LuaJIT-XX.YY.ZZ.tar.gz
325cd LuaJIT-XX.YY.ZZ
326</pre> 133</pre>
327<h3>Building LuaJIT</h3> 134<h3>Building LuaJIT</h3>
328<p> 135<p>
@@ -380,15 +187,10 @@ Either install one of the open source SDKs
380GCC plus the required development headers. 187GCC plus the required development headers.
381Or install Microsoft's Visual Studio (MSVC). 188Or install Microsoft's Visual Studio (MSVC).
382</p> 189</p>
383<p>
384Next, pull from the git repository or download the source package and
385unpack it using an archive manager (e.g. the Windows Explorer) to
386a directory of your choice.
387</p>
388<h3>Building with MSVC</h3> 190<h3>Building with MSVC</h3>
389<p> 191<p>
390Open a "Visual Studio Command Prompt" (either x86 or x64), <tt>cd</tt> to the 192Open a "Visual Studio Command Prompt" (either x86 or x64), <tt>cd</tt> to the
391directory where you've unpacked the sources and run these commands: 193directory with the source code and run these commands:
392</p> 194</p>
393<pre class="code"> 195<pre class="code">
394cd src 196cd src
@@ -401,8 +203,8 @@ Then follow the installation instructions below.
401<h3>Building with MinGW or Cygwin</h3> 203<h3>Building with MinGW or Cygwin</h3>
402<p> 204<p>
403Open a command prompt window and make sure the MinGW or Cygwin programs 205Open a command prompt window and make sure the MinGW or Cygwin programs
404are in your path. Then <tt>cd</tt> to the directory of the git repository 206are in your path. Then <tt>cd</tt> to the directory of the git repository.
405or where you've unpacked the sources. Then run this command for MinGW: 207Then run this command for MinGW:
406</p> 208</p>
407<pre class="code"> 209<pre class="code">
408mingw32-make 210mingw32-make
@@ -547,8 +349,8 @@ make HOST_CC="gcc -m32" CROSS=ppu-lv2-
547To cross-compile for the other consoles from a Windows host, open a 349To cross-compile for the other consoles from a Windows host, open a
548"Native Tools Command Prompt for VS". You need to choose either the 32 350"Native Tools Command Prompt for VS". You need to choose either the 32
549or the 64&nbsp;bit version of the host compiler to match the target. 351or the 64&nbsp;bit version of the host compiler to match the target.
550Then <tt>cd</tt> to the <tt>src</tt> directory below where you've 352Then <tt>cd</tt> to the <tt>src</tt> directory below the source code
551unpacked the sources and run the build command given in the table: 353and run the build command given in the table:
552</p> 354</p>
553<table class="compat"> 355<table class="compat">
554<tr class="compathead"> 356<tr class="compathead">
diff --git a/doc/luajit.html b/doc/luajit.html
index 2895a981..7346acb3 100644
--- a/doc/luajit.html
+++ b/doc/luajit.html
@@ -67,30 +67,6 @@ table.fcompat td {
67 background-image: -o-linear-gradient(#41bfbf 10%, #b0ffff 95%); 67 background-image: -o-linear-gradient(#41bfbf 10%, #b0ffff 95%);
68 background-image: -ms-linear-gradient(#41bfbf 10%, #b0ffff 95%); 68 background-image: -ms-linear-gradient(#41bfbf 10%, #b0ffff 95%);
69} 69}
70table.stats td {
71 color: #ffffff;
72 background: #a0a0a0;
73 background-image: linear-gradient(#808080 10%, #d0d0d0 95%);
74 background-image: -moz-linear-gradient(#808080 10%, #d0d0d0 95%);
75 background-image: -webkit-linear-gradient(#808080 10%, #d0d0d0 95%);
76 background-image: -o-linear-gradient(#808080 10%, #d0d0d0 95%);
77 background-image: -ms-linear-gradient(#808080 10%, #d0d0d0 95%);
78}
79table.stats td.speed {
80 color: #ff4020;
81}
82table.stats td.kb {
83 color: #ffff80;
84 background: #808080;
85 background-image: linear-gradient(#606060 10%, #c0c0c0 95%);
86 background-image: -moz-linear-gradient(#606060 10%, #c0c0c0 95%);
87 background-image: -webkit-linear-gradient(#606060 10%, #c0c0c0 95%);
88 background-image: -o-linear-gradient(#606060 10%, #c0c0c0 95%);
89 background-image: -ms-linear-gradient(#606060 10%, #c0c0c0 95%);
90}
91table.feature small {
92 font-size: 50%;
93}
94</style> 70</style>
95</head> 71</head>
96<body> 72<body>
@@ -127,9 +103,9 @@ table.feature small {
127<a href="ext_c_api.html">Lua/C API</a> 103<a href="ext_c_api.html">Lua/C API</a>
128</li></ul> 104</li></ul>
129</li><li> 105</li><li>
130<a href="status.html">Status</a> 106<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
131</li><li> 107</li><li>
132<a href="faq.html">FAQ</a> 108<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
133</li><li> 109</li><li>
134<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 110<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
135</li></ul> 111</li></ul>
@@ -169,23 +145,20 @@ LuaJIT is Copyright &copy; 2005-2023 Mike Pall, released under the
169</table> 145</table>
170 146
171<h2>Overview</h2> 147<h2>Overview</h2>
172<table class="feature stats">
173<tr>
174<td class="speed">3x<br>-&nbsp;&nbsp;100x</td>
175<td class="kb">115&nbsp;<small>KB</small><br>VM</td>
176<td class="kb">90&nbsp;<small>KB</small><br>JIT</td>
177<td class="kloc">63&nbsp;<small>KLOC</small><br>C</td>
178<td class="kloc">24&nbsp;<small>KLOC</small><br>ASM</td>
179<td class="kloc">11&nbsp;<small>KLOC</small><br>Lua</td>
180</tr>
181</table>
182<p style="margin-top: 1em;"> 148<p style="margin-top: 1em;">
183LuaJIT has been successfully used as a <b>scripting middleware</b> in 149LuaJIT has been successfully used as a <b>scripting middleware</b> in
184games, appliances, network and graphics apps, numerical simulations, 150games, appliances, network and graphics apps, numerical simulations,
185trading platforms and many other specialty applications. It scales from 151trading platforms and many other specialty applications.
186embedded devices, smartphones, desktops up to server farms. It combines 152</p>
187high flexibility with high performance 153<p>
188and an unmatched <b>low memory footprint</b>. 154LuaJIT is part of a hundred million web sites, huge SaaS installations,
155network switches, set-top boxes and other embedded devices. You've probably
156already used LuaJIT without knowing about it.
157</p>
158<p>
159LuaJIT scales from embedded devices, smartphones, desktops up to server
160farms. It combines high flexibility with high performance and an unmatched
161<b>low memory footprint</b>.
189</p> 162</p>
190<p> 163<p>
191LuaJIT has been in continuous development since 2005. It's widely 164LuaJIT has been in continuous development since 2005. It's widely
diff --git a/doc/running.html b/doc/running.html
index e8c9b1c6..c7d9e9b6 100644
--- a/doc/running.html
+++ b/doc/running.html
@@ -64,14 +64,15 @@ td.param_default {
64<a href="ext_c_api.html">Lua/C API</a> 64<a href="ext_c_api.html">Lua/C API</a>
65</li></ul> 65</li></ul>
66</li><li> 66</li><li>
67<a href="status.html">Status</a> 67<a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
68</li><li> 68</li><li>
69<a href="faq.html">FAQ</a> 69<a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
70</li><li> 70</li><li>
71<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 71<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
72</li></ul> 72</li></ul>
73</div> 73</div>
74<div id="main"> 74<div id="main">
75
75<p> 76<p>
76LuaJIT has only a single stand-alone executable, called <tt>luajit</tt> on 77LuaJIT has only a single stand-alone executable, called <tt>luajit</tt> on
77POSIX systems or <tt>luajit.exe</tt> on Windows. It can be used to run simple 78POSIX systems or <tt>luajit.exe</tt> on Windows. It can be used to run simple
diff --git a/doc/status.html b/doc/status.html
deleted file mode 100644
index b69a9721..00000000
--- a/doc/status.html
+++ /dev/null
@@ -1,107 +0,0 @@
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3<head>
4<title>Status</title>
5<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6<meta name="Copyright" content="Copyright (C) 2005-2023">
7<meta name="Language" content="en">
8<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
9<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
10<style type="text/css">
11ul li { padding-bottom: 0.3em; }
12</style>
13</head>
14<body>
15<div id="site">
16<a href="https://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
17</div>
18<div id="head">
19<h1>Status</h1>
20</div>
21<div id="nav">
22<ul><li>
23<a href="luajit.html">LuaJIT</a>
24<ul><li>
25<a href="https://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
26</li><li>
27<a href="install.html">Installation</a>
28</li><li>
29<a href="running.html">Running</a>
30</li></ul>
31</li><li>
32<a href="extensions.html">Extensions</a>
33<ul><li>
34<a href="ext_ffi.html">FFI Library</a>
35<ul><li>
36<a href="ext_ffi_tutorial.html">FFI Tutorial</a>
37</li><li>
38<a href="ext_ffi_api.html">ffi.* API</a>
39</li><li>
40<a href="ext_ffi_semantics.html">FFI Semantics</a>
41</li></ul>
42</li><li>
43<a href="ext_jit.html">jit.* Library</a>
44</li><li>
45<a href="ext_c_api.html">Lua/C API</a>
46</li></ul>
47</li><li>
48<a class="current" href="status.html">Status</a>
49</li><li>
50<a href="faq.html">FAQ</a>
51</li><li>
52<a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
53</li></ul>
54</div>
55<div id="main">
56<p>
57This documentation is for LuaJIT 2.0.5. Please check the <tt>doc</tt>
58directory in each git branch for the version-specific documentation.
59</p>
60<p>
61The currently developed branches are LuaJIT&nbsp;2.1 and LuaJIT&nbsp;2.0.
62</p>
63<p>
64LuaJIT&nbsp;2.0 is in feature-freeze &mdash; new features will only
65be added to LuaJIT&nbsp;2.1.
66</p>
67
68<h2>Current Status</h2>
69<p>
70LuaJIT ought to run all Lua&nbsp;5.1-compatible source code just fine.
71It's considered a serious bug if the VM crashes or produces unexpected
72results &mdash; please report this.
73</p>
74<p>
75Known incompatibilities and issues in LuaJIT&nbsp;2.0:
76</p>
77<ul>
78<li>
79There are some differences in <b>implementation-defined</b> behavior.
80These either have a good reason, are arbitrary design choices,
81or are due to quirks in the VM. The latter cases may get fixed if a
82demonstrable need is shown.
83</li>
84<li>
85The Lua <b>debug API</b> is missing a couple of features (return
86hooks for non-Lua functions) and shows slightly different behavior
87in LuaJIT (no per-coroutine hooks, no tail call counting).
88</li>
89<li>
90Currently, some <b>out-of-memory</b> errors from <b>on-trace code</b> are not
91handled correctly. The error may fall through an on-trace
92<tt>pcall</tt> or it may be passed on to the function set with
93<tt>lua_atpanic</tt> on x64.
94</li>
95</ul>
96<br class="flush">
97</div>
98<div id="foot">
99<hr class="hide">
100Copyright &copy; 2005-2023
101<span class="noprint">
102&middot;
103<a href="contact.html">Contact</a>
104</span>
105</div>
106</body>
107</html>