diff options
author | Mike Pall <mike> | 2023-08-21 02:38:56 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2023-08-21 02:38:56 +0200 |
commit | f0ff869bc2fffa17bb765c4c773457578da125a9 (patch) | |
tree | a439bf4fe179352af5a6808ab5c5d4584cff197e /doc | |
parent | ef587afb2cd7267c0defd04aa642593b76a6b23d (diff) | |
parent | c34594681909cac98d44629863df2c7afd93eaf0 (diff) | |
download | luajit-f0ff869bc2fffa17bb765c4c773457578da125a9.tar.gz luajit-f0ff869bc2fffa17bb765c4c773457578da125a9.tar.bz2 luajit-f0ff869bc2fffa17bb765c4c773457578da125a9.zip |
Merge branch 'master' into v2.1
Diffstat (limited to 'doc')
-rw-r--r-- | doc/bluequad.css | 8 | ||||
-rw-r--r-- | doc/contact.html | 4 | ||||
-rw-r--r-- | doc/ext_buffer.html | 4 | ||||
-rw-r--r-- | doc/ext_c_api.html | 4 | ||||
-rw-r--r-- | doc/ext_ffi.html | 4 | ||||
-rw-r--r-- | doc/ext_ffi_api.html | 4 | ||||
-rw-r--r-- | doc/ext_ffi_semantics.html | 4 | ||||
-rw-r--r-- | doc/ext_ffi_tutorial.html | 4 | ||||
-rw-r--r-- | doc/ext_jit.html | 8 | ||||
-rw-r--r-- | doc/ext_profiler.html | 4 | ||||
-rw-r--r-- | doc/extensions.html | 5 | ||||
-rw-r--r-- | doc/faq.html | 195 | ||||
-rw-r--r-- | doc/install.html | 242 | ||||
-rw-r--r-- | doc/luajit.html | 53 | ||||
-rw-r--r-- | doc/running.html | 5 | ||||
-rw-r--r-- | doc/status.html | 105 |
16 files changed, 65 insertions, 588 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 478c4bff..cc4d8c72 100644 --- a/doc/contact.html +++ b/doc/contact.html | |||
@@ -46,9 +46,9 @@ | |||
46 | <a href="ext_profiler.html">Profiler</a> | 46 | <a href="ext_profiler.html">Profiler</a> |
47 | </li></ul> | 47 | </li></ul> |
48 | </li><li> | 48 | </li><li> |
49 | <a href="status.html">Status</a> | 49 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
50 | </li><li> | 50 | </li><li> |
51 | <a href="faq.html">FAQ</a> | 51 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
52 | </li><li> | 52 | </li><li> |
53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
54 | </li></ul> | 54 | </li></ul> |
diff --git a/doc/ext_buffer.html b/doc/ext_buffer.html index 35f01c9a..bfaa24cb 100644 --- a/doc/ext_buffer.html +++ b/doc/ext_buffer.html | |||
@@ -57,9 +57,9 @@ | |||
57 | <a href="ext_profiler.html">Profiler</a> | 57 | <a href="ext_profiler.html">Profiler</a> |
58 | </li></ul> | 58 | </li></ul> |
59 | </li><li> | 59 | </li><li> |
60 | <a href="status.html">Status</a> | 60 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
61 | </li><li> | 61 | </li><li> |
62 | <a href="faq.html">FAQ</a> | 62 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
63 | </li><li> | 63 | </li><li> |
64 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 64 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
65 | </li></ul> | 65 | </li></ul> |
diff --git a/doc/ext_c_api.html b/doc/ext_c_api.html index ab72d19a..d5e6bb60 100644 --- a/doc/ext_c_api.html +++ b/doc/ext_c_api.html | |||
@@ -46,9 +46,9 @@ | |||
46 | <a href="ext_profiler.html">Profiler</a> | 46 | <a href="ext_profiler.html">Profiler</a> |
47 | </li></ul> | 47 | </li></ul> |
48 | </li><li> | 48 | </li><li> |
49 | <a href="status.html">Status</a> | 49 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
50 | </li><li> | 50 | </li><li> |
51 | <a href="faq.html">FAQ</a> | 51 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
52 | </li><li> | 52 | </li><li> |
53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
54 | </li></ul> | 54 | </li></ul> |
diff --git a/doc/ext_ffi.html b/doc/ext_ffi.html index e8e5565d..eaa176b6 100644 --- a/doc/ext_ffi.html +++ b/doc/ext_ffi.html | |||
@@ -46,9 +46,9 @@ | |||
46 | <a href="ext_profiler.html">Profiler</a> | 46 | <a href="ext_profiler.html">Profiler</a> |
47 | </li></ul> | 47 | </li></ul> |
48 | </li><li> | 48 | </li><li> |
49 | <a href="status.html">Status</a> | 49 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
50 | </li><li> | 50 | </li><li> |
51 | <a href="faq.html">FAQ</a> | 51 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
52 | </li><li> | 52 | </li><li> |
53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
54 | </li></ul> | 54 | </li></ul> |
diff --git a/doc/ext_ffi_api.html b/doc/ext_ffi_api.html index ea03168a..500a2143 100644 --- a/doc/ext_ffi_api.html +++ b/doc/ext_ffi_api.html | |||
@@ -51,9 +51,9 @@ td.abiparam { font-weight: bold; width: 6em; } | |||
51 | <a href="ext_profiler.html">Profiler</a> | 51 | <a href="ext_profiler.html">Profiler</a> |
52 | </li></ul> | 52 | </li></ul> |
53 | </li><li> | 53 | </li><li> |
54 | <a href="status.html">Status</a> | 54 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
55 | </li><li> | 55 | </li><li> |
56 | <a href="faq.html">FAQ</a> | 56 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
57 | </li><li> | 57 | </li><li> |
58 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 58 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
59 | </li></ul> | 59 | </li></ul> |
diff --git a/doc/ext_ffi_semantics.html b/doc/ext_ffi_semantics.html index 419ef07a..5ba82a1e 100644 --- a/doc/ext_ffi_semantics.html +++ b/doc/ext_ffi_semantics.html | |||
@@ -51,9 +51,9 @@ td.convop { font-style: italic; width: 40%; } | |||
51 | <a href="ext_profiler.html">Profiler</a> | 51 | <a href="ext_profiler.html">Profiler</a> |
52 | </li></ul> | 52 | </li></ul> |
53 | </li><li> | 53 | </li><li> |
54 | <a href="status.html">Status</a> | 54 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
55 | </li><li> | 55 | </li><li> |
56 | <a href="faq.html">FAQ</a> | 56 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
57 | </li><li> | 57 | </li><li> |
58 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 58 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
59 | </li></ul> | 59 | </li></ul> |
diff --git a/doc/ext_ffi_tutorial.html b/doc/ext_ffi_tutorial.html index 3cf4862a..a5236f0b 100644 --- a/doc/ext_ffi_tutorial.html +++ b/doc/ext_ffi_tutorial.html | |||
@@ -53,9 +53,9 @@ td.idiomlua b { font-weight: normal; color: #2142bf; } | |||
53 | <a href="ext_profiler.html">Profiler</a> | 53 | <a href="ext_profiler.html">Profiler</a> |
54 | </li></ul> | 54 | </li></ul> |
55 | </li><li> | 55 | </li><li> |
56 | <a href="status.html">Status</a> | 56 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
57 | </li><li> | 57 | </li><li> |
58 | <a href="faq.html">FAQ</a> | 58 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
59 | </li><li> | 59 | </li><li> |
60 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 60 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
61 | </li></ul> | 61 | </li></ul> |
diff --git a/doc/ext_jit.html b/doc/ext_jit.html index 7bf9f343..dd136d65 100644 --- a/doc/ext_jit.html +++ b/doc/ext_jit.html | |||
@@ -46,9 +46,9 @@ | |||
46 | <a href="ext_profiler.html">Profiler</a> | 46 | <a href="ext_profiler.html">Profiler</a> |
47 | </li></ul> | 47 | </li></ul> |
48 | </li><li> | 48 | </li><li> |
49 | <a href="status.html">Status</a> | 49 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
50 | </li><li> | 50 | </li><li> |
51 | <a href="faq.html">FAQ</a> | 51 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
52 | </li><li> | 52 | </li><li> |
53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
54 | </li></ul> | 54 | </li></ul> |
@@ -135,7 +135,9 @@ Contains the LuaJIT version string. | |||
135 | <h3 id="jit_version_num"><tt>jit.version_num</tt></h3> | 135 | <h3 id="jit_version_num"><tt>jit.version_num</tt></h3> |
136 | <p> | 136 | <p> |
137 | Contains the version number of the LuaJIT core. Version xx.yy.zz | 137 | Contains the version number of the LuaJIT core. Version xx.yy.zz |
138 | is represented by the decimal number xxyyzz. | 138 | is represented by the decimal number xxyyzz.<br> |
139 | <b>DEPRECATED after the switch to | ||
140 | <a href="https://luajit.org/status.html#release"><span class="ext">»</span> rolling releases</a>. zz is frozen at 99.</b> | ||
139 | </p> | 141 | </p> |
140 | 142 | ||
141 | <h3 id="jit_os"><tt>jit.os</tt></h3> | 143 | <h3 id="jit_os"><tt>jit.os</tt></h3> |
diff --git a/doc/ext_profiler.html b/doc/ext_profiler.html index 18880239..81b5d773 100644 --- a/doc/ext_profiler.html +++ b/doc/ext_profiler.html | |||
@@ -46,9 +46,9 @@ | |||
46 | <a class="current" href="ext_profiler.html">Profiler</a> | 46 | <a class="current" href="ext_profiler.html">Profiler</a> |
47 | </li></ul> | 47 | </li></ul> |
48 | </li><li> | 48 | </li><li> |
49 | <a href="status.html">Status</a> | 49 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
50 | </li><li> | 50 | </li><li> |
51 | <a href="faq.html">FAQ</a> | 51 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
52 | </li><li> | 52 | </li><li> |
53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 53 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
54 | </li></ul> | 54 | </li></ul> |
diff --git a/doc/extensions.html b/doc/extensions.html index c7ace015..eb591d1e 100644 --- a/doc/extensions.html +++ b/doc/extensions.html | |||
@@ -63,14 +63,15 @@ td.excinterop { | |||
63 | <a href="ext_profiler.html">Profiler</a> | 63 | <a href="ext_profiler.html">Profiler</a> |
64 | </li></ul> | 64 | </li></ul> |
65 | </li><li> | 65 | </li><li> |
66 | <a href="status.html">Status</a> | 66 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
67 | </li><li> | 67 | </li><li> |
68 | <a href="faq.html">FAQ</a> | 68 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
69 | </li><li> | 69 | </li><li> |
70 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 70 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
71 | </li></ul> | 71 | </li></ul> |
72 | </div> | 72 | </div> |
73 | <div id="main"> | 73 | <div id="main"> |
74 | |||
74 | <p> | 75 | <p> |
75 | LuaJIT is fully upwards-compatible with Lua 5.1. It supports all | 76 | LuaJIT is fully upwards-compatible with Lua 5.1. It supports all |
76 | <a href="https://www.lua.org/manual/5.1/manual.html#5"><span class="ext">»</span> standard Lua | 77 | <a href="https://www.lua.org/manual/5.1/manual.html#5"><span class="ext">»</span> standard Lua |
diff --git a/doc/faq.html b/doc/faq.html deleted file mode 100644 index a53a7512..00000000 --- a/doc/faq.html +++ /dev/null | |||
@@ -1,195 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Frequently Asked Questions (FAQ)</title> | ||
5 | <meta charset="utf-8"> | ||
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"> | ||
11 | dd { 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">»</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_buffer.html">String Buffers</a> | ||
44 | </li><li> | ||
45 | <a href="ext_jit.html">jit.* Library</a> | ||
46 | </li><li> | ||
47 | <a href="ext_c_api.html">Lua/C API</a> | ||
48 | </li><li> | ||
49 | <a href="ext_profiler.html">Profiler</a> | ||
50 | </li></ul> | ||
51 | </li><li> | ||
52 | <a href="status.html">Status</a> | ||
53 | </li><li> | ||
54 | <a class="current" href="faq.html">FAQ</a> | ||
55 | </li><li> | ||
56 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | ||
57 | </li></ul> | ||
58 | </div> | ||
59 | <div id="main"> | ||
60 | <dl id="info"> | ||
61 | <dt>Q: Where can I learn more about LuaJIT and Lua?</dt> | ||
62 | <dd> | ||
63 | <ul style="padding: 0;"> | ||
64 | <li>The <a href="https://luajit.org/list.html"><span class="ext">»</span> LuaJIT mailing list</a> focuses on topics | ||
65 | related to LuaJIT.</li> | ||
66 | <li>News about Lua itself can be found at the | ||
67 | <a href="https://www.lua.org/lua-l.html"><span class="ext">»</span> Lua mailing list</a>. | ||
68 | The mailing list archives are worth checking out for older postings | ||
69 | about LuaJIT.</li> | ||
70 | <li>The <a href="https://lua.org"><span class="ext">»</span> main Lua.org site</a> has complete | ||
71 | <a href="https://www.lua.org/docs.html"><span class="ext">»</span> documentation</a> of the language | ||
72 | and links to books and papers about Lua.</li> | ||
73 | <li>The community-managed <a href="http://lua-users.org/wiki/"><span class="ext">»</span> Lua Wiki</a> | ||
74 | has information about diverse topics.</li> | ||
75 | </ul></dd> | ||
76 | </dl> | ||
77 | |||
78 | <dl id="tech"> | ||
79 | <dt>Q: Where can I learn more about the compiler technology used by LuaJIT?</dt> | ||
80 | <dd> | ||
81 | Please use the following Google Scholar searches to find relevant papers:<br> | ||
82 | Search for: <a href="https://scholar.google.com/scholar?q=Trace+Compiler"><span class="ext">»</span> Trace Compiler</a><br> | ||
83 | Search for: <a href="https://scholar.google.com/scholar?q=JIT+Compiler"><span class="ext">»</span> JIT Compiler</a><br> | ||
84 | Search for: <a href="https://scholar.google.com/scholar?q=Dynamic+Language+Optimizations"><span class="ext">»</span> Dynamic Language Optimizations</a><br> | ||
85 | Search for: <a href="https://scholar.google.com/scholar?q=SSA+Form"><span class="ext">»</span> SSA Form</a><br> | ||
86 | Search for: <a href="https://scholar.google.com/scholar?q=Linear+Scan+Register+Allocation"><span class="ext">»</span> Linear Scan Register Allocation</a><br> | ||
87 | Here is a list of the <a href="http://lua-users.org/lists/lua-l/2009-11/msg00089.html"><span class="ext">»</span> innovative features in LuaJIT</a>.<br> | ||
88 | And, you know, reading the source is of course the only way to enlightenment. | ||
89 | </dd> | ||
90 | </dl> | ||
91 | |||
92 | <dl id="arg"> | ||
93 | <dt>Q: Why do I get this error: "attempt to index global 'arg' (a nil value)"?<br> | ||
94 | Q: My vararg functions fail after switching to LuaJIT!</dt> | ||
95 | <dd>LuaJIT is compatible to the Lua 5.1 language standard. It doesn't | ||
96 | support the implicit <tt>arg</tt> parameter for old-style vararg | ||
97 | functions from Lua 5.0.<br>Please convert your code to the | ||
98 | <a href="https://www.lua.org/manual/5.1/manual.html#2.5.9"><span class="ext">»</span> Lua 5.1 | ||
99 | vararg syntax</a>.</dd> | ||
100 | </dl> | ||
101 | |||
102 | <dl id="x87"> | ||
103 | <dt>Q: Why do I get this error: "bad FPU precision"?<br> | ||
104 | <dt>Q: I get weird behavior after initializing Direct3D.<br> | ||
105 | <dt>Q: Some FPU operations crash after I load a Delphi DLL.<br> | ||
106 | </dt> | ||
107 | <dd> | ||
108 | |||
109 | DirectX/Direct3D (up to version 9) sets the x87 FPU to single-precision | ||
110 | mode by default. This violates the Windows ABI and interferes with the | ||
111 | operation of many programs — LuaJIT is affected, too. Please make | ||
112 | sure you always use the <tt>D3DCREATE_FPU_PRESERVE</tt> flag when | ||
113 | initializing Direct3D.<br> | ||
114 | |||
115 | Direct3D version 10 or higher do not show this behavior anymore. | ||
116 | Consider testing your application with older versions, too.<br> | ||
117 | |||
118 | Similarly, the Borland/Delphi runtime modifies the FPU control word and | ||
119 | enables FP exceptions. Of course, this violates the Windows ABI, too. | ||
120 | Please check the Delphi docs for the Set8087CW method.</dd> | ||
121 | </dl> | ||
122 | |||
123 | <dl id="ctrlc"> | ||
124 | <dt>Q: Sometimes Ctrl-C fails to stop my Lua program. Why?</dt> | ||
125 | <dd>The interrupt signal handler sets a Lua debug hook. But this is | ||
126 | ignored by compiled code. If your program is running in a tight loop | ||
127 | and never falls back to the interpreter, the debug hook never runs and | ||
128 | can't throw the "interrupted!" error.<br> | ||
129 | You have to press Ctrl-C twice to stop your program. That's similar | ||
130 | to when it's stuck running inside a C function under the Lua interpreter.</dd> | ||
131 | </dl> | ||
132 | |||
133 | <dl id="order"> | ||
134 | <dt>Q: Table iteration with <tt>pairs()</tt> does not result in the same order?</dt> | ||
135 | <dd>The order of table iteration is explicitly <b>undefined</b> by | ||
136 | the Lua language standard.<br> | ||
137 | Different Lua implementations or versions may use different orders for | ||
138 | otherwise identical tables. Different ways of constructing a table may | ||
139 | result in different orders, too.<br> | ||
140 | Due to improved VM security, LuaJIT 2.1 may even use a different order | ||
141 | on separate VM invocations or when string keys are newly interned.<br><br> | ||
142 | If your program relies on a deterministic order, it has a bug. Rewrite it, | ||
143 | so it doesn't rely on the key order. Or sort the table keys, if you must.</dd> | ||
144 | </dl> | ||
145 | |||
146 | <dl id="sandbox"> | ||
147 | <dt>Q: Can Lua code be safely sandboxed?</dt> | ||
148 | <dd> | ||
149 | Maybe for an extremely restricted subset of Lua and if you relentlessly | ||
150 | scrutinize every single interface function you offer to the untrusted code.<br> | ||
151 | |||
152 | Although Lua provides some sandboxing functionality (<tt>setfenv()</tt>, hooks), | ||
153 | it's very hard to get this right even for the Lua core libraries. Of course, | ||
154 | you'll need to inspect any extension library, too. And there are libraries | ||
155 | that are inherently unsafe, e.g. the <a href="ext_ffi.html">FFI library</a>.<br> | ||
156 | |||
157 | More reading material at the <a href="http://lua-users.org/wiki/SandBoxes"><span class="ext">»</span> Lua Wiki</a> and <a href="https://en.wikipedia.org/wiki/Sandbox_(computer_security)"><span class="ext">»</span> Wikipedia</a>.<br><br> | ||
158 | |||
159 | Relatedly, <b>loading untrusted bytecode is not safe!</b><br> | ||
160 | |||
161 | It's trivial to crash the Lua or LuaJIT VM with maliciously crafted bytecode. | ||
162 | This is well known and there's no bytecode verification on purpose, so please | ||
163 | don't report a bug about it. Check the <tt>mode</tt> parameter for the | ||
164 | <tt>load*()</tt> functions to disable loading of bytecode.<br><br> | ||
165 | |||
166 | <b>In general, the only promising approach is to sandbox Lua code at the | ||
167 | process level and not the VM level.</b> | ||
168 | </dd> | ||
169 | </dl> | ||
170 | |||
171 | <dl id="arch"> | ||
172 | <dt>Q: Lua runs everywhere. Why doesn't LuaJIT support my CPU?</dt> | ||
173 | <dd>Because it's a compiler — it needs to generate native | ||
174 | machine code. This means the code generator must be ported to each | ||
175 | architecture. And the fast interpreter is written in assembler and | ||
176 | must be ported, too. This is quite an undertaking.<br> | ||
177 | The <a href="install.html">install documentation</a> shows the supported | ||
178 | architectures.<br> | ||
179 | Other architectures may follow based on sufficient user demand and | ||
180 | market-relevance of the architecture. Sponsoring is required to develop | ||
181 | the port itself, to integrate it and to continuously maintain it in the | ||
182 | actively developed branches.</dd> | ||
183 | </dl> | ||
184 | <br class="flush"> | ||
185 | </div> | ||
186 | <div id="foot"> | ||
187 | <hr class="hide"> | ||
188 | Copyright © 2005-2023 | ||
189 | <span class="noprint"> | ||
190 | · | ||
191 | <a href="contact.html">Contact</a> | ||
192 | </span> | ||
193 | </div> | ||
194 | </body> | ||
195 | </html> | ||
diff --git a/doc/install.html b/doc/install.html index 0ccd37aa..be721031 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 | } |
23 | td.compatname, td.compatver { | 23 | td.compatname { |
24 | width: 10%; | 24 | width: 10%; |
25 | } | 25 | } |
26 | td.compatbits { | 26 | td.compatbits { |
@@ -69,18 +69,18 @@ td.compatx { | |||
69 | <a href="ext_profiler.html">Profiler</a> | 69 | <a href="ext_profiler.html">Profiler</a> |
70 | </li></ul> | 70 | </li></ul> |
71 | </li><li> | 71 | </li><li> |
72 | <a href="status.html">Status</a> | 72 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
73 | </li><li> | 73 | </li><li> |
74 | <a href="faq.html">FAQ</a> | 74 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
75 | </li><li> | 75 | </li><li> |
76 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 76 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
77 | </li></ul> | 77 | </li></ul> |
78 | </div> | 78 | </div> |
79 | <div id="main"> | 79 | <div id="main"> |
80 | <p> | 80 | <p> |
81 | LuaJIT is only distributed as a source package. This page explains | 81 | LuaJIT is only distributed as source code — get it from the |
82 | how to build and install LuaJIT with different operating systems | 82 | <a href="https://luajit.org/download.html"><span class="ext">»</span> git repository</a>. This page explains how to build |
83 | and C compilers. | 83 | and install the LuaJIT binary and library for different operating systems. |
84 | </p> | 84 | </p> |
85 | <p> | 85 | <p> |
86 | For the impatient (on POSIX systems): | 86 | For the impatient (on POSIX systems): |
@@ -90,201 +90,21 @@ make && sudo make install | |||
90 | </pre> | 90 | </pre> |
91 | 91 | ||
92 | <h2 id="req">Requirements</h2> | 92 | <h2 id="req">Requirements</h2> |
93 | <h3 id="systems">Systems</h3> | ||
94 | <p> | 93 | <p> |
95 | LuaJIT currently builds out-of-the box on most systems: | 94 | LuaJIT currently builds out-of-the box on most systems. Please check the |
95 | supported operating systems and CPU architectures on the | ||
96 | <a href="https://luajit.org/status.html"><span class="ext">»</span> status page</a>. | ||
96 | </p> | 97 | </p> |
97 | <table class="compat"> | ||
98 | <tr class="compathead"> | ||
99 | <td class="compatname">OS</td> | ||
100 | <td class="compatver">Min. Version</td> | ||
101 | <td class="compatx">Requirements</td> | ||
102 | <td class="compatx">LuaJIT Versions</td> | ||
103 | </tr> | ||
104 | <tr class="odd separate"> | ||
105 | <td class="compatname"><a href="#windows">Windows</a></td> | ||
106 | <td class="compatver">7</td> | ||
107 | <td class="compatx">x86 or x64, ARM64: TBA</td> | ||
108 | <td class="compatx">v2.0 –</td> | ||
109 | </tr> | ||
110 | <tr class="even"> | ||
111 | <td class="compatname"><a href="#posix">Linux</a></td> | ||
112 | <td class="compatver"> </td> | ||
113 | <td class="compatx"> </td> | ||
114 | <td class="compatx">v2.0 –</td> | ||
115 | </tr> | ||
116 | <tr class="odd"> | ||
117 | <td class="compatname"><a href="#posix">*BSD</a></td> | ||
118 | <td class="compatver"> </td> | ||
119 | <td class="compatx"> </td> | ||
120 | <td class="compatx">v2.0 –</td> | ||
121 | </tr> | ||
122 | <tr class="even"> | ||
123 | <td class="compatname"><a href="#posix">macOS (OSX)</a></td> | ||
124 | <td class="compatver">10.4</td> | ||
125 | <td class="compatx"> </td> | ||
126 | <td class="compatx">v2.1 –</td> | ||
127 | </tr> | ||
128 | <tr class="odd"> | ||
129 | <td class="compatname"><a href="#posix">POSIX</a></td> | ||
130 | <td class="compatver"> </td> | ||
131 | <td class="compatx">mmap, dlopen</td> | ||
132 | <td class="compatx">v2.0 –</td> | ||
133 | </tr> | ||
134 | <tr class="even separate"> | ||
135 | <td class="compatname"><a href="#android">Android</a></td> | ||
136 | <td class="compatver">4.0</td> | ||
137 | <td class="compatx">Recent Android NDK</td> | ||
138 | <td class="compatx">v2.0 –</td> | ||
139 | </tr> | ||
140 | <tr class="odd"> | ||
141 | <td class="compatname"><a href="#ios">iOS</a></td> | ||
142 | <td class="compatver">3.0</td> | ||
143 | <td class="compatx">Xcode iOS SDK</td> | ||
144 | <td class="compatx">v2.1 –</td> | ||
145 | </tr> | ||
146 | <tr class="even separate"> | ||
147 | <td class="compatname"><a href="#consoles">PS3</a></td> | ||
148 | <td class="compatver"> </td> | ||
149 | <td class="compatx">PS3 SDK</td> | ||
150 | <td class="compatx">v2.0 – v2.1 EOL</td> | ||
151 | </tr> | ||
152 | <tr class="odd"> | ||
153 | <td class="compatname"><a href="#consoles">PS4</a></td> | ||
154 | <td class="compatver"> </td> | ||
155 | <td class="compatx">PS4 SDK (ORBIS)</td> | ||
156 | <td class="compatx">v2.0 –</td> | ||
157 | </tr> | ||
158 | <tr class="even"> | ||
159 | <td class="compatname"><a href="#consoles">PS5</a></td> | ||
160 | <td class="compatver"> </td> | ||
161 | <td class="compatx">PS5 SDK (PROSPERO)</td> | ||
162 | <td class="compatx">v2.1 –</td> | ||
163 | </tr> | ||
164 | <tr class="odd"> | ||
165 | <td class="compatname"><a href="#consoles">PS Vita</a></td> | ||
166 | <td class="compatver"> </td> | ||
167 | <td class="compatx">PS Vita SDK (PSP2)</td> | ||
168 | <td class="compatx">v2.0 – v2.1 EOL</td> | ||
169 | </tr> | ||
170 | <tr class="even"> | ||
171 | <td class="compatname"><a href="#consoles">Xbox 360</a></td> | ||
172 | <td class="compatver"> </td> | ||
173 | <td class="compatx">Xbox 360 SDK (XEDK)</td> | ||
174 | <td class="compatx">v2.0 – v2.1 EOL</td> | ||
175 | </tr> | ||
176 | <tr class="odd"> | ||
177 | <td class="compatname"><a href="#consoles">Xbox One</a></td> | ||
178 | <td class="compatver"> </td> | ||
179 | <td class="compatx">Xbox One SDK (DURANGO)</td> | ||
180 | <td class="compatx">v2.1 –</td> | ||
181 | </tr> | ||
182 | <tr class="even"> | ||
183 | <td class="compatname"><a href="#consoles">Nintendo Switch</a></td> | ||
184 | <td class="compatver"> </td> | ||
185 | <td class="compatx">NintendoSDK + NX Addon</td> | ||
186 | <td class="compatx">v2.1 –</td> | ||
187 | </tr> | ||
188 | </table> | ||
189 | <p> | ||
190 | The codebase has compatibility defines for some more systems, but | ||
191 | without official support. | ||
192 | </p> | ||
193 | <h3 id="toolchains">Toolchains</h3> | ||
194 | <p> | 98 | <p> |
195 | Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or | 99 | Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or |
196 | MSVC++. | 100 | MSVC++. |
197 | </p> | 101 | </p> |
198 | <p> | 102 | <p> |
199 | The Makefile-based build system requires GNU Make and supports | 103 | The Makefile-based build system requires GNU Make and supports |
200 | cross-builds. Batch files are provided for MSVC++ builds and console | ||
201 | cross-builds. | 104 | cross-builds. |
202 | </p> | 105 | </p> |
203 | <h3 id="architectures">CPU Architectures</h3> | ||
204 | <table class="compat"> | ||
205 | <tr class="compathead"> | ||
206 | <td class="compatname">CPU</td> | ||
207 | <td class="compatbits">Bits</td> | ||
208 | <td class="compatx">Requirements</td> | ||
209 | <td class="compatx">Variants</td> | ||
210 | <td class="compatx">LuaJIT Versions</td> | ||
211 | </tr> | ||
212 | <tr class="odd separate"> | ||
213 | <td class="compatname">x86</td> | ||
214 | <td class="compatbits">32</td> | ||
215 | <td class="compatx">v2.1+: SSE2</td> | ||
216 | <td class="compatx"> </td> | ||
217 | <td class="compatx">v2.0 –</td> | ||
218 | </tr> | ||
219 | <tr class="even"> | ||
220 | <td class="compatname">x64</td> | ||
221 | <td class="compatbits">64</td> | ||
222 | <td class="compatx"> </td> | ||
223 | <td class="compatx"> </td> | ||
224 | <td class="compatx">v2.0 –</td> | ||
225 | </tr> | ||
226 | <tr class="odd"> | ||
227 | <td class="compatname">ARM</td> | ||
228 | <td class="compatbits">32</td> | ||
229 | <td class="compatx">ARMv5+, ARM9E+</td> | ||
230 | <td class="compatx">hard-fp + soft-fp</td> | ||
231 | <td class="compatx">v2.0 –</td> | ||
232 | </tr> | ||
233 | <tr class="even"> | ||
234 | <td class="compatname">ARM64</td> | ||
235 | <td class="compatbits">64</td> | ||
236 | <td class="compatx"> </td> | ||
237 | <td class="compatx">ARM64le + ARM64be</td> | ||
238 | <td class="compatx">v2.1 –</td> | ||
239 | </tr> | ||
240 | <tr class="odd"> | ||
241 | <td class="compatname">PPC32</td> | ||
242 | <td class="compatbits">32</td> | ||
243 | <td class="compatx"> </td> | ||
244 | <td class="compatx">hard-fp + soft-fp</td> | ||
245 | <td class="compatx">v2.0 – v2.1 EOL</td> | ||
246 | </tr> | ||
247 | <tr class="even"> | ||
248 | <td class="compatname">PPC/e500</td> | ||
249 | <td class="compatbits">32</td> | ||
250 | <td class="compatx">e500v2</td> | ||
251 | <td class="compatx"> </td> | ||
252 | <td class="compatx">v2.0 EOL</td> | ||
253 | </tr> | ||
254 | <tr class="odd"> | ||
255 | <td class="compatname">MIPS32</td> | ||
256 | <td class="compatbits">32</td> | ||
257 | <td class="compatx">MIPS32r1 – r5</td> | ||
258 | <td class="compatx">hard-fp + soft-fp</td> | ||
259 | <td class="compatx">v2.0 –</td> | ||
260 | </tr> | ||
261 | <tr class="even"> | ||
262 | <td class="compatname">MIPS64</td> | ||
263 | <td class="compatbits">64</td> | ||
264 | <td class="compatx">MIPS64r1 – r5</td> | ||
265 | <td class="compatx">hard-fp + soft-fp</td> | ||
266 | <td class="compatx">v2.1 –</td> | ||
267 | </tr> | ||
268 | <tr class="odd"> | ||
269 | <td class="compatname">MIPS64</td> | ||
270 | <td class="compatbits">64</td> | ||
271 | <td class="compatx">MIPS64r6</td> | ||
272 | <td class="compatx">hard-fp + soft-fp</td> | ||
273 | <td class="compatx">v2.1 EOL</td> | ||
274 | </tr> | ||
275 | <tr class="even"> | ||
276 | <td class="compatname">RISC-V</td> | ||
277 | <td class="compatbits">64</td> | ||
278 | <td class="compatx">RVA22+</td> | ||
279 | <td class="compatx"> </td> | ||
280 | <td class="compatx">TBA</td> | ||
281 | </tr> | ||
282 | </table> | ||
283 | <p> | 106 | <p> |
284 | There are no plans to add historic architectures or to continue support | 107 | Batch files are provided for MSVC++ builds and console cross-builds. |
285 | for end-of-life (EOL) architectures, for which no new CPUs are commonly | ||
286 | available anymore. Likewise, there are no plans to support marginal | ||
287 | and/or de-facto-dead architectures. | ||
288 | </p> | 108 | </p> |
289 | 109 | ||
290 | <h2>Configuring LuaJIT</h2> | 110 | <h2>Configuring LuaJIT</h2> |
@@ -294,7 +114,6 @@ Usually there is no need to tweak the settings. The following files | |||
294 | hold all user-configurable settings: | 114 | hold all user-configurable settings: |
295 | </p> | 115 | </p> |
296 | <ul> | 116 | <ul> |
297 | <li><tt>src/luaconf.h</tt> sets some configuration variables.</li> | ||
298 | <li><tt>Makefile</tt> has settings for <b>installing</b> LuaJIT (POSIX | 117 | <li><tt>Makefile</tt> has settings for <b>installing</b> LuaJIT (POSIX |
299 | only).</li> | 118 | only).</li> |
300 | <li><tt>src/Makefile</tt> has settings for <b>compiling</b> LuaJIT | 119 | <li><tt>src/Makefile</tt> has settings for <b>compiling</b> LuaJIT |
@@ -317,23 +136,11 @@ Please check the note about the | |||
317 | <h2 id="posix">POSIX Systems (Linux, macOS, *BSD etc.)</h2> | 136 | <h2 id="posix">POSIX Systems (Linux, macOS, *BSD etc.)</h2> |
318 | <h3>Prerequisites</h3> | 137 | <h3>Prerequisites</h3> |
319 | <p> | 138 | <p> |
320 | Depending on your distribution, you may need to install a package for | 139 | Depending on your distribution, you may need to install a package for a |
321 | GCC, the development headers and/or a complete SDK. E.g. on a current | 140 | compiler (GCC or Clang/LLVM), the development headers and/or a complete SDK. |
322 | Debian/Ubuntu, install <tt>libc6-dev</tt> with the package manager. | 141 | E.g. on a current Debian/Ubuntu, install <tt>build-essential</tt> with the |
142 | package manager. | ||
323 | </p> | 143 | </p> |
324 | <p> | ||
325 | The recommended way to fetch the latest version is to do a pull from | ||
326 | the git repository. | ||
327 | </p> | ||
328 | <p> | ||
329 | Alternatively, download the latest source package of LuaJIT (pick the .tar.gz). | ||
330 | Move it to a directory of your choice, open a terminal window and change | ||
331 | to this directory. Now unpack the archive and change to the newly created | ||
332 | directory (replace XX.YY.ZZ with the version you downloaded): | ||
333 | </p> | ||
334 | <pre class="code"> | ||
335 | tar zxf LuaJIT-XX.YY.ZZ.tar.gz | ||
336 | cd LuaJIT-XX.YY.ZZ | ||
337 | </pre> | 144 | </pre> |
338 | <h3>Building LuaJIT</h3> | 145 | <h3>Building LuaJIT</h3> |
339 | <p> | 146 | <p> |
@@ -394,15 +201,10 @@ Either install one of the open source SDKs | |||
394 | GCC plus the required development headers. | 201 | GCC plus the required development headers. |
395 | Or install Microsoft's Visual Studio (MSVC). | 202 | Or install Microsoft's Visual Studio (MSVC). |
396 | </p> | 203 | </p> |
397 | <p> | ||
398 | Next, pull from the git repository or download the source package and | ||
399 | unpack it using an archive manager (e.g. the Windows Explorer) to | ||
400 | a directory of your choice. | ||
401 | </p> | ||
402 | <h3>Building with MSVC</h3> | 204 | <h3>Building with MSVC</h3> |
403 | <p> | 205 | <p> |
404 | Open a "Visual Studio Command Prompt" (either x86 or x64), <tt>cd</tt> to the | 206 | Open a "Visual Studio Command Prompt" (either x86 or x64), <tt>cd</tt> to the |
405 | directory where you've unpacked the sources and run these commands: | 207 | directory with the source code and run these commands: |
406 | </p> | 208 | </p> |
407 | <pre class="code"> | 209 | <pre class="code"> |
408 | cd src | 210 | cd src |
@@ -415,8 +217,8 @@ Then follow the installation instructions below. | |||
415 | <h3>Building with MinGW or Cygwin</h3> | 217 | <h3>Building with MinGW or Cygwin</h3> |
416 | <p> | 218 | <p> |
417 | Open a command prompt window and make sure the MinGW or Cygwin programs | 219 | Open a command prompt window and make sure the MinGW or Cygwin programs |
418 | are in your path. Then <tt>cd</tt> to the directory of the git repository | 220 | are in your path. Then <tt>cd</tt> to the directory of the git repository. |
419 | or where you've unpacked the sources. Then run this command for MinGW: | 221 | Then run this command for MinGW: |
420 | </p> | 222 | </p> |
421 | <pre class="code"> | 223 | <pre class="code"> |
422 | mingw32-make | 224 | mingw32-make |
@@ -518,15 +320,15 @@ make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- \ | |||
518 | make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabihf- | 320 | make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabihf- |
519 | 321 | ||
520 | # ARM64 | 322 | # ARM64 |
521 | make CROSS=aarch64-linux- | 323 | make CROSS=aarch64-linux-gnu- |
522 | 324 | ||
523 | # PPC | 325 | # PPC |
524 | make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu- | 326 | make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu- |
525 | 327 | ||
526 | # MIPS32 big-endian | 328 | # MIPS32 big-endian |
527 | make HOST_CC="gcc -m32" CROSS=mips-linux- | 329 | make HOST_CC="gcc -m32" CROSS=mips-linux-gnu- |
528 | # MIPS32 little-endian | 330 | # MIPS32 little-endian |
529 | make HOST_CC="gcc -m32" CROSS=mipsel-linux- | 331 | make HOST_CC="gcc -m32" CROSS=mipsel-linux-gnu- |
530 | 332 | ||
531 | # MIPS64 big-endian | 333 | # MIPS64 big-endian |
532 | make CROSS=mips-linux- TARGET_CFLAGS="-mips64r2 -mabi=64" | 334 | make CROSS=mips-linux- TARGET_CFLAGS="-mips64r2 -mabi=64" |
@@ -605,8 +407,8 @@ make HOST_CC="gcc -m32" CROSS=ppu-lv2- | |||
605 | To cross-compile for the other consoles from a Windows host, open a | 407 | To cross-compile for the other consoles from a Windows host, open a |
606 | "Native Tools Command Prompt for VS". You need to choose either the 32 | 408 | "Native Tools Command Prompt for VS". You need to choose either the 32 |
607 | or the 64 bit version of the host compiler to match the target. | 409 | or the 64 bit version of the host compiler to match the target. |
608 | Then <tt>cd</tt> to the <tt>src</tt> directory below where you've | 410 | Then <tt>cd</tt> to the <tt>src</tt> directory below the source code |
609 | unpacked the sources and run the build command given in the table: | 411 | and run the build command given in the table: |
610 | </p> | 412 | </p> |
611 | <table class="compat"> | 413 | <table class="compat"> |
612 | <tr class="compathead"> | 414 | <tr class="compathead"> |
diff --git a/doc/luajit.html b/doc/luajit.html index 3bb8aaf2..030cf705 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 | } |
70 | table.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 | } | ||
79 | table.stats td.speed { | ||
80 | color: #ff4020; | ||
81 | } | ||
82 | table.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 | } | ||
91 | table.feature small { | ||
92 | font-size: 50%; | ||
93 | } | ||
94 | </style> | 70 | </style> |
95 | </head> | 71 | </head> |
96 | <body> | 72 | <body> |
@@ -131,9 +107,9 @@ table.feature small { | |||
131 | <a href="ext_profiler.html">Profiler</a> | 107 | <a href="ext_profiler.html">Profiler</a> |
132 | </li></ul> | 108 | </li></ul> |
133 | </li><li> | 109 | </li><li> |
134 | <a href="status.html">Status</a> | 110 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
135 | </li><li> | 111 | </li><li> |
136 | <a href="faq.html">FAQ</a> | 112 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
137 | </li><li> | 113 | </li><li> |
138 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 114 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
139 | </li></ul> | 115 | </li></ul> |
@@ -173,23 +149,20 @@ LuaJIT is Copyright © 2005-2023 Mike Pall, released under the | |||
173 | </table> | 149 | </table> |
174 | 150 | ||
175 | <h2>Overview</h2> | 151 | <h2>Overview</h2> |
176 | <table class="feature stats"> | ||
177 | <tr> | ||
178 | <td class="speed">3x<br>- 100x</td> | ||
179 | <td class="kb">115 <small>KB</small><br>VM</td> | ||
180 | <td class="kb">90 <small>KB</small><br>JIT</td> | ||
181 | <td class="kloc">63 <small>KLOC</small><br>C</td> | ||
182 | <td class="kloc">24 <small>KLOC</small><br>ASM</td> | ||
183 | <td class="kloc">11 <small>KLOC</small><br>Lua</td> | ||
184 | </tr> | ||
185 | </table> | ||
186 | <p style="margin-top: 1em;"> | 152 | <p style="margin-top: 1em;"> |
187 | LuaJIT has been successfully used as a <b>scripting middleware</b> in | 153 | LuaJIT has been successfully used as a <b>scripting middleware</b> in |
188 | games, appliances, network and graphics apps, numerical simulations, | 154 | games, appliances, network and graphics apps, numerical simulations, |
189 | trading platforms and many other specialty applications. It scales from | 155 | trading platforms and many other specialty applications. |
190 | embedded devices, smartphones, desktops up to server farms. It combines | 156 | </p> |
191 | high flexibility with high performance | 157 | <p> |
192 | and an unmatched <b>low memory footprint</b>. | 158 | LuaJIT is part of a hundred million web sites, huge SaaS installations, |
159 | network switches, set-top boxes and other embedded devices. You've probably | ||
160 | already used LuaJIT without knowing about it. | ||
161 | </p> | ||
162 | <p> | ||
163 | LuaJIT scales from embedded devices, smartphones, desktops up to server | ||
164 | farms. It combines high flexibility with high performance and an unmatched | ||
165 | <b>low memory footprint</b>. | ||
193 | </p> | 166 | </p> |
194 | <p> | 167 | <p> |
195 | LuaJIT has been in continuous development since 2005. It's widely | 168 | LuaJIT has been in continuous development since 2005. It's widely |
diff --git a/doc/running.html b/doc/running.html index 325cb6bb..3afc1b56 100644 --- a/doc/running.html +++ b/doc/running.html | |||
@@ -68,14 +68,15 @@ td.param_default { | |||
68 | <a href="ext_profiler.html">Profiler</a> | 68 | <a href="ext_profiler.html">Profiler</a> |
69 | </li></ul> | 69 | </li></ul> |
70 | </li><li> | 70 | </li><li> |
71 | <a href="status.html">Status</a> | 71 | <a href="https://luajit.org/status.html">Status <span class="ext">»</span></a> |
72 | </li><li> | 72 | </li><li> |
73 | <a href="faq.html">FAQ</a> | 73 | <a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a> |
74 | </li><li> | 74 | </li><li> |
75 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 75 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
76 | </li></ul> | 76 | </li></ul> |
77 | </div> | 77 | </div> |
78 | <div id="main"> | 78 | <div id="main"> |
79 | |||
79 | <p> | 80 | <p> |
80 | LuaJIT has only a single stand-alone executable, called <tt>luajit</tt> on | 81 | LuaJIT has only a single stand-alone executable, called <tt>luajit</tt> on |
81 | POSIX systems or <tt>luajit.exe</tt> on Windows. It can be used to run simple | 82 | POSIX 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 49ced3f9..00000000 --- a/doc/status.html +++ /dev/null | |||
@@ -1,105 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Status</title> | ||
5 | <meta charset="utf-8"> | ||
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"> | ||
11 | ul 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">»</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_buffer.html">String Buffers</a> | ||
44 | </li><li> | ||
45 | <a href="ext_jit.html">jit.* Library</a> | ||
46 | </li><li> | ||
47 | <a href="ext_c_api.html">Lua/C API</a> | ||
48 | </li><li> | ||
49 | <a href="ext_profiler.html">Profiler</a> | ||
50 | </li></ul> | ||
51 | </li><li> | ||
52 | <a class="current" href="status.html">Status</a> | ||
53 | </li><li> | ||
54 | <a href="faq.html">FAQ</a> | ||
55 | </li><li> | ||
56 | <a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | ||
57 | </li></ul> | ||
58 | </div> | ||
59 | <div id="main"> | ||
60 | <p> | ||
61 | This documentation is for LuaJIT 2.1.0-beta3. Please check the <tt>doc</tt> | ||
62 | directory in each git branch for the version-specific documentation. | ||
63 | </p> | ||
64 | <p> | ||
65 | The currently developed branches are LuaJIT 2.1 and LuaJIT 2.0. | ||
66 | </p> | ||
67 | <p> | ||
68 | LuaJIT 2.0 is in feature-freeze — new features will only | ||
69 | be added to LuaJIT 2.1. | ||
70 | </p> | ||
71 | |||
72 | <h2>Current Status</h2> | ||
73 | <p> | ||
74 | LuaJIT ought to run all Lua 5.1-compatible source code just fine. | ||
75 | It's considered a serious bug if the VM crashes or produces unexpected | ||
76 | results — please report this. | ||
77 | </p> | ||
78 | <p> | ||
79 | Known incompatibilities and issues in LuaJIT 2.0: | ||
80 | </p> | ||
81 | <ul> | ||
82 | <li> | ||
83 | There are some differences in <b>implementation-defined</b> behavior. | ||
84 | These either have a good reason, are arbitrary design choices, | ||
85 | or are due to quirks in the VM. The latter cases may get fixed if a | ||
86 | demonstrable need is shown. | ||
87 | </li> | ||
88 | <li> | ||
89 | The Lua <b>debug API</b> is missing a couple of features (return | ||
90 | hooks for non-Lua functions) and shows slightly different behavior | ||
91 | in LuaJIT (no per-coroutine hooks, no tail call counting). | ||
92 | </li> | ||
93 | </ul> | ||
94 | <br class="flush"> | ||
95 | </div> | ||
96 | <div id="foot"> | ||
97 | <hr class="hide"> | ||
98 | Copyright © 2005-2023 | ||
99 | <span class="noprint"> | ||
100 | · | ||
101 | <a href="contact.html">Contact</a> | ||
102 | </span> | ||
103 | </div> | ||
104 | </body> | ||
105 | </html> | ||