⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 luajit_changes.html

📁 lua的即时编译器。支持lua 5.1.2版本
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>LuaJIT Change History</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-2007, 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"></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 Change History</h1></div><div id="nav"><ul><li><a href="index.html">Index</a></li><li><a href="luajit.html">LuaJIT</a><ul><li><a href="luajit_features.html">Features</a></li><li><a href="luajit_install.html">Installation</a></li><li><a href="luajit_run.html">Running</a></li><li><a href="luajit_api.html">API Extensions</a></li><li><a href="luajit_intro.html">Introduction</a></li><li><a href="luajit_performance.html">Performance</a></li><li><a href="luajit_debug.html">Debugging</a></li><li><a class="current" href="luajit_changes.html">Changes</a></li></ul></li><li><a href="coco.html">Coco</a><ul><li><a href="coco_portability.html">Portability</a></li><li><a href="coco_api.html">API Extensions</a></li><li><a href="coco_changes.html">Changes</a></li></ul></li><li><a href="dynasm.html">DynASM</a><ul><li><a href="dynasm_features.html">Features</a></li><li><a href="dynasm_examples.html">Examples</a></li></ul></li><li><a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a></li></ul></div><div id="main"><p>This is a list of changes between the released versions of LuaJIT.The current version is <strong>LuaJIT&nbsp;1.1.3</strong>.</p><p>Please check the<a href="http://luajit.org/luajit_changes.html"><span class="ext">&raquo;</span>&nbsp;Online Change History</a>to see whether newer versions are available.</p><h2 id="LuaJIT-1.1.3">LuaJIT 1.1.3 &mdash; 2007-05-24</h2><ul><li>Merged with Lua 5.1.2. Fixes all<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><li>Merged pending Lua 5.1.x fixes: "return -nil" bug, spurious count hook call.</li><li>Remove a (sometimes) wrong assertion in <tt>luaJIT_findpc()</tt>.</li><li>DynASM now allows labels for displacements and <tt>.aword</tt>.</li><li>Fix some compiler warnings for DynASM glue (internal API change).</li><li>Correct naming for SSSE3 (temporarily known as SSE4) in DynASM and x86 disassembler.</li><li>The loadable debug modules now handle redirection to stdout(e.g. <tt>-j&nbsp;trace=-</tt>).</li></ul><h2 id="LuaJIT-1.1.2">LuaJIT 1.1.2 &mdash; 2006-06-24</h2><ul><li>Fix MSVC inline assembly: use only local variables with<tt>lua_number2int()</tt>.</li><li>Fix "attempt to call a thread value" bug on Mac OS X:make values of consts used as lightuserdata keys uniqueto avoid joining by the compiler/linker.</li></ul><h2 id="LuaJIT-1.1.1">LuaJIT 1.1.1 &mdash; 2006-06-20</h2><ul><li>Merged with Lua 5.1.1. Fixes all<a href="http://www.lua.org/bugs.html#5.1"><span class="ext">&raquo;</span>&nbsp;known bugs in Lua 5.1</a>.</li><li>Enforce (dynamic) linker error for EXE/DLL version mismatches.</li><li>Minor changes to DynASM: faster preprocessing, smaller encodingfor some immediates.</li></ul><p>This release is in sync with Coco 1.1.1 (see the<a href="coco_changes.html">Coco Change History</a>).</p><h2 id="LuaJIT-1.1.0">LuaJIT 1.1.0 &mdash; 2006-03-13</h2><ul><li>Merged with Lua 5.1 (final).</li><li>New JIT call frame setup:<ul><li>The C stack is kept 16 byte aligned (faster).Mandatory for Mac OS X on Intel, too.</li><li>Faster calling conventions for internal C helper functions.</li><li>Better instruction scheduling for function prologue, OP_CALL andOP_RETURN.</li></ul></li><li>Miscellaneous optimizations:<ul><li>Faster loads of FP constants. Remove narrow-to-wide store-to-loadforwarding stalls.</li><li>Use (scalar) SSE2 ops (if the CPU supports it) to speed up slot movesand FP to integer conversions.</li><li>Optimized the two-argument form of <tt>OP_CONCAT</tt> (<tt>a..b</tt>).</li><li>Inlined <tt>OP_MOD</tt> (<tt>a%b</tt>).With better accuracy than the C variant, too.</li><li>Inlined <tt>OP_POW</tt> (<tt>a^b</tt>). Unroll <tt>x^k</tt> oruse <tt>k^x = 2^(log2(k)*x)</tt> or call <tt>pow()</tt>.</li></ul></li><li>Changes in the optimizer:<ul><li>Improved hinting for table keys derived from table values(<tt>t1[t2[x]]</tt>).</li><li>Lookup hinting now works with arbitrary object types andsupports index chains, too.</li><li>Generate type hints for arithmetic and comparison operators,OP_LEN, OP_CONCAT and OP_FORPREP.</li><li>Remove several hint definitions in favour of a generic COMBINE hint.</li><li>Complete rewrite of <tt>jit.opt_inline</tt> module(ex <tt>jit.opt_lib</tt>).</li></ul></li><li>Use adaptive deoptimization:<ul><li>If runtime verification of a contract fails, the affectedinstruction is recompiled and patched on-the-fly.Regular programs will trigger deoptimization only occasionally.</li><li>This avoids generating code for uncommon fallback casesmost of the time. Generated code is up to 30% smaller compared toLuaJIT&nbsp;1.0.3.</li><li>Deoptimization is used for many opcodes and contracts:<ul><li>OP_CALL, OP_TAILCALL: type mismatch for callable.</li><li>Inlined calls: closure mismatch, parameter number and type mismatches.</li><li>OP_GETTABLE, OP_SETTABLE: table or key type and range mismatches.</li><li>All arithmetic and comparison operators, OP_LEN, OP_CONCAT,OP_FORPREP: operand type and range mismatches.</li></ul></li><li>Complete redesign of the debug and traceback info(bytecode &harr; mcode) to support deoptimization.Much more flexible and needs only 50% of the space.</li><li>The modules <tt>jit.trace</tt>, <tt>jit.dumphints</tt> and<tt>jit.dump</tt> handle deoptimization.</li></ul></li><li>Inlined many popular library functions(for commonly used arguments only):<ul><li>Most <tt>math.*</tt> functions (the 18 most used ones)[2x-10x faster].</li><li><tt>string.len</tt>, <tt>string.sub</tt> and <tt>string.char</tt>[2x-10x faster].</li><li><tt>table.insert</tt>, <tt>table.remove</tt> and <tt>table.getn</tt>[3x-5x faster].</li><li><tt>coroutine.yield</tt> and <tt>coroutine.resume</tt>[3x-5x faster].</li><li><tt>pairs</tt>, <tt>ipairs</tt> and the corresponding iterators[8x-15x faster].</li></ul></li><li>Changes in the core and loadable modules and the stand-alone executable:<ul><li>Added <tt>jit.version</tt>, <tt>jit.version_num</tt>and <tt>jit.arch</tt>.</li><li>Reorganized some internal API functions (<tt>jit.util.*mcode*</tt>).</li><li>The <tt>-j dump</tt> output now shows JSUB names, too.</li><li>New x86 disassembler module written in pure Lua. No dependencyon ndisasm anymore. Flexible API, very compact (500 lines)and complete (x87, MMX, SSE, SSE2, SSE3, SSSE3, privileged instructions).</li><li><tt>luajit -v</tt> prints the LuaJIT version and copyrighton a separate line.</li></ul></li><li>Added SSE, SSE2, SSE3 and SSSE3 support to DynASM.</li><li>Miscellaneous doc changes. Added a section about<a href="luajit_install.html#embedding">embedding LuaJIT</a>.</li></ul><p>This release is in sync with Coco 1.1.0 (see the<a href="coco_changes.html">Coco Change History</a>).</p><h2 id="LuaJIT-1.0.3">LuaJIT 1.0.3 &mdash; 2005-09-08</h2><ul><li>Even more docs.</li><li>Unified closure checks in <tt>jit.*</tt>.</li><li>Fixed some range checks in <tt>jit.util.*</tt>.</li><li>Fixed __newindex call originating from <tt>jit_settable_str()</tt>.</li><li>Merged with Lua 5.1 alpha (including early bugfixes).</li></ul><p>This is the first public release of LuaJIT.</p><h2 id="LuaJIT-1.0.2">LuaJIT 1.0.2 &mdash; 2005-09-02</h2><ul><li>Add support for flushing the Valgrind translation cache <br>(<tt>MYCFLAGS= -DUSE_VALGRIND</tt>).</li><li>Add support for freeing executable mcode memory to the <tt>mmap()</tt>-basedvariant for POSIX systems.</li><li>Reorganized the C&nbsp;function signature handling in<tt>jit.opt_lib</tt>.</li><li>Changed to index-based hints for inlining C&nbsp;functions.Still no support in the backend for inlining.</li><li>Hardcode <tt>HEAP_CREATE_ENABLE_EXECUTE</tt> value if undefined.</li><li>Misc. changes to the <tt>jit.*</tt> modules.</li><li>Misc. changes to the Makefiles.</li><li>Lots of new docs.</li><li>Complete doc reorg.</li></ul><p>Not released because Lua 5.1 alpha came out today.</p><h2 id="LuaJIT-1.0.1">LuaJIT 1.0.1 &mdash; 2005-08-31</h2><ul><li>Missing GC step in <tt>OP_CONCAT</tt>.</li><li>Fix result handling for C &ndash;> JIT calls.</li><li>Detect CPU feature bits.</li><li>Encode conditional moves (<tt>fucomip</tt>) only when supported.</li><li>Add fallback instructions for FP compares.</li><li>Add support for <tt>LUA_COMPAT_VARARG</tt>. Still disabled by default.</li><li>MSVC needs a specific place for the <tt>CALLBACK</tt> attribute(David Burgess).</li><li>Misc. doc updates.</li></ul><p>Interim non-public release.Special thanks to Adam D. Moss for reporting most of the bugs.</p><h2 id="LuaJIT-1.0.0">LuaJIT 1.0.0 &mdash; 2005-08-29</h2><p>This is the initial non-public release of LuaJIT.</p><br class="flush"></div><div id="foot"><hr class="hide">Copyright &copy; 2005-2007 Mike Pall<span class="noprint">&middot;<a href="contact.html">Contact</a></span></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -