aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/LuaJIT-1.1.7/jitdoc/luajit_changes.html
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/LuaJIT-1.1.7/jitdoc/luajit_changes.html')
-rw-r--r--libraries/LuaJIT-1.1.7/jitdoc/luajit_changes.html301
1 files changed, 301 insertions, 0 deletions
diff --git a/libraries/LuaJIT-1.1.7/jitdoc/luajit_changes.html b/libraries/LuaJIT-1.1.7/jitdoc/luajit_changes.html
new file mode 100644
index 0000000..bf42b93
--- /dev/null
+++ b/libraries/LuaJIT-1.1.7/jitdoc/luajit_changes.html
@@ -0,0 +1,301 @@
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 Change History</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-2011, 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</head>
12<body>
13<div id="site">
14<a href="http://luajit.org/"><span>Lua<span id="logo">JIT</span></span></a>
15</div>
16<div id="head">
17<h1>LuaJIT Change History</h1>
18</div>
19<div id="nav">
20<ul><li>
21<a href="index.html">Index</a>
22</li><li>
23<a href="luajit.html">LuaJIT</a>
24<ul><li>
25<a href="luajit_features.html">Features</a>
26</li><li>
27<a href="luajit_install.html">Installation</a>
28</li><li>
29<a href="luajit_run.html">Running</a>
30</li><li>
31<a href="luajit_api.html">API Extensions</a>
32</li><li>
33<a href="luajit_intro.html">Introduction</a>
34</li><li>
35<a href="luajit_performance.html">Performance</a>
36</li><li>
37<a href="luajit_debug.html">Debugging</a>
38</li><li>
39<a class="current" href="luajit_changes.html">Changes</a>
40</li></ul>
41</li><li>
42<a href="coco.html">Coco</a>
43<ul><li>
44<a href="coco_portability.html">Portability</a>
45</li><li>
46<a href="coco_api.html">API Extensions</a>
47</li><li>
48<a href="coco_changes.html">Changes</a>
49</li></ul>
50</li><li>
51<a href="dynasm.html">DynASM</a>
52<ul><li>
53<a href="dynasm_features.html">Features</a>
54</li><li>
55<a href="dynasm_examples.html">Examples</a>
56</li></ul>
57</li><li>
58<a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
59</li></ul>
60</div>
61<div id="main">
62<p>
63This is a list of changes between the released versions of LuaJIT.
64The current version is <strong>LuaJIT&nbsp;1.1.7</strong>.
65</p>
66<p>
67Please check the
68<a href="http://luajit.org/changes.html"><span class="ext">&raquo;</span>&nbsp;Online Change History</a>
69to see whether newer versions are available.
70</p>
71
72<h2 id="LuaJIT-1.1.7">LuaJIT 1.1.7 &mdash; 2011-05-05</h2>
73<ul>
74<li>Added fixes for the
75<a href="http://www.lua.org/bugs.html#5.1.4"><span class="ext">&raquo;</span>&nbsp;currently known bugs in Lua 5.1.4</a>.</li>
76</ul>
77
78<h2 id="LuaJIT-1.1.6">LuaJIT 1.1.6 &mdash; 2010-03-28</h2>
79<ul>
80<li>Added fixes for the
81<a href="http://www.lua.org/bugs.html#5.1.4"><span class="ext">&raquo;</span>&nbsp;currently known bugs in Lua 5.1.4</a>.</li>
82<li>Removed wrong GC check in <tt>jit_createstate()</tt>.
83Thanks to Tim Mensch.</li>
84<li>Fixed bad assertions while compiling <tt>table.insert()</tt> and
85<tt>table.remove()</tt>.</li>
86</ul>
87
88<h2 id="LuaJIT-1.1.5">LuaJIT 1.1.5 &mdash; 2008-10-25</h2>
89<ul>
90<li>Merged with Lua 5.1.4. Fixes all
91<a href="http://www.lua.org/bugs.html#5.1.3"><span class="ext">&raquo;</span>&nbsp;known bugs in Lua 5.1.3</a>.</li>
92</ul>
93
94<h2 id="LuaJIT-1.1.4">LuaJIT 1.1.4 &mdash; 2008-02-05</h2>
95<ul>
96<li>Merged with Lua 5.1.3. Fixes all
97<a href="http://www.lua.org/bugs.html#5.1.2"><span class="ext">&raquo;</span>&nbsp;known bugs in Lua 5.1.2</a>.</li>
98<li>Fixed possible (but unlikely) stack corruption while compiling
99<tt>k^x</tt> expressions.</li>
100<li>Fixed DynASM template for cmpss instruction.</li>
101</ul>
102
103<h2 id="LuaJIT-1.1.3">LuaJIT 1.1.3 &mdash; 2007-05-24</h2>
104<ul>
105<li>Merged with Lua 5.1.2. Fixes all
106<a href="http://www.lua.org/bugs.html#5.1.1"><span class="ext">&raquo;</span>&nbsp;known bugs in Lua 5.1.1</a>.</li>
107<li>Merged pending Lua 5.1.x fixes: "return -nil" bug, spurious count hook call.</li>
108<li>Remove a (sometimes) wrong assertion in <tt>luaJIT_findpc()</tt>.</li>
109<li>DynASM now allows labels for displacements and <tt>.aword</tt>.</li>
110<li>Fix some compiler warnings for DynASM glue (internal API change).</li>
111<li>Correct naming for SSSE3 (temporarily known as SSE4) in DynASM and x86 disassembler.</li>
112<li>The loadable debug modules now handle redirection to stdout
113(e.g. <tt>-j&nbsp;trace=-</tt>).</li>
114</ul>
115
116<h2 id="LuaJIT-1.1.2">LuaJIT 1.1.2 &mdash; 2006-06-24</h2>
117<ul>
118<li>Fix MSVC inline assembly: use only local variables with
119<tt>lua_number2int()</tt>.</li>
120<li>Fix "attempt to call a thread value" bug on Mac OS X:
121make values of consts used as lightuserdata keys unique
122to avoid joining by the compiler/linker.</li>
123</ul>
124
125<h2 id="LuaJIT-1.1.1">LuaJIT 1.1.1 &mdash; 2006-06-20</h2>
126<ul>
127<li>Merged with Lua 5.1.1. Fixes all
128<a href="http://www.lua.org/bugs.html#5.1"><span class="ext">&raquo;</span>&nbsp;known bugs in Lua 5.1</a>.</li>
129<li>Enforce (dynamic) linker error for EXE/DLL version mismatches.</li>
130<li>Minor changes to DynASM: faster preprocessing, smaller encoding
131for some immediates.</li>
132</ul>
133<p>
134This release is in sync with Coco 1.1.1 (see the
135<a href="coco_changes.html">Coco Change History</a>).
136</p>
137
138<h2 id="LuaJIT-1.1.0">LuaJIT 1.1.0 &mdash; 2006-03-13</h2>
139<ul>
140<li>Merged with Lua 5.1 (final).</li>
141
142<li>New JIT call frame setup:
143<ul>
144<li>The C stack is kept 16 byte aligned (faster).
145Mandatory for Mac OS X on Intel, too.</li>
146<li>Faster calling conventions for internal C helper functions.</li>
147<li>Better instruction scheduling for function prologue, OP_CALL and
148OP_RETURN.</li>
149</ul></li>
150
151<li>Miscellaneous optimizations:
152<ul>
153<li>Faster loads of FP constants. Remove narrow-to-wide store-to-load
154forwarding stalls.</li>
155<li>Use (scalar) SSE2 ops (if the CPU supports it) to speed up slot moves
156and FP to integer conversions.</li>
157<li>Optimized the two-argument form of <tt>OP_CONCAT</tt> (<tt>a..b</tt>).</li>
158<li>Inlined <tt>OP_MOD</tt> (<tt>a%b</tt>).
159With better accuracy than the C variant, too.</li>
160<li>Inlined <tt>OP_POW</tt> (<tt>a^b</tt>). Unroll <tt>x^k</tt> or
161use <tt>k^x = 2^(log2(k)*x)</tt> or call <tt>pow()</tt>.</li>
162</ul></li>
163
164<li>Changes in the optimizer:
165<ul>
166<li>Improved hinting for table keys derived from table values
167(<tt>t1[t2[x]]</tt>).</li>
168<li>Lookup hinting now works with arbitrary object types and
169supports index chains, too.</li>
170<li>Generate type hints for arithmetic and comparison operators,
171OP_LEN, OP_CONCAT and OP_FORPREP.</li>
172<li>Remove several hint definitions in favour of a generic COMBINE hint.</li>
173<li>Complete rewrite of <tt>jit.opt_inline</tt> module
174(ex <tt>jit.opt_lib</tt>).</li>
175</ul></li>
176
177<li>Use adaptive deoptimization:
178<ul>
179<li>If runtime verification of a contract fails, the affected
180instruction is recompiled and patched on-the-fly.
181Regular programs will trigger deoptimization only occasionally.</li>
182<li>This avoids generating code for uncommon fallback cases
183most of the time. Generated code is up to 30% smaller compared to
184LuaJIT&nbsp;1.0.3.</li>
185<li>Deoptimization is used for many opcodes and contracts:
186<ul>
187<li>OP_CALL, OP_TAILCALL: type mismatch for callable.</li>
188<li>Inlined calls: closure mismatch, parameter number and type mismatches.</li>
189<li>OP_GETTABLE, OP_SETTABLE: table or key type and range mismatches.</li>
190<li>All arithmetic and comparison operators, OP_LEN, OP_CONCAT,
191OP_FORPREP: operand type and range mismatches.</li>
192</ul></li>
193<li>Complete redesign of the debug and traceback info
194(bytecode &harr; mcode) to support deoptimization.
195Much more flexible and needs only 50% of the space.</li>
196<li>The modules <tt>jit.trace</tt>, <tt>jit.dumphints</tt> and
197<tt>jit.dump</tt> handle deoptimization.</li>
198</ul></li>
199
200<li>Inlined many popular library functions
201(for commonly used arguments only):
202<ul>
203<li>Most <tt>math.*</tt> functions (the 18 most used ones)
204[2x-10x faster].</li>
205<li><tt>string.len</tt>, <tt>string.sub</tt> and <tt>string.char</tt>
206[2x-10x faster].</li>
207<li><tt>table.insert</tt>, <tt>table.remove</tt> and <tt>table.getn</tt>
208[3x-5x faster].</li>
209<li><tt>coroutine.yield</tt> and <tt>coroutine.resume</tt>
210[3x-5x faster].</li>
211<li><tt>pairs</tt>, <tt>ipairs</tt> and the corresponding iterators
212[8x-15x faster].</li>
213</ul></li>
214
215<li>Changes in the core and loadable modules and the stand-alone executable:
216<ul>
217<li>Added <tt>jit.version</tt>, <tt>jit.version_num</tt>
218and <tt>jit.arch</tt>.</li>
219<li>Reorganized some internal API functions (<tt>jit.util.*mcode*</tt>).</li>
220<li>The <tt>-j dump</tt> output now shows JSUB names, too.</li>
221<li>New x86 disassembler module written in pure Lua. No dependency
222on ndisasm anymore. Flexible API, very compact (500 lines)
223and complete (x87, MMX, SSE, SSE2, SSE3, SSSE3, privileged instructions).</li>
224<li><tt>luajit -v</tt> prints the LuaJIT version and copyright
225on a separate line.</li>
226</ul></li>
227
228<li>Added SSE, SSE2, SSE3 and SSSE3 support to DynASM.</li>
229<li>Miscellaneous doc changes. Added a section about
230<a href="luajit_install.html#embedding">embedding LuaJIT</a>.</li>
231</ul>
232<p>
233This release is in sync with Coco 1.1.0 (see the
234<a href="coco_changes.html">Coco Change History</a>).
235</p>
236
237<h2 id="LuaJIT-1.0.3">LuaJIT 1.0.3 &mdash; 2005-09-08</h2>
238<ul>
239<li>Even more docs.</li>
240<li>Unified closure checks in <tt>jit.*</tt>.</li>
241<li>Fixed some range checks in <tt>jit.util.*</tt>.</li>
242<li>Fixed __newindex call originating from <tt>jit_settable_str()</tt>.</li>
243<li>Merged with Lua 5.1 alpha (including early bugfixes).</li>
244</ul>
245<p>
246This is the first public release of LuaJIT.
247</p>
248
249<h2 id="LuaJIT-1.0.2">LuaJIT 1.0.2 &mdash; 2005-09-02</h2>
250<ul>
251<li>Add support for flushing the Valgrind translation cache <br>
252(<tt>MYCFLAGS= -DUSE_VALGRIND</tt>).</li>
253<li>Add support for freeing executable mcode memory to the <tt>mmap()</tt>-based
254variant for POSIX systems.</li>
255<li>Reorganized the C&nbsp;function signature handling in
256<tt>jit.opt_lib</tt>.</li>
257<li>Changed to index-based hints for inlining C&nbsp;functions.
258Still no support in the backend for inlining.</li>
259<li>Hardcode <tt>HEAP_CREATE_ENABLE_EXECUTE</tt> value if undefined.</li>
260<li>Misc. changes to the <tt>jit.*</tt> modules.</li>
261<li>Misc. changes to the Makefiles.</li>
262<li>Lots of new docs.</li>
263<li>Complete doc reorg.</li>
264</ul>
265<p>
266Not released because Lua 5.1 alpha came out today.
267</p>
268
269<h2 id="LuaJIT-1.0.1">LuaJIT 1.0.1 &mdash; 2005-08-31</h2>
270<ul>
271<li>Missing GC step in <tt>OP_CONCAT</tt>.</li>
272<li>Fix result handling for C &ndash;> JIT calls.</li>
273<li>Detect CPU feature bits.</li>
274<li>Encode conditional moves (<tt>fucomip</tt>) only when supported.</li>
275<li>Add fallback instructions for FP compares.</li>
276<li>Add support for <tt>LUA_COMPAT_VARARG</tt>. Still disabled by default.</li>
277<li>MSVC needs a specific place for the <tt>CALLBACK</tt> attribute
278(David Burgess).</li>
279<li>Misc. doc updates.</li>
280</ul>
281<p>
282Interim non-public release.
283Special thanks to Adam D. Moss for reporting most of the bugs.
284</p>
285
286<h2 id="LuaJIT-1.0.0">LuaJIT 1.0.0 &mdash; 2005-08-29</h2>
287<p>
288This is the initial non-public release of LuaJIT.
289</p>
290<br class="flush">
291</div>
292<div id="foot">
293<hr class="hide">
294Copyright &copy; 2005-2011 Mike Pall
295<span class="noprint">
296&middot;
297<a href="contact.html">Contact</a>
298</span>
299</div>
300</body>
301</html>