summaryrefslogtreecommitdiff
path: root/doc/luajit.html
diff options
context:
space:
mode:
authorMike Pall <mike>2012-10-14 21:48:04 +0200
committerMike Pall <mike>2012-10-14 21:48:04 +0200
commitd70d77549b397a8b9ebeed199f32e7827214c00b (patch)
tree9337bcd70521cf80f1e39971abe2e0efc32082ef /doc/luajit.html
parenta0ee70de6de0ade39de17b5678b23bf311d20d9e (diff)
downloadluajit-d70d77549b397a8b9ebeed199f32e7827214c00b.tar.gz
luajit-d70d77549b397a8b9ebeed199f32e7827214c00b.tar.bz2
luajit-d70d77549b397a8b9ebeed199f32e7827214c00b.zip
Documentation cleanup and reorganization.
Diffstat (limited to 'doc/luajit.html')
-rw-r--r--doc/luajit.html182
1 files changed, 132 insertions, 50 deletions
diff --git a/doc/luajit.html b/doc/luajit.html
index d8f20b35..9ab12899 100644
--- a/doc/luajit.html
+++ b/doc/luajit.html
@@ -9,6 +9,87 @@
9<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen"> 9<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
10<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print"> 10<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
11<meta name="description" content="LuaJIT is a Just-In-Time (JIT) compiler for the Lua language."> 11<meta name="description" content="LuaJIT is a Just-In-Time (JIT) compiler for the Lua language.">
12<style type="text/css">
13table.feature {
14 width: inherit;
15 line-height: 1.2;
16 margin: 0;
17}
18table.feature td {
19 width: 80px;
20 height: 40px;
21 vertical-align: middle;
22 text-align: center;
23 font-weight: bold;
24 border: 4px solid #e6ecff;
25 border-radius: 12px;
26}
27table.os td {
28 background: #7080d0;
29 background-image: linear-gradient(#4060c0 10%, #b0b0ff 95%);
30 background-image: -moz-linear-gradient(#4060c0 10%, #b0b0ff 95%);
31 background-image: -webkit-linear-gradient(#4060c0 10%, #b0b0ff 95%);
32 background-image: -o-linear-gradient(#4060c0 10%, #b0b0ff 95%);
33 background-image: -ms-linear-gradient(#4060c0 10%, #b0b0ff 95%);
34}
35table.os1 td {
36 color: #ffff80;
37}
38table.os2 td {
39 color: #ffa040;
40}
41table.compiler td {
42 color: #2080ff;
43 background: #62bf41;
44 background-image: linear-gradient(#62bf41 10%, #b0ffb0 95%);
45 background-image: -moz-linear-gradient(#62bf41 10%, #b0ffb0 95%);
46 background-image: -webkit-linear-gradient(#62bf41 10%, #b0ffb0 95%);
47 background-image: -o-linear-gradient(#62bf41 10%, #b0ffb0 95%);
48 background-image: -ms-linear-gradient(#62bf41 10%, #b0ffb0 95%);
49}
50table.cpu td {
51 color: #ffff00;
52 background: #cf7251;
53 background-image: linear-gradient(#bf6241 10%, #ffb0b0 95%);
54 background-image: -moz-linear-gradient(#bf6241 10%, #ffb0b0 95%);
55 background-image: -webkit-linear-gradient(#bf6241 10%, #ffb0b0 95%);
56 background-image: -o-linear-gradient(#bf6241 10%, #ffb0b0 95%);
57 background-image: -ms-linear-gradient(#bf6241 10%, #ffb0b0 95%);
58}
59table.fcompat td {
60 color: #2060e0;
61 background: #61cfcf;
62 background-image: linear-gradient(#41bfbf 10%, #b0ffff 95%);
63 background-image: -moz-linear-gradient(#41bfbf 10%, #b0ffff 95%);
64 background-image: -webkit-linear-gradient(#41bfbf 10%, #b0ffff 95%);
65 background-image: -o-linear-gradient(#41bfbf 10%, #b0ffff 95%);
66 background-image: -ms-linear-gradient(#41bfbf 10%, #b0ffff 95%);
67}
68table.stats td {
69 color: #ffffff;
70 background: #a0a0a0;
71 background-image: linear-gradient(#808080 10%, #d0d0d0 95%);
72 background-image: -moz-linear-gradient(#808080 10%, #d0d0d0 95%);
73 background-image: -webkit-linear-gradient(#808080 10%, #d0d0d0 95%);
74 background-image: -o-linear-gradient(#808080 10%, #d0d0d0 95%);
75 background-image: -ms-linear-gradient(#808080 10%, #d0d0d0 95%);
76}
77table.stats td.speed {
78 color: #ff4020;
79}
80table.stats td.kb {
81 color: #ffff80;
82 background: #808080;
83 background-image: linear-gradient(#606060 10%, #c0c0c0 95%);
84 background-image: -moz-linear-gradient(#606060 10%, #c0c0c0 95%);
85 background-image: -webkit-linear-gradient(#606060 10%, #c0c0c0 95%);
86 background-image: -o-linear-gradient(#606060 10%, #c0c0c0 95%);
87 background-image: -ms-linear-gradient(#606060 10%, #c0c0c0 95%);
88}
89table.feature small {
90 font-size: 50%;
91}
92</style>
12</head> 93</head>
13<body> 94<body>
14<div id="site"> 95<div id="site">
@@ -21,6 +102,8 @@
21<ul><li> 102<ul><li>
22<a class="current" href="luajit.html">LuaJIT</a> 103<a class="current" href="luajit.html">LuaJIT</a>
23<ul><li> 104<ul><li>
105<a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
106</li><li>
24<a href="install.html">Installation</a> 107<a href="install.html">Installation</a>
25</li><li> 108</li><li>
26<a href="running.html">Running</a> 109<a href="running.html">Running</a>
@@ -51,8 +134,6 @@
51</li><li> 134</li><li>
52<a href="http://luajit.org/performance.html">Performance <span class="ext">&raquo;</span></a> 135<a href="http://luajit.org/performance.html">Performance <span class="ext">&raquo;</span></a>
53</li><li> 136</li><li>
54<a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
55</li><li>
56<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a> 137<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
57</li><li> 138</li><li>
58<a href="http://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a> 139<a href="http://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
@@ -60,77 +141,78 @@
60</div> 141</div>
61<div id="main"> 142<div id="main">
62<p> 143<p>
63LuaJIT is a <b>Just-In-Time Compiler</b> for the Lua<sup>*</sup> 144LuaJIT is a <b>Just-In-Time Compiler</b> (JIT) for the
64programming language. 145<a href="http://www.lua.org/"><span class="ext">&raquo;</span>&nbsp;Lua</a> programming language.
65</p> 146Lua is a powerful, dynamic and light-weight programming language.
66<p> 147It may be embedded or used as a general-purpose, stand-alone language.
67LuaJIT is Copyright &copy; 2005-2012 Mike Pall.
68LuaJIT is open source software, released under the
69<a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">&raquo;</span>&nbsp;MIT license</a>.
70</p>
71<p class="indent" style="color: #606060;">
72* Lua is a powerful, dynamic and light-weight programming language
73designed for extending applications. Lua is also frequently used as a
74general-purpose, stand-alone language. More information about
75Lua can be found at: <a href="http://www.lua.org/"><span class="ext">&raquo;</span>&nbsp;http://www.lua.org/</a>
76</p> 148</p>
77<h2>Compatibility</h2>
78<p> 149<p>
79LuaJIT implements the full set of language features defined by Lua 5.1. 150LuaJIT is Copyright &copy; 2005-2012 Mike Pall, released under the
80The virtual machine (VM) is <b>API- and ABI-compatible</b> to the 151<a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">&raquo;</span>&nbsp;MIT open source license</a>.
81standard Lua interpreter and can be deployed as a drop-in replacement.
82</p> 152</p>
83<p> 153<p>
84LuaJIT offers more performance, at the expense of portability. It
85currently runs on all popular operating systems based on
86<b>x86</b> or <b>x64</b> CPUs (Linux, Windows, OSX etc.) or embedded
87systems based on <b>ARM</b> (Android, iOS), <b>PPC</b> or <b>MIPS</b> CPUs.
88Other platforms will be supported in the future, based on user demand
89and sponsoring.
90</p> 154</p>
91 155
156<h2>Compatibility</h2>
157<table class="feature os os1">
158<tr><td>Windows</td><td>Linux</td><td>BSD</td><td>OSX</td><td>POSIX</td></tr>
159</table>
160<table class="feature os os2">
161<tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td><td>PS3</td></tr>
162</table>
163<table class="feature compiler">
164<tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr>
165</table>
166<table class="feature cpu">
167<tr><td>x86</td><td>x64</td><td>ARM</td><td>PPC</td><td>e500</td><td>MIPS</td></tr>
168</table>
169<table class="feature fcompat">
170<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>
171</table>
172
92<h2>Overview</h2> 173<h2>Overview</h2>
93<p> 174<table class="feature stats">
175<tr>
176<td class="speed">3x<br>-&nbsp;&nbsp;100x</td>
177<td class="kb">115&nbsp;<small>KB</small><br>VM</td>
178<td class="kb">90&nbsp;<small>KB</small><br>JIT</td>
179<td class="kloc">73&nbsp;<small>KLOC</small><br>C</td>
180<td class="kloc">24&nbsp;<small>KLOC</small><br>ASM</td>
181<td class="kloc">11&nbsp;<small>KLOC</small><br>Lua</td>
182</tr>
183</table>
184<p style="margin-top: 1em;">
94LuaJIT has been successfully used as a <b>scripting middleware</b> in 185LuaJIT has been successfully used as a <b>scripting middleware</b> in
95games, 3D modellers, numerical simulations, trading platforms and many 186games, appliances, network and graphics apps, numerical simulations,
96other specialty applications. It combines high flexibility with high 187trading platforms and many other specialty applications. It scales from
97performance and an unmatched <b>low memory footprint</b>: less than 188embedded devices, smartphones, desktops up to server farms. It combines
98<b>125K</b> for the VM plus less than <b>85K</b> for the JIT compiler (on x86). 189high flexibility with <a href="http://luajit.org/performance.html"><span class="ext">&raquo;</span>&nbsp;high performance</a>
190and an unmatched <b>low memory footprint</b>.
99</p> 191</p>
100<p> 192<p>
101LuaJIT has been in continuous development since 2005. It's widely 193LuaJIT has been in continuous development since 2005. It's widely
102considered to be <b>one of the fastest dynamic language 194considered to be <b>one of the fastest dynamic language
103implementations</b>. It has outperformed other dynamic languages on many 195implementations</b>. It has outperformed other dynamic languages on many
104cross-language benchmarks since its first release &mdash; often by a 196cross-language benchmarks since its first release &mdash; often by a
105substantial margin. In 2009 other dynamic language VMs started to catch up 197substantial margin.
106with the performance of LuaJIT 1.x. Well, I couldn't let that slide. ;-)
107</p> 198</p>
108<p> 199<p>
1092009 also marks the first release of the long-awaited <b>LuaJIT 2.0</b>. 200For <b>LuaJIT 2.0</b> the whole VM has been rewritten from the ground up
110The whole VM has been rewritten from the ground up and relentlessly 201and relentlessly optimized for performance. It combines a <b>high-speed
111optimized for performance. It combines a high-speed interpreter, 202interpreter</b>, written in assembler, with a <b>state-of-the-art JIT
112written in assembler, with a state-of-the-art JIT compiler. 203compiler</b>.
113</p> 204</p>
114<p> 205<p>
115An innovative <b>trace compiler</b> is integrated with advanced, 206An innovative <b>trace compiler</b> is integrated with advanced,
116SSA-based optimizations and a highly tuned code generation backend. This 207SSA-based optimizations and highly tuned code generation backends.
117allows a substantial reduction of the overhead associated with dynamic 208A substantial reduction of the overhead associated with dynamic languages
118language features. 209allows it to break into the performance range traditionally reserved for
119</p> 210offline, static language compilers.
120<p>
121It's destined to break into the <a href="http://luajit.org/performance.html"><span class="ext">&raquo;</span>&nbsp;performance</a>
122range traditionally reserved for offline, static language compilers.
123</p> 211</p>
124 212
125<h2>More ...</h2> 213<h2>More ...</h2>
126<p> 214<p>
127Click on the LuaJIT sub-topics in the navigation bar to learn more 215Please select a sub-topic in the navigation bar to learn more about LuaJIT.
128about LuaJIT.
129</p>
130<p><p>
131Click on the Logo in the upper left corner to visit
132the LuaJIT project page on the web. All other links to online
133resources are marked with a '<span class="ext">&raquo;</span>'.
134</p> 216</p>
135<br class="flush"> 217<br class="flush">
136</div> 218</div>