diff options
Diffstat (limited to 'doc/changes.html')
| -rw-r--r-- | doc/changes.html | 323 |
1 files changed, 93 insertions, 230 deletions
diff --git a/doc/changes.html b/doc/changes.html index 4a4d4fb9..a66a8d95 100644 --- a/doc/changes.html +++ b/doc/changes.html | |||
| @@ -44,6 +44,8 @@ div.major { max-width: 600px; padding: 1em; margin: 1em 0 1em 0; } | |||
| 44 | <a href="ext_jit.html">jit.* Library</a> | 44 | <a href="ext_jit.html">jit.* Library</a> |
| 45 | </li><li> | 45 | </li><li> |
| 46 | <a href="ext_c_api.html">Lua/C API</a> | 46 | <a href="ext_c_api.html">Lua/C API</a> |
| 47 | </li><li> | ||
| 48 | <a href="ext_profiler.html">Profiler</a> | ||
| 47 | </li></ul> | 49 | </li></ul> |
| 48 | </li><li> | 50 | </li><li> |
| 49 | <a href="status.html">Status</a> | 51 | <a href="status.html">Status</a> |
| @@ -72,6 +74,96 @@ to see whether newer versions are available. | |||
| 72 | </p> | 74 | </p> |
| 73 | 75 | ||
| 74 | <div class="major" style="background: #d0d0ff;"> | 76 | <div class="major" style="background: #d0d0ff;"> |
| 77 | <h2 id="LuaJIT-2.1.0-beta3">LuaJIT 2.1.0-beta3 — 2017-05-01</h2> | ||
| 78 | <ul> | ||
| 79 | <li>Rewrite memory block allocator.</li> | ||
| 80 | <li>Add various extension from Lua 5.2/5.3.</li> | ||
| 81 | <li>Remove old Lua 5.0 compatibility defines.</li> | ||
| 82 | <li>Set arg table before evaluating <tt>LUA_INIT</tt> and <tt>-e</tt> chunks.</li> | ||
| 83 | <li>Fix FOLD rules for <tt>math.abs()</tt> and FP negation.</li> | ||
| 84 | <li>Fix soft-float <tt>math.abs()</tt> and negation.</li> | ||
| 85 | <li>Fix formatting of some small denormals at low precision.</li> | ||
| 86 | <li>LJ_GC64: Add JIT compiler support.</li> | ||
| 87 | <li>x64/LJ_GC64: Add JIT compiler backend.</li> | ||
| 88 | <li>x86/x64: Generate BMI2 shifts and rotates, if available.</li> | ||
| 89 | <li>Windows/x86: Add full exception interoperability.</li> | ||
| 90 | <li>ARM64: Add big-endian support.</li> | ||
| 91 | <li>ARM64: Add JIT compiler backend.</li> | ||
| 92 | <li>MIPS: Fix <tt>TSETR</tt> barrier.</li> | ||
| 93 | <li>MIPS: Support MIPS16 interlinking.</li> | ||
| 94 | <li>MIPS soft-float: Fix code generation for <tt>HREF</tt>.</li> | ||
| 95 | <li>MIPS64: Add MIPS64 hard-float JIT compiler backend.</li> | ||
| 96 | <li>MIPS64: Add MIPS64 hard-float/soft-float support to interpreter.</li> | ||
| 97 | <li>FFI: Compile bitfield loads/stores.</li> | ||
| 98 | <li>Various fixes common with the 2.0 branch.</li> | ||
| 99 | </ul> | ||
| 100 | |||
| 101 | <h2 id="LuaJIT-2.1.0-beta2">LuaJIT 2.1.0-beta2 — 2016-03-03</h2> | ||
| 102 | <ul> | ||
| 103 | <li>Enable trace stitching.</li> | ||
| 104 | <li>Use internal implementation for converting FP numbers to strings.</li> | ||
| 105 | <li>Parse Unicode escape <tt>'\u{XX...}'</tt> in string literals.</li> | ||
| 106 | <li>Add MIPS soft-float support.</li> | ||
| 107 | <li>Switch MIPS port to dual-number mode.</li> | ||
| 108 | <li>x86/x64: Add support for AES-NI, AVX and AVX2 to DynASM.</li> | ||
| 109 | <li>FFI: Add <tt>ssize_t</tt> declaration.</li> | ||
| 110 | <li>FFI: Parse <tt>#line NN</tt> and <tt>#NN</tt>.</li> | ||
| 111 | <li>Various minor fixes.</li> | ||
| 112 | </ul> | ||
| 113 | |||
| 114 | <h2 id="LuaJIT-2.1.0-beta1">LuaJIT 2.1.0-beta1 — 2015-08-25</h2> | ||
| 115 | <p> | ||
| 116 | This is a brief summary of the major changes in LuaJIT 2.1 compared to 2.0. | ||
| 117 | Please take a look at the commit history for more details. | ||
| 118 | </p> | ||
| 119 | <ul> | ||
| 120 | <li>Changes to the VM core: | ||
| 121 | <ul> | ||
| 122 | <li>Add low-overhead profiler (<tt>-jp</tt>).</li> | ||
| 123 | <li>Add <tt>LJ_GC64</tt> mode: 64 bit GC object references (really: 47 bit). Interpreter-only for now.</li> | ||
| 124 | <li>Add <tt>LJ_FR2</tt> mode: Two-slot frame info. Required by <tt>LJ_GC64</tt> mode.</li> | ||
| 125 | <li>Add <tt>table.new()</tt> and <tt>table.clear()</tt>.</li> | ||
| 126 | <li>Parse binary number literals (<tt>0bxxx</tt>).</li> | ||
| 127 | </ul></li> | ||
| 128 | <li>Improvements to the JIT compiler: | ||
| 129 | <ul> | ||
| 130 | <li>Add trace stitching (disabled for now).</li> | ||
| 131 | <li>Compile various builtins: <tt>string.char()</tt>, <tt>string.reverse()</tt>, <tt>string.lower()</tt>, <tt>string.upper()</tt>, <tt>string.rep()</tt>, <tt>string.format()</tt>, <tt>table.concat()</tt>, <tt>bit.tohex()</tt>, <tt>getfenv(0)</tt>, <tt>debug.getmetatable()</tt>.</li> | ||
| 132 | <li>Compile <tt>string.find()</tt> for fixed string searches (no patterns).</li> | ||
| 133 | <li>Compile <tt>BC_TSETM</tt>, e.g. <tt>{1,2,3,f()}</tt>.</li> | ||
| 134 | <li>Compile string concatenations (<tt>BC_CAT</tt>).</li> | ||
| 135 | <li>Compile <tt>__concat</tt> metamethod.</li> | ||
| 136 | <li>Various minor optimizations.</li> | ||
| 137 | </ul></li> | ||
| 138 | <li>Internal Changes: | ||
| 139 | <ul> | ||
| 140 | <li>Add support for embedding LuaJIT bytecode for builtins.</li> | ||
| 141 | <li>Replace various builtins with embedded bytecode.</li> | ||
| 142 | <li>Refactor string buffers and string formatting.</li> | ||
| 143 | <li>Remove obsolete non-truncating number to integer conversions.</li> | ||
| 144 | </ul></li> | ||
| 145 | <li>Ports: | ||
| 146 | <ul> | ||
| 147 | <li>Add Xbox One port (<tt>LJ_GC64</tt> mode).</li> | ||
| 148 | <li>ARM64: Add port of the interpreter (<tt>LJ_GC64</tt> mode).</li> | ||
| 149 | <li>x64: Add separate port of the interpreter to <tt>LJ_GC64</tt> mode.</li> | ||
| 150 | <li>x86/x64: Drop internal x87 math functions. Use libm functions.</li> | ||
| 151 | <li>x86: Remove x87 support from interpreter. SSE2 is mandatory now.</li> | ||
| 152 | <li>PPC/e500: Drop support for this architecture.</li> | ||
| 153 | </ul></li> | ||
| 154 | <li>FFI library: | ||
| 155 | <ul> | ||
| 156 | <li>FFI: Add 64 bit bitwise operations.</li> | ||
| 157 | <li>FFI: Compile VLA/VLS and large cdata allocations with default initialization.</li> | ||
| 158 | <li>FFI: Compile conversions from functions to function pointers.</li> | ||
| 159 | <li>FFI: Compile lightuserdata to <tt>void *</tt> conversion.</li> | ||
| 160 | <li>FFI: Compile <tt>ffi.gc(cdata, nil)</tt>, too.</li> | ||
| 161 | <li>FFI: Add <tt>ffi.typeinfo()</tt>.</li> | ||
| 162 | </ul></li> | ||
| 163 | </ul> | ||
| 164 | </div> | ||
| 165 | |||
| 166 | <div class="major" style="background: #ffffd0;"> | ||
| 75 | <h2 id="LuaJIT-2.0.5">LuaJIT 2.0.5 — 2017-05-01</h2> | 167 | <h2 id="LuaJIT-2.0.5">LuaJIT 2.0.5 — 2017-05-01</h2> |
| 76 | <ul> | 168 | <ul> |
| 77 | <li>Add workaround for MSVC 2015 stdio changes.</li> | 169 | <li>Add workaround for MSVC 2015 stdio changes.</li> |
| @@ -81,7 +173,7 @@ to see whether newer versions are available. | |||
| 81 | <li>Remove internal <tt>__mode = "K"</tt> and replace with safe check.</li> | 173 | <li>Remove internal <tt>__mode = "K"</tt> and replace with safe check.</li> |
| 82 | <li>Add "proto" field to <tt>jit.util.funcinfo()</tt>.</li> | 174 | <li>Add "proto" field to <tt>jit.util.funcinfo()</tt>.</li> |
| 83 | <li>Fix GC step size calculation.</li> | 175 | <li>Fix GC step size calculation.</li> |
| 84 | <li>Initialize <tt>uv->immutable</tt> for upvalues of loaded chunks.</li> | 176 | <li>Initialize <tt>uv->immutable</tt> for upvalues of loaded chunks.</li> |
| 85 | <li>Fix for cdata vs. non-cdata arithmetics/comparisons.</li> | 177 | <li>Fix for cdata vs. non-cdata arithmetics/comparisons.</li> |
| 86 | <li>Drop leftover regs in 'for' iterator assignment, too.</li> | 178 | <li>Drop leftover regs in 'for' iterator assignment, too.</li> |
| 87 | <li>Fix PHI remarking in SINK pass.</li> | 179 | <li>Fix PHI remarking in SINK pass.</li> |
| @@ -777,235 +869,6 @@ This matches the behavior of Lua 5.1, but not the specification.</li> | |||
| 777 | no point in listing differences over earlier versions.</li> | 869 | no point in listing differences over earlier versions.</li> |
| 778 | </ul> | 870 | </ul> |
| 779 | </div> | 871 | </div> |
| 780 | |||
| 781 | <div class="major" style="background: #ffff80;"> | ||
| 782 | <h2 id="LuaJIT-1.1.8">LuaJIT 1.1.8 — 2012-04-16</h2> | ||
| 783 | <ul> | ||
| 784 | <li>Merged with Lua 5.1.5. Also integrated fixes for all | ||
| 785 | <a href="http://www.lua.org/bugs.html#5.1.5"><span class="ext">»</span> <span class="ext">»</span> currently known bugs in Lua 5.1.5</a>.</li> | ||
| 786 | </ul> | ||
| 787 | |||
| 788 | <h2 id="LuaJIT-1.1.7">LuaJIT 1.1.7 — 2011-05-05</h2> | ||
| 789 | <ul> | ||
| 790 | <li>Added fixes for the | ||
| 791 | <a href="http://www.lua.org/bugs.html#5.1.4"><span class="ext">»</span> currently known bugs in Lua 5.1.4</a>.</li> | ||
| 792 | </ul> | ||
| 793 | |||
| 794 | <h2 id="LuaJIT-1.1.6">LuaJIT 1.1.6 — 2010-03-28</h2> | ||
| 795 | <ul> | ||
| 796 | <li>Added fixes for the | ||
| 797 | <a href="http://www.lua.org/bugs.html#5.1.4"><span class="ext">»</span> currently known bugs in Lua 5.1.4</a>.</li> | ||
| 798 | <li>Removed wrong GC check in <tt>jit_createstate()</tt>. | ||
| 799 | Thanks to Tim Mensch.</li> | ||
| 800 | <li>Fixed bad assertions while compiling <tt>table.insert()</tt> and | ||
| 801 | <tt>table.remove()</tt>.</li> | ||
| 802 | </ul> | ||
| 803 | |||
| 804 | <h2 id="LuaJIT-1.1.5">LuaJIT 1.1.5 — 2008-10-25</h2> | ||
| 805 | <ul> | ||
| 806 | <li>Merged with Lua 5.1.4. Fixes all | ||
| 807 | <a href="http://www.lua.org/bugs.html#5.1.3"><span class="ext">»</span> known bugs in Lua 5.1.3</a>.</li> | ||
| 808 | </ul> | ||
| 809 | |||
| 810 | <h2 id="LuaJIT-1.1.4">LuaJIT 1.1.4 — 2008-02-05</h2> | ||
| 811 | <ul> | ||
| 812 | <li>Merged with Lua 5.1.3. Fixes all | ||
| 813 | <a href="http://www.lua.org/bugs.html#5.1.2"><span class="ext">»</span> known bugs in Lua 5.1.2</a>.</li> | ||
| 814 | <li>Fixed possible (but unlikely) stack corruption while compiling | ||
| 815 | <tt>k^x</tt> expressions.</li> | ||
| 816 | <li>Fixed DynASM template for cmpss instruction.</li> | ||
| 817 | </ul> | ||
| 818 | |||
| 819 | <h2 id="LuaJIT-1.1.3">LuaJIT 1.1.3 — 2007-05-24</h2> | ||
| 820 | <ul> | ||
| 821 | <li>Merged with Lua 5.1.2. Fixes all | ||
| 822 | <a href="http://www.lua.org/bugs.html#5.1.1"><span class="ext">»</span> known bugs in Lua 5.1.1</a>.</li> | ||
| 823 | <li>Merged pending Lua 5.1.x fixes: "return -nil" bug, spurious count hook call.</li> | ||
| 824 | <li>Remove a (sometimes) wrong assertion in <tt>luaJIT_findpc()</tt>.</li> | ||
| 825 | <li>DynASM now allows labels for displacements and <tt>.aword</tt>.</li> | ||
| 826 | <li>Fix some compiler warnings for DynASM glue (internal API change).</li> | ||
| 827 | <li>Correct naming for SSSE3 (temporarily known as SSE4) in DynASM and x86 disassembler.</li> | ||
| 828 | <li>The loadable debug modules now handle redirection to stdout | ||
| 829 | (e.g. <tt>-j trace=-</tt>).</li> | ||
| 830 | </ul> | ||
| 831 | |||
| 832 | <h2 id="LuaJIT-1.1.2">LuaJIT 1.1.2 — 2006-06-24</h2> | ||
| 833 | <ul> | ||
| 834 | <li>Fix MSVC inline assembly: use only local variables with | ||
| 835 | <tt>lua_number2int()</tt>.</li> | ||
| 836 | <li>Fix "attempt to call a thread value" bug on Mac OS X: | ||
| 837 | make values of consts used as lightuserdata keys unique | ||
| 838 | to avoid joining by the compiler/linker.</li> | ||
| 839 | </ul> | ||
| 840 | |||
| 841 | <h2 id="LuaJIT-1.1.1">LuaJIT 1.1.1 — 2006-06-20</h2> | ||
| 842 | <ul> | ||
| 843 | <li>Merged with Lua 5.1.1. Fixes all | ||
| 844 | <a href="http://www.lua.org/bugs.html#5.1"><span class="ext">»</span> known bugs in Lua 5.1</a>.</li> | ||
| 845 | <li>Enforce (dynamic) linker error for EXE/DLL version mismatches.</li> | ||
| 846 | <li>Minor changes to DynASM: faster pre-processing, smaller encoding | ||
| 847 | for some immediates.</li> | ||
| 848 | </ul> | ||
| 849 | <p> | ||
| 850 | This release is in sync with Coco 1.1.1 (see the | ||
| 851 | <a href="http://coco.luajit.org/changes.html"><span class="ext">»</span> Coco Change History</a>). | ||
| 852 | </p> | ||
| 853 | |||
| 854 | <h2 id="LuaJIT-1.1.0">LuaJIT 1.1.0 — 2006-03-13</h2> | ||
| 855 | <ul> | ||
| 856 | <li>Merged with Lua 5.1 (final).</li> | ||
| 857 | |||
| 858 | <li>New JIT call frame setup: | ||
| 859 | <ul> | ||
| 860 | <li>The C stack is kept 16 byte aligned (faster). | ||
| 861 | Mandatory for Mac OS X on Intel, too.</li> | ||
| 862 | <li>Faster calling conventions for internal C helper functions.</li> | ||
| 863 | <li>Better instruction scheduling for function prologue, OP_CALL and | ||
| 864 | OP_RETURN.</li> | ||
| 865 | </ul></li> | ||
| 866 | |||
| 867 | <li>Miscellaneous optimizations: | ||
| 868 | <ul> | ||
| 869 | <li>Faster loads of FP constants. Remove narrow-to-wide store-to-load | ||
| 870 | forwarding stalls.</li> | ||
| 871 | <li>Use (scalar) SSE2 ops (if the CPU supports it) to speed up slot moves | ||
| 872 | and FP to integer conversions.</li> | ||
| 873 | <li>Optimized the two-argument form of <tt>OP_CONCAT</tt> (<tt>a..b</tt>).</li> | ||
| 874 | <li>Inlined <tt>OP_MOD</tt> (<tt>a%b</tt>). | ||
| 875 | With better accuracy than the C variant, too.</li> | ||
| 876 | <li>Inlined <tt>OP_POW</tt> (<tt>a^b</tt>). Unroll <tt>x^k</tt> or | ||
| 877 | use <tt>k^x = 2^(log2(k)*x)</tt> or call <tt>pow()</tt>.</li> | ||
| 878 | </ul></li> | ||
| 879 | |||
| 880 | <li>Changes in the optimizer: | ||
| 881 | <ul> | ||
| 882 | <li>Improved hinting for table keys derived from table values | ||
| 883 | (<tt>t1[t2[x]]</tt>).</li> | ||
| 884 | <li>Lookup hinting now works with arbitrary object types and | ||
| 885 | supports index chains, too.</li> | ||
| 886 | <li>Generate type hints for arithmetic and comparison operators, | ||
| 887 | OP_LEN, OP_CONCAT and OP_FORPREP.</li> | ||
| 888 | <li>Remove several hint definitions in favour of a generic COMBINE hint.</li> | ||
| 889 | <li>Complete rewrite of <tt>jit.opt_inline</tt> module | ||
| 890 | (ex <tt>jit.opt_lib</tt>).</li> | ||
| 891 | </ul></li> | ||
| 892 | |||
| 893 | <li>Use adaptive deoptimization: | ||
| 894 | <ul> | ||
| 895 | <li>If runtime verification of a contract fails, the affected | ||
| 896 | instruction is recompiled and patched on-the-fly. | ||
| 897 | Regular programs will trigger deoptimization only occasionally.</li> | ||
| 898 | <li>This avoids generating code for uncommon fallback cases | ||
| 899 | most of the time. Generated code is up to 30% smaller compared to | ||
| 900 | LuaJIT 1.0.3.</li> | ||
| 901 | <li>Deoptimization is used for many opcodes and contracts: | ||
| 902 | <ul> | ||
| 903 | <li>OP_CALL, OP_TAILCALL: type mismatch for callable.</li> | ||
| 904 | <li>Inlined calls: closure mismatch, parameter number and type mismatches.</li> | ||
| 905 | <li>OP_GETTABLE, OP_SETTABLE: table or key type and range mismatches.</li> | ||
| 906 | <li>All arithmetic and comparison operators, OP_LEN, OP_CONCAT, | ||
| 907 | OP_FORPREP: operand type and range mismatches.</li> | ||
| 908 | </ul></li> | ||
| 909 | <li>Complete redesign of the debug and traceback info | ||
| 910 | (bytecode ↔ mcode) to support deoptimization. | ||
| 911 | Much more flexible and needs only 50% of the space.</li> | ||
| 912 | <li>The modules <tt>jit.trace</tt>, <tt>jit.dumphints</tt> and | ||
| 913 | <tt>jit.dump</tt> handle deoptimization.</li> | ||
| 914 | </ul></li> | ||
| 915 | |||
| 916 | <li>Inlined many popular library functions | ||
| 917 | (for commonly used arguments only): | ||
| 918 | <ul> | ||
| 919 | <li>Most <tt>math.*</tt> functions (the 18 most used ones) | ||
| 920 | [2x-10x faster].</li> | ||
| 921 | <li><tt>string.len</tt>, <tt>string.sub</tt> and <tt>string.char</tt> | ||
| 922 | [2x-10x faster].</li> | ||
| 923 | <li><tt>table.insert</tt>, <tt>table.remove</tt> and <tt>table.getn</tt> | ||
| 924 | [3x-5x faster].</li> | ||
| 925 | <li><tt>coroutine.yield</tt> and <tt>coroutine.resume</tt> | ||
| 926 | [3x-5x faster].</li> | ||
| 927 | <li><tt>pairs</tt>, <tt>ipairs</tt> and the corresponding iterators | ||
| 928 | [8x-15x faster].</li> | ||
| 929 | </ul></li> | ||
| 930 | |||
| 931 | <li>Changes in the core and loadable modules and the stand-alone executable: | ||
| 932 | <ul> | ||
| 933 | <li>Added <tt>jit.version</tt>, <tt>jit.version_num</tt> | ||
| 934 | and <tt>jit.arch</tt>.</li> | ||
| 935 | <li>Reorganized some internal API functions (<tt>jit.util.*mcode*</tt>).</li> | ||
| 936 | <li>The <tt>-j dump</tt> output now shows JSUB names, too.</li> | ||
| 937 | <li>New x86 disassembler module written in pure Lua. No dependency | ||
| 938 | on ndisasm anymore. Flexible API, very compact (500 lines) | ||
| 939 | and complete (x87, MMX, SSE, SSE2, SSE3, SSSE3, privileged instructions).</li> | ||
| 940 | <li><tt>luajit -v</tt> prints the LuaJIT version and copyright | ||
| 941 | on a separate line.</li> | ||
| 942 | </ul></li> | ||
| 943 | |||
| 944 | <li>Added SSE, SSE2, SSE3 and SSSE3 support to DynASM.</li> | ||
| 945 | <li>Miscellaneous doc changes. Added a section about | ||
| 946 | <a href="install.html#embedding">embedding LuaJIT</a>.</li> | ||
| 947 | </ul> | ||
| 948 | <p> | ||
| 949 | This release is in sync with Coco 1.1.0 (see the | ||
| 950 | <a href="http://coco.luajit.org/changes.html"><span class="ext">»</span> Coco Change History</a>). | ||
| 951 | </p> | ||
| 952 | </div> | ||
| 953 | |||
| 954 | <div class="major" style="background: #ffffd0;"> | ||
| 955 | <h2 id="LuaJIT-1.0.3">LuaJIT 1.0.3 — 2005-09-08</h2> | ||
| 956 | <ul> | ||
| 957 | <li>Even more docs.</li> | ||
| 958 | <li>Unified closure checks in <tt>jit.*</tt>.</li> | ||
| 959 | <li>Fixed some range checks in <tt>jit.util.*</tt>.</li> | ||
| 960 | <li>Fixed __newindex call originating from <tt>jit_settable_str()</tt>.</li> | ||
| 961 | <li>Merged with Lua 5.1 alpha (including early bug fixes).</li> | ||
| 962 | </ul> | ||
| 963 | <p> | ||
| 964 | This is the first public release of LuaJIT. | ||
| 965 | </p> | ||
| 966 | |||
| 967 | <h2 id="LuaJIT-1.0.2">LuaJIT 1.0.2 — 2005-09-02</h2> | ||
| 968 | <ul> | ||
| 969 | <li>Add support for flushing the Valgrind translation cache <br> | ||
| 970 | (<tt>MYCFLAGS= -DUSE_VALGRIND</tt>).</li> | ||
| 971 | <li>Add support for freeing executable mcode memory to the <tt>mmap()</tt>-based | ||
| 972 | variant for POSIX systems.</li> | ||
| 973 | <li>Reorganized the C function signature handling in | ||
| 974 | <tt>jit.opt_lib</tt>.</li> | ||
| 975 | <li>Changed to index-based hints for inlining C functions. | ||
| 976 | Still no support in the backend for inlining.</li> | ||
| 977 | <li>Hardcode <tt>HEAP_CREATE_ENABLE_EXECUTE</tt> value if undefined.</li> | ||
| 978 | <li>Misc. changes to the <tt>jit.*</tt> modules.</li> | ||
| 979 | <li>Misc. changes to the Makefiles.</li> | ||
| 980 | <li>Lots of new docs.</li> | ||
| 981 | <li>Complete doc reorg.</li> | ||
| 982 | </ul> | ||
| 983 | <p> | ||
| 984 | Not released because Lua 5.1 alpha came out today. | ||
| 985 | </p> | ||
| 986 | |||
| 987 | <h2 id="LuaJIT-1.0.1">LuaJIT 1.0.1 — 2005-08-31</h2> | ||
| 988 | <ul> | ||
| 989 | <li>Missing GC step in <tt>OP_CONCAT</tt>.</li> | ||
| 990 | <li>Fix result handling for C –> JIT calls.</li> | ||
| 991 | <li>Detect CPU feature bits.</li> | ||
| 992 | <li>Encode conditional moves (<tt>fucomip</tt>) only when supported.</li> | ||
| 993 | <li>Add fallback instructions for FP compares.</li> | ||
| 994 | <li>Add support for <tt>LUA_COMPAT_VARARG</tt>. Still disabled by default.</li> | ||
| 995 | <li>MSVC needs a specific place for the <tt>CALLBACK</tt> attribute | ||
| 996 | (David Burgess).</li> | ||
| 997 | <li>Misc. doc updates.</li> | ||
| 998 | </ul> | ||
| 999 | <p> | ||
| 1000 | Interim non-public release. | ||
| 1001 | Special thanks to Adam D. Moss for reporting most of the bugs. | ||
| 1002 | </p> | ||
| 1003 | |||
| 1004 | <h2 id="LuaJIT-1.0.0">LuaJIT 1.0.0 — 2005-08-29</h2> | ||
| 1005 | <p> | ||
| 1006 | This is the initial non-public release of LuaJIT. | ||
| 1007 | </p> | ||
| 1008 | </div> | ||
| 1009 | <br class="flush"> | 872 | <br class="flush"> |
| 1010 | </div> | 873 | </div> |
| 1011 | <div id="foot"> | 874 | <div id="foot"> |
