Add missing removeKey for flakey option
[hiphop-php.git] / hphp / NEWS
blob4223eb5d1dd18a22b390e9bcd7a6cf16bc4fe860
1 NEXT
2  - All numeric comparisons involving NAN, except != and !==, are now false.
4 "Mos Def" 11-Jun-2014
5  - Turn on new tracelet region selector by default; analyze() is deprecated
6  - Fix a bug in debugBacktrace with NativeImpl methods
7  - Request local allocator now uses logarithmically spaced size classes
8  - Improvements to JIT'd FCallBuiltin to cause fewer spills
9  - Enable vtable-style dispatch on methods marked "abstract"
10  - JIT several instructions that were being punted:  Unbox, File, Dir
11  - Increase "hinted drop" time on write lease, improving JIT'd code layout
12  - Implemented __toString functions in reflection classes
13  - Several tc-print bug fixes
14  - Some improvements in hhbbc arithmetic type inference
15  - More service requests are "ephemeral", reducing wasted stubs space
16  - HH\Vector now has a packed array internally, for O(1) conversions to array
17  - current() and key() now support expressions that can't be taken by reference
18  - Fix a long-standing but very rare race condition with Closure class names
19  - gcc 4.8 is the new minimum to build
20  - Various bug/compat fixes in Soap, SimpleXML, ArrayObject, DOMNode, mysqli
21  - Add a scheme to extend support for efficient packed arrays w/ cap up to 2^32
22  - Move vmfp, vmsp, and vmpc into RDS
23  - Fix some hard-to-hit bugs in inlining relating to stack overflow checks
24  - Faster int to double conversion when calling builtins from the JIT
25  - Fix ReflectionParameter::getClass for scalar typehints
26  - better tuning of the PGO 'hot function' threshold
27  - performance improvements to calling native class methods
28  - improve performance of async functions that exit via exception
29  - several bug fixes in refcount optimization pass relating to async functions
30  - More hhir-related docs in the hackers-guide
31  - Initial support for relocating generated machine code
32  - JIT optimizations for count()
33  - Corrected the result of var_dump and print_r for ArrayObject
34  - fix HH\autoload_set_paths with nested maps
35  - make ReflectionClass serializable
36  - ext/standard/output HNI conversion
37  - allow usage of zend-qsort in user sorts with a runtime option
39 "LL Cool J" 28-May-2014
40  - Over 200 other bug fixes (go lockdown!)
41  - Every HDF setting is now available as INI
42  - Cut session_id() size by 1/2
43  - Added 'Z' format string for pack/unpack
44  - We now build on clang
45  - Fix pcre cache to not fatal when full
46  - Implement $php_errormsg
47  - Adding -n CLI option to hhvm php mode
48  - Fix substitution of invalid UTF8 sequences in htmlspecialchars
49  - FastCGI: Use SCRIPT_FILENAME as the PHP script to run
50  - Can create DateTimeZone's from abbreviations
51  - Put all fastcgi params into $_SERVER
52  - Many DOM classes are now serializable
53  - Define the xhp tokens
54  - Many reflection changes for perf and compatibility
55  - Default fastcgi to listen on 127.0.0.1
56  - remove register_cleanup_function
57  - Map: reserve()
58  - Set: retain(), reserve(), addAllKeysOf()
59  - {Set|ImmSet|Vector|ImmVector}::fromKeysOf()
61 "Kanye West"
62   - Backport fix for CVE-2011-2202
63   - Interfaces {Keyed}Container match arrays *and* collections, not iterables
64   - Added ** and **= operators to HHVM and more compatibility fixes with PHP5.6
65   - Fixes and improvements to collections
66   - Replace json decoder with json-c library
67   - Document VMRegAnchor and isVMFrame()
68   - Improvements to array iterator code
69   - Improvements to the type checker
70   - Allow parser to be generated with bison 3
71   - Improvements and speed up to reflection code
73 "Jay-Z" 9-May-2014
74   - Make handling of code.hot overflows more robust
75   - Catch server errors sooner
76   - Fix segfault and infinite recursion in fileinfo extension
77   - Resolve systemlib constants at compile time
78   - Resume resumables natively
79   - Import round() table optimizations from php-src
80   - Delete bytecode Peephole optimizer
81   - Remove most of annotation.cpp, and some other code gated on !UsedHHBBC
82   - Create phis for locals
83   - Fix free of "" in rfc1867PostHandler
84   - Add firstValue(), firstKey(), lastValue(), lastKey() to collections
85   - Add concat() to collections
86   - Clarify Hack license
87   - Add CakePHP3 to test runner
88   - Better error when TC is full
89   - Add hash_equals() from PHP 5.6
91 "Insane Poetry" 24-Apr-2014
92   - Support for PHP 5.6 variadic ...$args syntax for func declarations
93   - Open source HHMeasure, a simple and extensible microbenchmarking tool
94   - Added a new time-based sampling profiler (Project Xenon)
95   - Fix PCRE unicode handling
96   - Convert Zend compatibility layer and various extensions to HNI
97   - Encode execution mode (eager or resumed) into SrcKey
98   - Merge eager and resumed parts of async functions
99   - Rework various async / continuation bytecode instructions
101 "House of PHPain" 1-Apr-2014
102   - Allow direct arg passing with up to 15 params (7 if at least one is a double)
104 "Ghostface Killah" 17-Mar-2014
105   - Remove "HipHop" from error messages
106   - Add __IsFoldable user attribute for const-foldable functions
107   - Add __Native("NoFCallBuiltin") UA for builtins which need an actrec
108   - Add support for testing different outputs in repo mode
109   - Implement remaining functionality from intl extension
110   - Implement XSL extension
111   - Implement Stream Filters
112   - Improve php.ini support and get ready to kill HDF files
113   - Parse config files as ini files, unless filename contains '.hdf'
114   - Various fixes to Redis, JSON, SPL, DateTime, MySQLi, and others
115   - Remove C<T>Ref typedefs (use const T& now)
116   - JIT default on in command line mode
117   - gethostname() just returns what the syscall returns (Zend compat)
118   - HHBBC turned on in the build for facebook.com
120 "Fifty Cent" 3-Mar-2014
121   - Array parameter type constraints implicitly cast collections to arrays
122   - Fix issues with feof and fwrite
123   - Fix issues with sleep and inaccessible properties
124   - Dump a jemalloc pprod dump when a request hits OOM
125   - Make method_exists work with interface inheritance
126   - Fix crash in preg_replace with /e
127   - Support filename and content type in Curl uploads
128   - MySQLi fixes
129   - Handle relative paths in is_dir
130   - Add string conversion for array_fill_keys
131   - Implement various Imagick functionality
132   - Implement CUROPT_PROGRESSFUNCTION
133   - Implement PHP 5.6 __debugInfo() magic method
134   - Raise warnings when return type annotations mismatch
135   - Fix nested ArrayObject assignment
136   - Switch many ini settings to thread-time binding
137   - Clean up memory stat tracking
138   - Immutable collections are now prefixed with Imm instead of Fixed/Frozen
139   - Clean up type parameter for CheckType-related IR opcodes
140   - Remove legacy linear-scan register allocator and Eval.HHIRXls option
142 "Eminem" 18-Feb-2014
143   - reenabled jemalloc tcache flush for idle threads
144   - array_combine now performs __toString conversion on objects in $keys
145   - Allow streams in move_uploaded_file
146   - Fix a bug double closing a UserFile
147   - Warn when first arg to call_user_func is an object with no __invoke
148   - kill userland hdf functions
149   - Final method reports itself as final
150   - Implement IntlCalendar
151   - Disallow create_function in RepoAuthoritative mode
152   - Case-insensitive check for Accept-Encoding: gzip
154 "Donald Glover" 3-Feb-2014
155   - Support for "::class"
156   - Enable FCallBuiltin for HNI functions
157   - json_decode parity with PHP 5.4
158   - Fix race condition with profiling vs. non-profiling functions prologues
159   - Implement ini_get_all()
160   - Begin conversion of runtime options to INI
161   - Fix potential PGO-mode crash
162   - Fixes and enhancement in IR printing
163   - Vector and Set now supported by:
164     array_{shift,unshift,fill_keys,reverse,flip,size,chunk}, min, and max
165   - StableMap is now an alias for Map, which retains insertion order
166   - Map moved to HH namespace
167   - Fixes in XLS spilling of SIMD registers
168   - Support SCRIPT_FILENAME in FastCGI
169   - Implement stream_context_{get,set}_default
170   - Support for Intel VTune Amplifier XE
171   - Rewrite of SimpleXML
172   - Several HNI conversions, and a helper script
173   - Move Pair to HH namespace
174   - Fix get_included_files ordering
175   - Fix $_SERVER and $_ENV in FastCGI
176   - Update timelib to php 5.5.8
177   - Some dead code removal
179 "Coolio" 21-Jan-2014
180   - Turn on Region JIT
181   - FastCGI fixes, perf improvements
182   - ext_zend_compat fixes
183   - Turn on XLS Register Allocator by default
184   - Fix server stats reporting
185   - 'num' scalar typehint that accepts both ints and floats
186   - fix support for typedef'd namespaces
187   - don't swallow fatals when autoloading
188   - Map collections learned the in-place retain() and retainWithKey()
189   - rename Set::difference() to Set::removeAll()
190   - Update Set to retain element insertion order
191   - remove APC stats
192   - Fixes for ARM mode
193   - FrozenMap collection
194   - Deprecated Vector|Set|Map::put() method removed
195   - == between Frozen{Vector|Set|Map} and {Vector|Set|Map} now can return true
197 "Beastie Boys" 6-Jan-2014
198   - Support lex-time binary constants (eg. 0b10111)
199   - StreamWrappers now support rmdir, mkdir, rename and unlink
200   - Miscellaneous PHP5 compatibility fixes
201   - Default StatCache to off
202   - Miscellaneous FastCGI fixes
203   - Miscellaneous region compiler fixes
204   - Map and StableMap collections use the same underlying implementation
205   - Trait requirements enforced
206   - hhprof performance improvements
207   - Add array to string conversion notice
208   - Add RaiseNotice IR opcode
209   - Fix VirtualHost.<name>.Pattern matching
210   - Fix various memory leaks (pdo_parse_params, Gen*WaitHandle)
211   - Import a lot more Zend tests that used to crash or hang
212   - Clean up base.h
213   - XLS register allocation cleanup
214   - Enable region compiler by default for JIT functions in ahot
215   - Fatal on eval() in RepoAuthoritative mode
216   - Enable LTO for HHVM
217   - Fix a few SPL compatibility issues
219 "Appleseed" 23-Dec-2013
220   - Fix issues with DOCUMENT_ROOT in fastcgi
221   - Better type inference for collections and builtins in repo mode
222   - Shorter syntax for lambda expressions w/ automatic captures
223   - Parser support for trait require clauses
224   - Move FrozenVector and Set to the HH namespace
225   - Fix resource to array conversion
226   - Fix a request local memory leak in foreach of apc arrays
227   - Initial php_odbc API implementation
228   - Implement PHP's hash_copy() function
229   - Experimental tool: Memoization Opportunity Profiler
230   - Various small parity/behavior fixes (in phar, proc_open, filter_var)
231   - A Eval.DumpHhas=1 option to dump hhas for a php file
232   - Better warnings in Set::toArray
233   - Fix the behavior of foreach loops in finally blocks
234   - chmod -x runtime/vm/jit/*.{cpp,h}
235   - Changes to make hhvm build clean with clang-3.4
236   - Fix array_product to not be bug-compatible with PHP 5.2
237   - Change the Map datastructure---preserves order and does faster foreach
238   - FrozenSet collection
239   - Generate pid.map when we unmap text section, for the perf tool
240   - Implemented GlobIterator
241   - Implemented Reflection::export and Reflection::getModifierNames
243 "Tom Yum" 9-Dec-2013
244   - support date.timezone in ini files
245   - implement fileinfo
246   - special comparisons for DateTime
247   - delete unimplemented functions
248   - support for the finally clause in try blocks
250 "Huarache" 26-Nov-2013
251   - Linker re-ordering of hot functions
252   - Huge pages for hot functions
253   - Implement ZipArchive
254   - preg_replace /e support
255   - get_mem_usage() no longer can be negative
256   - Userland file system support
257   - Implement fileinfo extension
258   - wordwrap() fixes
259   - PDO::sqliteCreateFunction()
260   - Implement NumberFormatter
261   - Implement Locale
262   - Implement DatePeriod
263   - Many reflection fixes
264   - Stub out PharData
265   - A ton of performance fixes
266   - A ton of open source framework fixes
267   - FastCGI Server Support
269 "Garlic Alfredo" 11-Nov-2013
270   - teach implode() about collections
271   - fix ini parsing leak
272   - Make array not an instanceof Traversable
274 "Burrito" 28-Oct-2013
275   - Initial support for using FastCGI
276   - Initial support for php.ini configuration files
277   - Log when a nullable (e.g. ?int) is incorrect
278   - Add support for collections to array_diff, array_diff_key, array_intersect,
279     array_intersect_key
280   - tc-print improvements and fixes
281   - Several debugger fixes
282   - More improvements to the experimental PHP extension compat layer
283   - Fixed how parse errors are handled by eval()
284   - Support custom reason for status header
285   - Emit better error message when hhvm's systemlib doesn't load properly
286   - Fixes / clarifications added to the bytecode specification
287   - Lots of other bug fixes, clean up, PHP compat fixes, and JIT improvements
289 "Sausage" 14-Oct-2013
290   - Direct invocation of callable arrays: $f = [$cls_or_obj, 'method']; $f()
291   - ASAN clean
292   - Support dynamically loadable extensions
293   - Support loading mini-systemlibs from extensions
295 "Tabasco" 30-Sep-2013
296   - Fix issues with __toString() functions that return non-string values
297   - Don't allow mock classes to extend collection classes
298   - Smarter memory allocation and scheduling for NUMA systems
299   - Improve profiler performance in the jit
300   - Fix several Zend compatibility issues
301   - Fix several bugs uncovered by ASAN
302   - Add collection support to array_keys, array_values, and array_combine
303   - Return a set-like array from Set::toArray
304   - Add to(Vector|Map|StableMap|Set) methods to collections
305   - Collections convert to boolean false when empty
306   - get_class_vars invokes the autoloader when necessary
307   - Rework the Zend compatibility layer to be more robust
308   - Allow traits to implement interfaces
309   - Support arbitrary expressions inside empty()
311 "Bobotie" 16-Sep-2013
312   - HNI (HipHop Native Interface) for calling C++ functions from PHP
313   - Fix PropertyAccessorMap::isset
314   - Expose more POSIX constants
315   - Fixed behavior of stream_get_contents when default args are used.
316   - Implement str_getcsv, and fix some fgetcsv related issues.
317   - [IPv6] Fix stream_socket_recvfrom & stream_socket_sendto.
318   - [IPv6] Fix socket_sentto_recvfrom_ipv6_udp Zend compatibility.
319   - Optimize closure invocation and __invoke (~3x faster to invoke)
320   - Import gettext extension
321   - string and object allocation optimizations (reduced memory usage for both)
322   - Import YAML extension
323   - Import ftp extension
325 "Kimchi" 2-Sep-2013
326   - Fix order of custom attributes and visibility in ctor arg promotion
327   - Implement CachingIterator
328   - Implement RecursiveCachingIterator
329   - Generalized heuristic for choosing when to inline in the jit
330   - Introduced a Zend compatibility layer to compile extensions
331   - Imported calendar extension
332   - Use gcc-4.8.1 by default
333   - Improve hhvm command line parsing logic
334   - Fix register_shutdown in session_set_save_handler to match PHP 5.4
335   - Add "native" functions for use in Systemlib
336   - PHP extension source-compatitblility layer
337   - Fix ArrayIterator constructor PHP compatibility
338   - Enable building against libmemcached 1.0.8
339   - Debugger: $_ not cleared but still printed after exception
340   - Fix clone of SplPriorityQueue
341   - Debugger: Fix bugs when multiple threads hit the same breakpoint
342   - Fix several namespace bugs
343   - Several PHP compatibility fixes for ArrayObject and ArrayIterator
344   - Fix list assignment with collection literals
345   - support "tuple(...)" in initializer expressions
346   - HHVM should compile with libmemcached 1.0.9+
347   - Support "(new Vector {..})->method()" style syntax
348   - use trigger_error in PHP for Redis user errors
349   - multiple simplexml fixes
350   - fixed serialize/unserialize for SplObjectStorage
351   - Implement ReflectionParameter::IsCallable()
353 "Achiote" 19-Aug-2013
354   - Async stack traces in the debugger via the "wa" command
355   - Fix late static binding in static closures
356   - Fix breakpoints on generators
357   - Add SplObserver and SplSubject interfaces
358   - Update Iterable interface and add toArray() method
359   - Allow __get for undefined properties
360   - Implement get_included_files()
361   - Limit use of huge pages
363 "Churrasco" 05-Aug-2013
364   - Implement stream_is_local
365   - Implement read support for .phar
366   - Implement assert with string arguments
367   - Implement RecursiveArrayIterator
368   - Implement php_strip_whitespace()
369   - Support for timeouts in cli mode
370   - Closure allocation optimizations (~2x faster to allocate a closure)
371   - Implement Redis session handler
372   - New memory profiler, hhprof, with pprof compatible output
373   - Update isset($string[$k]) and empty($string[$k) to PHP 5.5 semantics
374   - Fixed a few parser bugs
375   - Fixed a few bugs with token_get_all()
376   - Fix (string)$obj semantics when __toString() is not defined
378 "Tamale" 22-Jul-2013
379   - Optimize vector-shaped Arrays (arrays with keys in range 0..size-1)
380   - Enable HHBC by default in debug builds
381   - Implement SplObjectStorage::getInfo()
382   - Initial rough draft of xhpast2, a replacement for xhpast
383   - fix compilation on Ubuntu 13.04
384   - OSX changes, next round
385   - Modify PHP's ext/standard/math/tests/(pow|abs).phpt to be HHVM friendly
386   - add XHP comment syntax based on http://www.w3.org/TR/REC-xml/#sec-comments
388 "Wasabi Peas" 08-Jul-2013
389   - always_assert when we run out of TC space
390   - Initial changes to get HHVM compiling on OSX
391   - Consolidate ObjectData and Instance
392   - Prototype heap tracing framework & Heap profiler
393   - Better JIT code generation for Mod and Div
394   - Fixes to enable compilation with clang
395   - Support for yield k => v
396   - Make HHVM's command line parsing closer to PHP
397   - Implement Redis extension
398   - Implement LimitIterator from SPL
399   - add SessionHandler from PHP 5.4
400   - Numerous Debugger fixes and new developer docs for Debugger
401   - Ported many extension tests to PHP