x86/x64: Add more red zone checks to assembler backend.
[luajit-2.0.git] / doc / luajit.html
blob7346acb31e26eec8e2ef5dbd8fb7cbf5173978d1
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <title>LuaJIT</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 <meta name="description" content="LuaJIT is a Just-In-Time (JIT) compiler for the Lua language.">
11 <style type="text/css">
12 table.feature {
13 width: inherit;
14 line-height: 1.2;
15 margin: 0;
17 table.feature td {
18 width: 80px;
19 height: 40px;
20 vertical-align: middle;
21 text-align: center;
22 font-weight: bold;
23 border: 4px solid #e6ecff;
24 border-radius: 12px;
26 table.os td {
27 background: #7080d0;
28 background-image: linear-gradient(#4060c0 10%, #b0b0ff 95%);
29 background-image: -moz-linear-gradient(#4060c0 10%, #b0b0ff 95%);
30 background-image: -webkit-linear-gradient(#4060c0 10%, #b0b0ff 95%);
31 background-image: -o-linear-gradient(#4060c0 10%, #b0b0ff 95%);
32 background-image: -ms-linear-gradient(#4060c0 10%, #b0b0ff 95%);
34 table.os1 td {
35 color: #ffff80;
37 table.os2 td {
38 color: #ffa040;
40 table.os3 td {
41 color: #40ffff;
43 table.compiler td {
44 color: #2080ff;
45 background: #62bf41;
46 background-image: linear-gradient(#62bf41 10%, #b0ffb0 95%);
47 background-image: -moz-linear-gradient(#62bf41 10%, #b0ffb0 95%);
48 background-image: -webkit-linear-gradient(#62bf41 10%, #b0ffb0 95%);
49 background-image: -o-linear-gradient(#62bf41 10%, #b0ffb0 95%);
50 background-image: -ms-linear-gradient(#62bf41 10%, #b0ffb0 95%);
52 table.cpu td {
53 color: #ffff00;
54 background: #cf7251;
55 background-image: linear-gradient(#bf6241 10%, #ffb0b0 95%);
56 background-image: -moz-linear-gradient(#bf6241 10%, #ffb0b0 95%);
57 background-image: -webkit-linear-gradient(#bf6241 10%, #ffb0b0 95%);
58 background-image: -o-linear-gradient(#bf6241 10%, #ffb0b0 95%);
59 background-image: -ms-linear-gradient(#bf6241 10%, #ffb0b0 95%);
61 table.fcompat td {
62 color: #2060e0;
63 background: #61cfcf;
64 background-image: linear-gradient(#41bfbf 10%, #b0ffff 95%);
65 background-image: -moz-linear-gradient(#41bfbf 10%, #b0ffff 95%);
66 background-image: -webkit-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%);
70 </style>
71 </head>
72 <body>
73 <div id="site">
74 <a href="https://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
75 </div>
76 <div id="head">
77 <h1>LuaJIT</h1>
78 </div>
79 <div id="nav">
80 <ul><li>
81 <a class="current" href="luajit.html">LuaJIT</a>
82 <ul><li>
83 <a href="https://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
84 </li><li>
85 <a href="install.html">Installation</a>
86 </li><li>
87 <a href="running.html">Running</a>
88 </li></ul>
89 </li><li>
90 <a href="extensions.html">Extensions</a>
91 <ul><li>
92 <a href="ext_ffi.html">FFI Library</a>
93 <ul><li>
94 <a href="ext_ffi_tutorial.html">FFI Tutorial</a>
95 </li><li>
96 <a href="ext_ffi_api.html">ffi.* API</a>
97 </li><li>
98 <a href="ext_ffi_semantics.html">FFI Semantics</a>
99 </li></ul>
100 </li><li>
101 <a href="ext_jit.html">jit.* Library</a>
102 </li><li>
103 <a href="ext_c_api.html">Lua/C API</a>
104 </li></ul>
105 </li><li>
106 <a href="https://luajit.org/status.html">Status <span class="ext">&raquo;</span></a>
107 </li><li>
108 <a href="https://luajit.org/faq.html">FAQ <span class="ext">&raquo;</span></a>
109 </li><li>
110 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
111 </li></ul>
112 </div>
113 <div id="main">
115 LuaJIT is a <b>Just-In-Time Compiler</b> (JIT) for the
116 <a href="https://www.lua.org/"><span class="ext">&raquo;</span>&nbsp;Lua</a> programming language.
117 Lua is a powerful, dynamic and light-weight programming language.
118 It may be embedded or used as a general-purpose, stand-alone language.
119 </p>
121 LuaJIT is Copyright &copy; 2005-2023 Mike Pall, released under the
122 <a href="https://www.opensource.org/licenses/mit-license.php"><span class="ext">&raquo;</span>&nbsp;MIT open source license</a>.
123 </p>
125 </p>
127 <h2>Compatibility</h2>
128 <table class="feature os os1">
129 <tr><td>Windows</td><td>Linux</td><td>BSD</td><td>macOS</td><td>POSIX</td></tr>
130 </table>
131 <table class="feature os os2">
132 <tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td></tr>
133 </table>
134 <table class="feature os os3">
135 <tr><td>PS3</td><td>PS4</td><td>PS Vita</td><td>Xbox 360</td></tr>
136 </table>
137 <table class="feature compiler">
138 <tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr>
139 </table>
140 <table class="feature cpu">
141 <tr><td>x86</td><td>x64</td><td>ARM</td><td>PPC</td><td>e500</td><td>MIPS</td></tr>
142 </table>
143 <table class="feature fcompat">
144 <tr><td>Lua&nbsp;5.1<br>API+ABI</td><td>+&nbsp;JIT</td><td>+&nbsp;BitOp</td><td>+&nbsp;FFI</td><td>Drop-in<br>DLL/.so</td></tr>
145 </table>
147 <h2>Overview</h2>
148 <p style="margin-top: 1em;">
149 LuaJIT has been successfully used as a <b>scripting middleware</b> in
150 games, appliances, network and graphics apps, numerical simulations,
151 trading platforms and many other specialty applications.
152 </p>
154 LuaJIT is part of a hundred million web sites, huge SaaS installations,
155 network switches, set-top boxes and other embedded devices. You've probably
156 already used LuaJIT without knowing about it.
157 </p>
159 LuaJIT scales from embedded devices, smartphones, desktops up to server
160 farms. It combines high flexibility with high performance and an unmatched
161 <b>low memory footprint</b>.
162 </p>
164 LuaJIT has been in continuous development since 2005. It's widely
165 considered to be <b>one of the fastest dynamic language
166 implementations</b>. It has outperformed other dynamic languages on many
167 cross-language benchmarks since its first release &mdash; often by a
168 substantial margin.
169 </p>
171 For <b>LuaJIT 2.0</b>, the whole VM has been rewritten from the ground up
172 and relentlessly optimized for performance. It combines a <b>high-speed
173 interpreter</b>, written in assembler, with a <b>state-of-the-art JIT
174 compiler</b>.
175 </p>
177 An innovative <b>trace compiler</b> is integrated with advanced,
178 SSA-based optimizations and highly tuned code generation backends.
179 A substantial reduction of the overhead associated with dynamic languages
180 allows it to break into the performance range traditionally reserved for
181 offline, static language compilers.
182 </p>
184 <h2>More ...</h2>
186 Please select a sub-topic in the navigation bar to learn more about LuaJIT.
187 </p>
188 <br class="flush">
189 </div>
190 <div id="foot">
191 <hr class="hide">
192 Copyright &copy; 2005-2023
193 <span class="noprint">
194 &middot;
195 <a href="contact.html">Contact</a>
196 </span>
197 </div>
198 </body>
199 </html>