diff options
author | Mike Pall <mike> | 2012-10-14 21:48:04 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-10-14 21:48:04 +0200 |
commit | d70d77549b397a8b9ebeed199f32e7827214c00b (patch) | |
tree | 9337bcd70521cf80f1e39971abe2e0efc32082ef /doc/luajit.html | |
parent | a0ee70de6de0ade39de17b5678b23bf311d20d9e (diff) | |
download | luajit-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.html | 182 |
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"> | ||
13 | table.feature { | ||
14 | width: inherit; | ||
15 | line-height: 1.2; | ||
16 | margin: 0; | ||
17 | } | ||
18 | table.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 | } | ||
27 | table.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 | } | ||
35 | table.os1 td { | ||
36 | color: #ffff80; | ||
37 | } | ||
38 | table.os2 td { | ||
39 | color: #ffa040; | ||
40 | } | ||
41 | table.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 | } | ||
50 | table.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 | } | ||
59 | table.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 | } | ||
68 | table.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 | } | ||
77 | table.stats td.speed { | ||
78 | color: #ff4020; | ||
79 | } | ||
80 | table.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 | } | ||
89 | table.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">»</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">»</span></a> | 135 | <a href="http://luajit.org/performance.html">Performance <span class="ext">»</span></a> |
53 | </li><li> | 136 | </li><li> |
54 | <a href="http://luajit.org/download.html">Download <span class="ext">»</span></a> | ||
55 | </li><li> | ||
56 | <a href="http://wiki.luajit.org/">Wiki <span class="ext">»</span></a> | 137 | <a href="http://wiki.luajit.org/">Wiki <span class="ext">»</span></a> |
57 | </li><li> | 138 | </li><li> |
58 | <a href="http://luajit.org/list.html">Mailing List <span class="ext">»</span></a> | 139 | <a href="http://luajit.org/list.html">Mailing List <span class="ext">»</span></a> |
@@ -60,77 +141,78 @@ | |||
60 | </div> | 141 | </div> |
61 | <div id="main"> | 142 | <div id="main"> |
62 | <p> | 143 | <p> |
63 | LuaJIT is a <b>Just-In-Time Compiler</b> for the Lua<sup>*</sup> | 144 | LuaJIT is a <b>Just-In-Time Compiler</b> (JIT) for the |
64 | programming language. | 145 | <a href="http://www.lua.org/"><span class="ext">»</span> Lua</a> programming language. |
65 | </p> | 146 | Lua is a powerful, dynamic and light-weight programming language. |
66 | <p> | 147 | It may be embedded or used as a general-purpose, stand-alone language. |
67 | LuaJIT is Copyright © 2005-2012 Mike Pall. | ||
68 | LuaJIT is open source software, released under the | ||
69 | <a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">»</span> MIT license</a>. | ||
70 | </p> | ||
71 | <p class="indent" style="color: #606060;"> | ||
72 | * Lua is a powerful, dynamic and light-weight programming language | ||
73 | designed for extending applications. Lua is also frequently used as a | ||
74 | general-purpose, stand-alone language. More information about | ||
75 | Lua can be found at: <a href="http://www.lua.org/"><span class="ext">»</span> http://www.lua.org/</a> | ||
76 | </p> | 148 | </p> |
77 | <h2>Compatibility</h2> | ||
78 | <p> | 149 | <p> |
79 | LuaJIT implements the full set of language features defined by Lua 5.1. | 150 | LuaJIT is Copyright © 2005-2012 Mike Pall, released under the |
80 | The 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">»</span> MIT open source license</a>. |
81 | standard Lua interpreter and can be deployed as a drop-in replacement. | ||
82 | </p> | 152 | </p> |
83 | <p> | 153 | <p> |
84 | LuaJIT offers more performance, at the expense of portability. It | ||
85 | currently runs on all popular operating systems based on | ||
86 | <b>x86</b> or <b>x64</b> CPUs (Linux, Windows, OSX etc.) or embedded | ||
87 | systems based on <b>ARM</b> (Android, iOS), <b>PPC</b> or <b>MIPS</b> CPUs. | ||
88 | Other platforms will be supported in the future, based on user demand | ||
89 | and 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 5.1<br>API+ABI</td><td>+ JIT</td><td>+ BitOp</td><td>+ 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>- 100x</td> | ||
177 | <td class="kb">115 <small>KB</small><br>VM</td> | ||
178 | <td class="kb">90 <small>KB</small><br>JIT</td> | ||
179 | <td class="kloc">73 <small>KLOC</small><br>C</td> | ||
180 | <td class="kloc">24 <small>KLOC</small><br>ASM</td> | ||
181 | <td class="kloc">11 <small>KLOC</small><br>Lua</td> | ||
182 | </tr> | ||
183 | </table> | ||
184 | <p style="margin-top: 1em;"> | ||
94 | LuaJIT has been successfully used as a <b>scripting middleware</b> in | 185 | LuaJIT has been successfully used as a <b>scripting middleware</b> in |
95 | games, 3D modellers, numerical simulations, trading platforms and many | 186 | games, appliances, network and graphics apps, numerical simulations, |
96 | other specialty applications. It combines high flexibility with high | 187 | trading platforms and many other specialty applications. It scales from |
97 | performance and an unmatched <b>low memory footprint</b>: less than | 188 | embedded 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). | 189 | high flexibility with <a href="http://luajit.org/performance.html"><span class="ext">»</span> high performance</a> |
190 | and an unmatched <b>low memory footprint</b>. | ||
99 | </p> | 191 | </p> |
100 | <p> | 192 | <p> |
101 | LuaJIT has been in continuous development since 2005. It's widely | 193 | LuaJIT has been in continuous development since 2005. It's widely |
102 | considered to be <b>one of the fastest dynamic language | 194 | considered to be <b>one of the fastest dynamic language |
103 | implementations</b>. It has outperformed other dynamic languages on many | 195 | implementations</b>. It has outperformed other dynamic languages on many |
104 | cross-language benchmarks since its first release — often by a | 196 | cross-language benchmarks since its first release — often by a |
105 | substantial margin. In 2009 other dynamic language VMs started to catch up | 197 | substantial margin. |
106 | with the performance of LuaJIT 1.x. Well, I couldn't let that slide. ;-) | ||
107 | </p> | 198 | </p> |
108 | <p> | 199 | <p> |
109 | 2009 also marks the first release of the long-awaited <b>LuaJIT 2.0</b>. | 200 | For <b>LuaJIT 2.0</b> the whole VM has been rewritten from the ground up |
110 | The whole VM has been rewritten from the ground up and relentlessly | 201 | and relentlessly optimized for performance. It combines a <b>high-speed |
111 | optimized for performance. It combines a high-speed interpreter, | 202 | interpreter</b>, written in assembler, with a <b>state-of-the-art JIT |
112 | written in assembler, with a state-of-the-art JIT compiler. | 203 | compiler</b>. |
113 | </p> | 204 | </p> |
114 | <p> | 205 | <p> |
115 | An innovative <b>trace compiler</b> is integrated with advanced, | 206 | An innovative <b>trace compiler</b> is integrated with advanced, |
116 | SSA-based optimizations and a highly tuned code generation backend. This | 207 | SSA-based optimizations and highly tuned code generation backends. |
117 | allows a substantial reduction of the overhead associated with dynamic | 208 | A substantial reduction of the overhead associated with dynamic languages |
118 | language features. | 209 | allows it to break into the performance range traditionally reserved for |
119 | </p> | 210 | offline, static language compilers. |
120 | <p> | ||
121 | It's destined to break into the <a href="http://luajit.org/performance.html"><span class="ext">»</span> performance</a> | ||
122 | range 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> |
127 | Click on the LuaJIT sub-topics in the navigation bar to learn more | 215 | Please select a sub-topic in the navigation bar to learn more about LuaJIT. |
128 | about LuaJIT. | ||
129 | </p> | ||
130 | <p><p> | ||
131 | Click on the Logo in the upper left corner to visit | ||
132 | the LuaJIT project page on the web. All other links to online | ||
133 | resources are marked with a '<span class="ext">»</span>'. | ||
134 | </p> | 216 | </p> |
135 | <br class="flush"> | 217 | <br class="flush"> |
136 | </div> | 218 | </div> |