diff options
-rw-r--r-- | doc/changes.html | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/doc/changes.html b/doc/changes.html index 50706a11..20c2fc59 100644 --- a/doc/changes.html +++ b/doc/changes.html | |||
@@ -73,6 +73,106 @@ to see whether newer versions are available. | |||
73 | </p> | 73 | </p> |
74 | 74 | ||
75 | <div class="major" style="background: #ffd0d0;"> | 75 | <div class="major" style="background: #ffd0d0;"> |
76 | <h2 id="LuaJIT-2.0.0-beta11">LuaJIT 2.0.0-beta11 — 2012-10-16</h2> | ||
77 | <ul> | ||
78 | <li>New features: | ||
79 | <ul> | ||
80 | <li>Use ARM VFP instructions, if available (build-time detection).</li> | ||
81 | <li>Add support for ARM hard-float EABI (<tt>armhf</tt>).</li> | ||
82 | <li>Add PS3 port.</li> | ||
83 | <li>Add many features from Lua 5.2, e.g. <tt>goto</tt>/labels. | ||
84 | Refer to <a href="extensions.html#lua52">this list</a>.</li> | ||
85 | <li>FFI: Add parameterized C types.</li> | ||
86 | <li>FFI: Add support for copy constructors.</li> | ||
87 | <li>FFI: Equality comparisons never raise an error (treat as unequal instead).</li> | ||
88 | <li>FFI: Box all accessed or returned enums.</li> | ||
89 | <li>FFI: Check for <tt>__new</tt> metamethod when calling a constructor.</li> | ||
90 | <li>FFI: Handle <tt>__pairs</tt>/<tt>__ipairs</tt> metamethods for cdata objects.</li> | ||
91 | <li>FFI: Convert <tt>io.*</tt> file handle to <tt>FILE *</tt> pointer (but as a <tt>void *</tt>).</li> | ||
92 | <li>FFI: Detect and support type punning through unions.</li> | ||
93 | <li>FFI: Improve various error messages.</li> | ||
94 | </ul></li> | ||
95 | <li>Build-system reorganization: | ||
96 | <ul> | ||
97 | <li>Reorganize directory layout:<br> | ||
98 | <tt>lib/*</tt> → <tt>src/jit/*</tt><br> | ||
99 | <tt>src/buildvm_*.dasc</tt> → <tt>src/vm_*.dasc</tt><br> | ||
100 | <tt>src/buildvm_*.h</tt> → removed<br> | ||
101 | <tt>src/buildvm*</tt> → <tt>src/host/*</tt></li> | ||
102 | <li>Add minified Lua interpreter plus Lua BitOp (<tt>minilua</tt>) to run DynASM.</li> | ||
103 | <li>Change DynASM bit operations to use Lua BitOp</li> | ||
104 | <li>Translate only <tt>vm_*.dasc</tt> for detected target architecture.</li> | ||
105 | <li>Improve target detection for <tt>msvcbuild.bat</tt>.</li> | ||
106 | <li>Fix build issues on Cygwin and MinGW with optional MSys.</li> | ||
107 | <li>Handle cross-compiles with FPU/no-FPU or hard-fp/soft-fp ABI mismatch.</li> | ||
108 | <li>Remove some library functions for no-JIT/no-FFI builds.</li> | ||
109 | <li>Add uninstall target to top-level Makefile.</li> | ||
110 | </ul></li> | ||
111 | <li>Correctness and completeness: | ||
112 | <ul> | ||
113 | <li>Preserve snapshot #0 PC for all traces.</li> | ||
114 | <li>Fix argument checks for <tt>coroutine.create()</tt>.</li> | ||
115 | <li>Command line prints version and JIT status to <tt>stdout</tt>, not <tt>stderr</tt>.</li> | ||
116 | <li>Fix userdata <tt>__gc</tt> separations at Lua state close.</li> | ||
117 | <li>Fix <tt>TDUP</tt> to <tt>HLOAD</tt> forwarding for <tt>LJ_DUALNUM</tt> builds.</li> | ||
118 | <li>Fix buffer check in bytecode writer.</li> | ||
119 | <li>Make <tt>os.date()</tt> thread-safe.</li> | ||
120 | <li>Add missing declarations for MSVC intrinsics.</li> | ||
121 | <li>Fix dispatch table modifications for return hooks.</li> | ||
122 | <li>Workaround for MSVC conversion bug (<tt>double</tt> → <tt>uint32_t</tt> → <tt>int32_t</tt>).</li> | ||
123 | <li>Fix FOLD rule <tt>(i-j)-i => 0-j</tt>.</li> | ||
124 | <li>Never use DWARF unwinder on Windows.</li> | ||
125 | <li>Fix shrinking of direct mapped blocks in builtin allocator.</li> | ||
126 | <li>Limit recursion depth in <tt>string.match()</tt> et al.</li> | ||
127 | <li>Fix late despecialization of <tt>ITERN</tt> after loop has been entered.</li> | ||
128 | <li>Fix <tt>'f'</tt> and <tt>'L'</tt> options for <tt>debug.getinfo()</tt> and <tt>lua_getinfo()</tt>.</li> | ||
129 | <li>Fix <tt>package.searchpath()</tt>.</li> | ||
130 | <li>OSX: Change dylib names to be consistent with other platforms.</li> | ||
131 | <li>Android: Workaround for broken <tt>sprintf("%g", -0.0)</tt>.</li> | ||
132 | <li>x86: Remove support for ancient CPUs without <tt>CMOV</tt> (before Pentium Pro).</li> | ||
133 | <li>x86: Fix register allocation for calls returning register pair.</li> | ||
134 | <li>x86/x64: Fix fusion of unsigned byte comparisons with swapped operands.</li> | ||
135 | <li>ARM: Fix <tt>tonumber()</tt> argument check.</li> | ||
136 | <li>ARM: Fix modulo operator and <tt>math.floor()</tt>/<tt>math.ceil()</tt> for <tt>inf</tt>/<tt>nan</tt>.</li> | ||
137 | <li>ARM: Invoke SPLIT pass for leftover <tt>IR_TOBIT</tt>.</li> | ||
138 | <li>ARM: Fix BASE register coalescing.</li> | ||
139 | <li>PPC: Fix interpreter state setup in callbacks.</li> | ||
140 | <li>PPC: Fix <tt>string.sub()</tt> range check.</li> | ||
141 | <li>MIPS: Support generation of MIPS/MIPSEL bytecode object files.</li> | ||
142 | <li>MIPS: Fix calls to <tt>floor()</tt>/<tt>ceil()</tt><tt>/trunc()</tt>.</li> | ||
143 | <li>ARM/PPC: Detect more target architecture variants.</li> | ||
144 | <li>ARM/PPC/e500/MIPS: Fix tailcalls from fast functions, esp. <tt>tostring()</tt>.</li> | ||
145 | <li>ARM/PPC/MIPS: Fix rematerialization of FP constants.</li> | ||
146 | <li>FFI: Don't call <tt>FreeLibrary()</tt> on our own EXE/DLL.</li> | ||
147 | <li>FFI: Resolve metamethods for constructors, too.</li> | ||
148 | <li>FFI: Properly disable callbacks on iOS (would require executable memory).</li> | ||
149 | <li>FFI: Fix cdecl string parsing during recording.</li> | ||
150 | <li>FFI: Show address pointed to for <tt>tostring(ref)</tt>, too.</li> | ||
151 | <li>FFI: Fix alignment of C call argument/return structure.</li> | ||
152 | <li>FFI: Initialize all fields of standard types.</li> | ||
153 | <li>FFI: Fix callback handling when new C types are declared in callback.</li> | ||
154 | <li>FFI: Fix recording of constructors for pointers.</li> | ||
155 | <li>FFI: Always resolve metamethods for pointers to structs.</li> | ||
156 | <li>FFI: Correctly propagate alignment when interning nested types.</li> | ||
157 | </ul></li> | ||
158 | <li>Structural and performance enhancements: | ||
159 | <ul> | ||
160 | <li>Add allocation sinking and store sinking optimization.</li> | ||
161 | <li>Constify immutable upvalues.</li> | ||
162 | <li>Add builtin string to integer or FP number conversion. Improves cross-platform consistency and correctness.</li> | ||
163 | <li>Create string hash slots in template tables for non-const values, too. Avoids later table resizes.</li> | ||
164 | <li>Eliminate <tt>HREFK</tt> guard for template table references.</li> | ||
165 | <li>Add various new FOLD rules.</li> | ||
166 | <li>Don't use stack unwinding for <tt>lua_yield()</tt> (slow on x64).</li> | ||
167 | <li>ARM, PPC, MIPS: Improve <tt>XLOAD</tt> operand fusion and register hinting.</li> | ||
168 | <li>PPC, MIPS: Compile <tt>math.sqrt()</tt> to sqrt instruction, if available.</li> | ||
169 | <li>FFI: Fold <tt>KPTR</tt> + constant offset in SPLIT pass.</li> | ||
170 | <li>FFI: Optimize/inline <tt>ffi.copy()</tt> and <tt>ffi.fill()</tt>.</li> | ||
171 | <li>FFI: Compile and optimize array/struct copies.</li> | ||
172 | <li>FFI: Compile <tt>ffi.typeof(cdata|ctype)</tt>, <tt>ffi.sizeof()</tt>, <tt>ffi.alignof()</tt>, <tt>ffi.offsetof()</tt> and <tt>ffi.gc()</tt>.</li> | ||
173 | </ul></li> | ||
174 | </ul> | ||
175 | |||
76 | <h2 id="LuaJIT-2.0.0-beta10">LuaJIT 2.0.0-beta10 — 2012-05-09</h2> | 176 | <h2 id="LuaJIT-2.0.0-beta10">LuaJIT 2.0.0-beta10 — 2012-05-09</h2> |
77 | <ul> | 177 | <ul> |
78 | <li>New features: | 178 | <li>New features: |