luajit.html 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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-2017, 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.os3 td {
  42. color: #40ffff;
  43. }
  44. table.compiler td {
  45. color: #2080ff;
  46. background: #62bf41;
  47. background-image: linear-gradient(#62bf41 10%, #b0ffb0 95%);
  48. background-image: -moz-linear-gradient(#62bf41 10%, #b0ffb0 95%);
  49. background-image: -webkit-linear-gradient(#62bf41 10%, #b0ffb0 95%);
  50. background-image: -o-linear-gradient(#62bf41 10%, #b0ffb0 95%);
  51. background-image: -ms-linear-gradient(#62bf41 10%, #b0ffb0 95%);
  52. }
  53. table.cpu td {
  54. color: #ffff00;
  55. background: #cf7251;
  56. background-image: linear-gradient(#bf6241 10%, #ffb0b0 95%);
  57. background-image: -moz-linear-gradient(#bf6241 10%, #ffb0b0 95%);
  58. background-image: -webkit-linear-gradient(#bf6241 10%, #ffb0b0 95%);
  59. background-image: -o-linear-gradient(#bf6241 10%, #ffb0b0 95%);
  60. background-image: -ms-linear-gradient(#bf6241 10%, #ffb0b0 95%);
  61. }
  62. table.fcompat td {
  63. color: #2060e0;
  64. background: #61cfcf;
  65. background-image: linear-gradient(#41bfbf 10%, #b0ffff 95%);
  66. background-image: -moz-linear-gradient(#41bfbf 10%, #b0ffff 95%);
  67. background-image: -webkit-linear-gradient(#41bfbf 10%, #b0ffff 95%);
  68. background-image: -o-linear-gradient(#41bfbf 10%, #b0ffff 95%);
  69. background-image: -ms-linear-gradient(#41bfbf 10%, #b0ffff 95%);
  70. }
  71. table.stats td {
  72. color: #ffffff;
  73. background: #a0a0a0;
  74. background-image: linear-gradient(#808080 10%, #d0d0d0 95%);
  75. background-image: -moz-linear-gradient(#808080 10%, #d0d0d0 95%);
  76. background-image: -webkit-linear-gradient(#808080 10%, #d0d0d0 95%);
  77. background-image: -o-linear-gradient(#808080 10%, #d0d0d0 95%);
  78. background-image: -ms-linear-gradient(#808080 10%, #d0d0d0 95%);
  79. }
  80. table.stats td.speed {
  81. color: #ff4020;
  82. }
  83. table.stats td.kb {
  84. color: #ffff80;
  85. background: #808080;
  86. background-image: linear-gradient(#606060 10%, #c0c0c0 95%);
  87. background-image: -moz-linear-gradient(#606060 10%, #c0c0c0 95%);
  88. background-image: -webkit-linear-gradient(#606060 10%, #c0c0c0 95%);
  89. background-image: -o-linear-gradient(#606060 10%, #c0c0c0 95%);
  90. background-image: -ms-linear-gradient(#606060 10%, #c0c0c0 95%);
  91. }
  92. table.feature small {
  93. font-size: 50%;
  94. }
  95. </style>
  96. </head>
  97. <body>
  98. <div id="site">
  99. <a href="http://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
  100. </div>
  101. <div id="head">
  102. <h1>LuaJIT</h1>
  103. </div>
  104. <div id="nav">
  105. <ul><li>
  106. <a class="current" href="luajit.html">LuaJIT</a>
  107. <ul><li>
  108. <a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
  109. </li><li>
  110. <a href="install.html">Installation</a>
  111. </li><li>
  112. <a href="running.html">Running</a>
  113. </li></ul>
  114. </li><li>
  115. <a href="extensions.html">Extensions</a>
  116. <ul><li>
  117. <a href="ext_ffi.html">FFI Library</a>
  118. <ul><li>
  119. <a href="ext_ffi_tutorial.html">FFI Tutorial</a>
  120. </li><li>
  121. <a href="ext_ffi_api.html">ffi.* API</a>
  122. </li><li>
  123. <a href="ext_ffi_semantics.html">FFI Semantics</a>
  124. </li></ul>
  125. </li><li>
  126. <a href="ext_jit.html">jit.* Library</a>
  127. </li><li>
  128. <a href="ext_c_api.html">Lua/C API</a>
  129. </li></ul>
  130. </li><li>
  131. <a href="status.html">Status</a>
  132. <ul><li>
  133. <a href="changes.html">Changes</a>
  134. </li></ul>
  135. </li><li>
  136. <a href="faq.html">FAQ</a>
  137. </li><li>
  138. <a href="http://luajit.org/performance.html">Performance <span class="ext">&raquo;</span></a>
  139. </li><li>
  140. <a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
  141. </li><li>
  142. <a href="http://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
  143. </li></ul>
  144. </div>
  145. <div id="main">
  146. <p>
  147. LuaJIT is a <b>Just-In-Time Compiler</b> (JIT) for the
  148. <a href="http://www.lua.org/"><span class="ext">&raquo;</span>&nbsp;Lua</a> programming language.
  149. Lua is a powerful, dynamic and light-weight programming language.
  150. It may be embedded or used as a general-purpose, stand-alone language.
  151. </p>
  152. <p>
  153. LuaJIT is Copyright &copy; 2005-2017 Mike Pall, released under the
  154. <a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">&raquo;</span>&nbsp;MIT open source license</a>.
  155. </p>
  156. <p>
  157. </p>
  158. <h2>Compatibility</h2>
  159. <table class="feature os os1">
  160. <tr><td>Windows</td><td>Linux</td><td>BSD</td><td>OSX</td><td>POSIX</td></tr>
  161. </table>
  162. <table class="feature os os2">
  163. <tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td></tr>
  164. </table>
  165. <table class="feature os os3">
  166. <tr><td>PS3</td><td>PS4</td><td>PS Vita</td><td>Xbox 360</td></tr>
  167. </table>
  168. <table class="feature compiler">
  169. <tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr>
  170. </table>
  171. <table class="feature cpu">
  172. <tr><td>x86</td><td>x64</td><td>ARM</td><td>PPC</td><td>e500</td><td>MIPS</td></tr>
  173. </table>
  174. <table class="feature fcompat">
  175. <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>
  176. </table>
  177. <h2>Overview</h2>
  178. <table class="feature stats">
  179. <tr>
  180. <td class="speed">3x<br>-&nbsp;&nbsp;100x</td>
  181. <td class="kb">115&nbsp;<small>KB</small><br>VM</td>
  182. <td class="kb">90&nbsp;<small>KB</small><br>JIT</td>
  183. <td class="kloc">63&nbsp;<small>KLOC</small><br>C</td>
  184. <td class="kloc">24&nbsp;<small>KLOC</small><br>ASM</td>
  185. <td class="kloc">11&nbsp;<small>KLOC</small><br>Lua</td>
  186. </tr>
  187. </table>
  188. <p style="margin-top: 1em;">
  189. LuaJIT has been successfully used as a <b>scripting middleware</b> in
  190. games, appliances, network and graphics apps, numerical simulations,
  191. trading platforms and many other specialty applications. It scales from
  192. embedded devices, smartphones, desktops up to server farms. It combines
  193. high flexibility with <a href="http://luajit.org/performance.html"><span class="ext">&raquo;</span>&nbsp;high performance</a>
  194. and an unmatched <b>low memory footprint</b>.
  195. </p>
  196. <p>
  197. LuaJIT has been in continuous development since 2005. It's widely
  198. considered to be <b>one of the fastest dynamic language
  199. implementations</b>. It has outperformed other dynamic languages on many
  200. cross-language benchmarks since its first release &mdash; often by a
  201. substantial margin.
  202. </p>
  203. <p>
  204. For <b>LuaJIT 2.0</b>, the whole VM has been rewritten from the ground up
  205. and relentlessly optimized for performance. It combines a <b>high-speed
  206. interpreter</b>, written in assembler, with a <b>state-of-the-art JIT
  207. compiler</b>.
  208. </p>
  209. <p>
  210. An innovative <b>trace compiler</b> is integrated with advanced,
  211. SSA-based optimizations and highly tuned code generation backends.
  212. A substantial reduction of the overhead associated with dynamic languages
  213. allows it to break into the performance range traditionally reserved for
  214. offline, static language compilers.
  215. </p>
  216. <h2>More ...</h2>
  217. <p>
  218. Please select a sub-topic in the navigation bar to learn more about LuaJIT.
  219. </p>
  220. <br class="flush">
  221. </div>
  222. <div id="foot">
  223. <hr class="hide">
  224. Copyright &copy; 2005-2017 Mike Pall
  225. <span class="noprint">
  226. &middot;
  227. <a href="contact.html">Contact</a>
  228. </span>
  229. </div>
  230. </body>
  231. </html>