luajit.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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="Author" content="Mike Pall">
  7. <meta name="Copyright" content="Copyright (C) 2005-2013, Mike Pall">
  8. <meta name="Language" content="en">
  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">
  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>
  93. </head>
  94. <body>
  95. <div id="site">
  96. <a href="http://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
  97. </div>
  98. <div id="head">
  99. <h1>LuaJIT</h1>
  100. </div>
  101. <div id="nav">
  102. <ul><li>
  103. <a class="current" href="luajit.html">LuaJIT</a>
  104. <ul><li>
  105. <a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
  106. </li><li>
  107. <a href="install.html">Installation</a>
  108. </li><li>
  109. <a href="running.html">Running</a>
  110. </li></ul>
  111. </li><li>
  112. <a href="extensions.html">Extensions</a>
  113. <ul><li>
  114. <a href="ext_ffi.html">FFI Library</a>
  115. <ul><li>
  116. <a href="ext_ffi_tutorial.html">FFI Tutorial</a>
  117. </li><li>
  118. <a href="ext_ffi_api.html">ffi.* API</a>
  119. </li><li>
  120. <a href="ext_ffi_semantics.html">FFI Semantics</a>
  121. </li></ul>
  122. </li><li>
  123. <a href="ext_jit.html">jit.* Library</a>
  124. </li><li>
  125. <a href="ext_c_api.html">Lua/C API</a>
  126. </li></ul>
  127. </li><li>
  128. <a href="status.html">Status</a>
  129. <ul><li>
  130. <a href="changes.html">Changes</a>
  131. </li></ul>
  132. </li><li>
  133. <a href="faq.html">FAQ</a>
  134. </li><li>
  135. <a href="http://luajit.org/performance.html">Performance <span class="ext">&raquo;</span></a>
  136. </li><li>
  137. <a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
  138. </li><li>
  139. <a href="http://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
  140. </li></ul>
  141. </div>
  142. <div id="main">
  143. <p>
  144. LuaJIT is a <b>Just-In-Time Compiler</b> (JIT) for the
  145. <a href="http://www.lua.org/"><span class="ext">&raquo;</span>&nbsp;Lua</a> programming language.
  146. Lua is a powerful, dynamic and light-weight programming language.
  147. It may be embedded or used as a general-purpose, stand-alone language.
  148. </p>
  149. <p>
  150. LuaJIT is Copyright &copy; 2005-2013 Mike Pall, released under the
  151. <a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">&raquo;</span>&nbsp;MIT open source license</a>.
  152. </p>
  153. <p>
  154. </p>
  155. <h2>Compatibility</h2>
  156. <table class="feature os os1">
  157. <tr><td>Windows</td><td>Linux</td><td>BSD</td><td>OSX</td><td>POSIX</td></tr>
  158. </table>
  159. <table class="feature os os2">
  160. <tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td><td>PS3</td><td>Xbox 360</td></tr>
  161. </table>
  162. <table class="feature compiler">
  163. <tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr>
  164. </table>
  165. <table class="feature cpu">
  166. <tr><td>x86</td><td>x64</td><td>ARM</td><td>PPC</td><td>e500</td><td>MIPS</td></tr>
  167. </table>
  168. <table class="feature fcompat">
  169. <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>
  170. </table>
  171. <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;">
  183. LuaJIT has been successfully used as a <b>scripting middleware</b> in
  184. games, appliances, network and graphics apps, numerical simulations,
  185. trading platforms and many other specialty applications. It scales from
  186. embedded devices, smartphones, desktops up to server farms. It combines
  187. high flexibility with <a href="http://luajit.org/performance.html"><span class="ext">&raquo;</span>&nbsp;high performance</a>
  188. and an unmatched <b>low memory footprint</b>.
  189. </p>
  190. <p>
  191. LuaJIT has been in continuous development since 2005. It's widely
  192. considered to be <b>one of the fastest dynamic language
  193. implementations</b>. It has outperformed other dynamic languages on many
  194. cross-language benchmarks since its first release &mdash; often by a
  195. substantial margin.
  196. </p>
  197. <p>
  198. For <b>LuaJIT 2.0</b>, the whole VM has been rewritten from the ground up
  199. and relentlessly optimized for performance. It combines a <b>high-speed
  200. interpreter</b>, written in assembler, with a <b>state-of-the-art JIT
  201. compiler</b>.
  202. </p>
  203. <p>
  204. An innovative <b>trace compiler</b> is integrated with advanced,
  205. SSA-based optimizations and highly tuned code generation backends.
  206. A substantial reduction of the overhead associated with dynamic languages
  207. allows it to break into the performance range traditionally reserved for
  208. offline, static language compilers.
  209. </p>
  210. <h2>More ...</h2>
  211. <p>
  212. Please select a sub-topic in the navigation bar to learn more about LuaJIT.
  213. </p>
  214. <br class="flush">
  215. </div>
  216. <div id="foot">
  217. <hr class="hide">
  218. Copyright &copy; 2005-2013 Mike Pall
  219. <span class="noprint">
  220. &middot;
  221. <a href="contact.html">Contact</a>
  222. </span>
  223. </div>
  224. </body>
  225. </html>