summaryrefslogtreecommitdiff
path: root/doc/luajit.html
blob: b96e5691bc2a908e36bc6ae81909e99b9bde3d0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>LuaJIT</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Mike Pall">
<meta name="Copyright" content="Copyright (C) 2005-2012, Mike Pall">
<meta name="Language" content="en">
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
<meta name="description" content="LuaJIT is a Just-In-Time (JIT) compiler for the Lua language.">
</head>
<body>
<div id="site">
<a href="http://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
</div>
<div id="head">
<h1>LuaJIT</h1>
</div>
<div id="nav">
<ul><li>
<a class="current" href="luajit.html">LuaJIT</a>
<ul><li>
<a href="install.html">Installation</a>
</li><li>
<a href="running.html">Running</a>
</li></ul>
</li><li>
<a href="extensions.html">Extensions</a>
<ul><li>
<a href="ext_ffi.html">FFI Library</a>
<ul><li>
<a href="ext_ffi_tutorial.html">FFI Tutorial</a>
</li><li>
<a href="ext_ffi_api.html">ffi.* API</a>
</li><li>
<a href="ext_ffi_semantics.html">FFI Semantics</a>
</li></ul>
</li><li>
<a href="ext_jit.html">jit.* Library</a>
</li><li>
<a href="ext_c_api.html">Lua/C API</a>
</li></ul>
</li><li>
<a href="status.html">Status</a>
<ul><li>
<a href="changes.html">Changes</a>
</li></ul>
</li><li>
<a href="faq.html">FAQ</a>
</li><li>
<a href="http://luajit.org/performance.html">Performance <span class="ext">&raquo;</span></a>
</li><li>
<a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
</li></ul>
</div>
<div id="main">
<p>
LuaJIT is a <b>Just-In-Time Compiler</b> for the Lua<sup>*</sup>
programming language.
</p>
<p>
LuaJIT is Copyright &copy; 2005-2012 Mike Pall.
LuaJIT is open source software, released under the
<a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">&raquo;</span>&nbsp;MIT license</a>.
</p>
<p class="indent" style="color: #606060;">
* Lua is a powerful, dynamic and light-weight programming language
designed for extending applications. Lua is also frequently used as a
general-purpose, stand-alone language. More information about
Lua can be found at: <a href="http://www.lua.org/"><span class="ext">&raquo;</span>&nbsp;http://www.lua.org/</a>
</p>
<h2>Compatibility</h2>
<p>
LuaJIT implements the full set of language features defined by Lua 5.1.
The virtual machine (VM) is <b>API- and ABI-compatible</b> to the
standard Lua interpreter and can be deployed as a drop-in replacement.
</p>
<p>
LuaJIT offers more performance, at the expense of portability. It
currently runs on all popular operating systems based on
<b>x86</b> or <b>x64</b> CPUs (Linux, Windows, OSX etc.) or embedded
systems based on <b>ARM</b> (Android, iOS), <b>PPC</b> or <b>MIPS</b> CPUs.
Other platforms will be supported in the future, based on user demand
and sponsoring.
</p>

<h2>Overview</h2>
<p>
LuaJIT has been successfully used as a <b>scripting middleware</b> in
games, 3D modellers, numerical simulations, trading platforms and many
other specialty applications. It combines high flexibility with high
performance and an unmatched <b>low memory footprint</b>: less than
<b>125K</b> for the VM plus less than <b>85K</b> for the JIT compiler (on x86).
</p>
<p>
LuaJIT has been in continuous development since 2005. It's widely
considered to be <b>one of the fastest dynamic language
implementations</b>. It has outperformed other dynamic languages on many
cross-language benchmarks since its first release &mdash; often by a
substantial margin. In 2009 other dynamic language VMs started to catch up
with the performance of LuaJIT 1.x. Well, I couldn't let that slide. ;-)
</p>
<p>
2009 also marks the first release of the long-awaited <b>LuaJIT 2.0</b>.
The whole VM has been rewritten from the ground up and relentlessly
optimized for performance. It combines a high-speed interpreter,
written in assembler, with a state-of-the-art JIT compiler.
</p>
<p>
An innovative <b>trace compiler</b> is integrated with advanced,
SSA-based optimizations and a highly tuned code generation backend. This
allows a substantial reduction of the overhead associated with dynamic
language features.
</p>
<p>
It's destined to break into the <a href="http://luajit.org/performance.html"><span class="ext">&raquo;</span>&nbsp;performance</a>
range traditionally reserved for offline, static language compilers.
</p>

<h2>More ...</h2>
<p>
Click on the LuaJIT sub-topics in the navigation bar to learn more
about LuaJIT.
</p>
<p><p>
Click on the Logo in the upper left corner to visit
the LuaJIT project page on the web. All other links to online
resources are marked with a '<span class="ext">&raquo;</span>'.
</p>
<br class="flush">
</div>
<div id="foot">
<hr class="hide">
Copyright &copy; 2005-2012 Mike Pall
<span class="noprint">
&middot;
<a href="contact.html">Contact</a>
</span>
</div>
</body>
</html>