Fix race condition between 2 tests reading/writing the same file
[hiphop-php.git] / hphp / NEWS
blob68e95046dbf669b266770eff20fe68d5f2848cd0
1   - Remove legacy linear-scan register allocator and Eval.HHIRXls option
3 "Eminem" 18-Feb-2014
4   - reenabled jemalloc tcache flush for idle threads
5   - array_combine now performs __toString conversion on objects in $keys
6   - Allow streams in move_uploaded_file
7   - Fix a bug double closing a UserFile
8   - Warn when first arg to call_user_func is an object with no __invoke
9   - kill userland hdf functions
10   - Final method reports itself as final
11   - Implement IntlCalendar
12   - Disallow create_function in RepoAuthoritative mode
13   - Case-insensitive check for Accept-Encoding: gzip
15 "Donald Glover" 3-Feb-2014
16   - Support for "::class"
17   - Enable FCallBuiltin for HNI functions
18   - json_decode parity with PHP 5.4
19   - Fix race condition with profiling vs. non-profiling functions prologues
20   - Implement ini_get_all()
21   - Begin conversion of runtime options to INI
22   - Fix potential PGO-mode crash
23   - Fixes and enhancement in IR printing
24   - Vector and Set now supported by:
25     array_{shift,unshift,fill_keys,reverse,flip,size,chunk}, min, and max
26   - StableMap is now an alias for Map, which retains insertion order
27   - Map moved to HH namespace
28   - Fixes in XLS spilling of SIMD registers
29   - Support SCRIPT_FILENAME in FastCGI
30   - Implement stream_context_{get,set}_default
31   - Support for Intel VTune Amplifier XE
32   - Rewrite of SimpleXML
33   - Several HNI conversions, and a helper script
34   - Move Pair to HH namespace
35   - Fix get_included_files ordering
36   - Fix $_SERVER and $_ENV in FastCGI
37   - Update timelib to php 5.5.8
38   - Some dead code removal
40 "Coolio" 21-Jan-2014
41   - Turn on Region JIT
42   - FastCGI fixes, perf improvements
43   - ext_zend_compat fixes
44   - Turn on XLS Register Allocator by default
45   - Fix server stats reporting
46   - 'num' scalar typehint that accepts both ints and floats
47   - fix support for typedef'd namespaces
48   - don't swallow fatals when autoloading
49   - Map collections learned the in-place retain() and retainWithKey()
50   - rename Set::difference() to Set::removeAll()
51   - Update Set to retain element insertion order
52   - remove APC stats
53   - Fixes for ARM mode
54   - FrozenMap collection
55   - Deprecated Vector|Set|Map::put() method removed
56   - == between Frozen{Vector|Set|Map} and {Vector|Set|Map} now can return true
58 "Beastie Boys" 6-Jan-2014
59   - Support lex-time binary constants (eg. 0b10111)
60   - StreamWrappers now support rmdir, mkdir, rename and unlink
61   - Miscellaneous Zend PHP compatibility fixes
62   - Default StatCache to off
63   - Miscellaneous FastCGI fixes
64   - Miscellaneous region compiler fixes
65   - Map and StableMap collections use the same underlying implementation
66   - Trait requirements enforced
67   - hhprof performance improvements
68   - Add array to string conversion notice
69   - Add RaiseNotice IR opcode
70   - Fix VirtualHost.<name>.Pattern matching
71   - Fix various memory leaks (pdo_parse_params, Gen*WaitHandle)
72   - Import a lot more Zend tests that used to crash or hang
73   - Clean up base.h
74   - XLS register allocation cleanup
75   - Enable region compiler by default for JIT functions in ahot
76   - Fatal on eval() in RepoAuthoritative mode
77   - Enable LTO for HHVM
78   - Fix a few SPL compatibility issues
80 "Appleseed" 23-Dec-2013
81   - Fix issues with DOCUMENT_ROOT in fastcgi
82   - Better type inference for collections and builtins in repo mode
83   - Shorter syntax for lambda expressions w/ automatic captures
84   - Parser support for trait require clauses
85   - Move FrozenVector and Set to the HH namespace
86   - Fix resource to array conversion
87   - Fix a request local memory leak in foreach of apc arrays
88   - Initial php_odbc API implementation
89   - Implement PHP's hash_copy() function
90   - Experimental tool: Memoization Opportunity Profiler
91   - Various small parity/behavior fixes (in phar, proc_open, filter_var)
92   - A Eval.DumpHhas=1 option to dump hhas for a php file
93   - Better warnings in Set::toArray
94   - Fix the behavior of foreach loops in finally blocks
95   - chmod -x runtime/vm/jit/*.{cpp,h}
96   - Changes to make hhvm build clean with clang-3.4
97   - Fix array_product to not be bug-compatible with PHP 5.2
98   - Change the Map datastructure---preserves order and does faster foreach
99   - FrozenSet collection
100   - Generate pid.map when we unmap text section, for the perf tool
101   - Implemented GlobIterator
102   - Implemented Reflection::export and Reflection::getModifierNames
104 "Tom Yum" 9-Dec-2013
105   - support date.timezone in ini files
106   - implement fileinfo
107   - special comparisons for DateTime
108   - delete unimplemented functions
109   - support for the finally clause in try blocks
111 "Huarache" 26-Nov-2013
112   - Linker re-ordering of hot functions
113   - Huge pages for hot functions
114   - Implement ZipArchive
115   - preg_replace /e support
116   - get_mem_usage() no longer can be negative
117   - Userland file system support
118   - Implement fileinfo extension
119   - wordwrap() fixes
120   - PDO::sqliteCreateFunction()
121   - Implement NumberFormatter
122   - Implement Locale
123   - Implement DatePeriod
124   - Many reflection fixes
125   - Stub out PharData
126   - A ton of performance fixes
127   - A ton of open source framework fixes
128   - FastCGI Server Support
130 "Garlic Alfredo" 11-Nov-2013
131   - teach implode() about collections
132   - fix ini parsing leak
133   - Make array not an instanceof Traversable
135 "Burrito" 28-Oct-2013
136   - Initial support for using FastCGI
137   - Initial support for php.ini configuration files
138   - Log when a nullable (e.g. ?int) is incorrect
139   - Add support for collections to array_diff, array_diff_key, array_intersect,
140     array_intersect_key
141   - tc-print improvements and fixes
142   - Several debugger fixes
143   - More improvements to the experimental PHP extension compat layer
144   - Fixed how parse errors are handled by eval()
145   - Support custom reason for status header
146   - Emit better error message when hhvm's systemlib doesn't load properly
147   - Fixes / clarifications added to the bytecode specification
148   - Lots of other bug fixes, clean up, PHP compat fixes, and JIT improvements
150 "Sausage" 14-Oct-2013
151   - Direct invocation of callable arrays: $f = [$cls_or_obj, 'method']; $f()
152   - ASAN clean
153   - Support dynamically loadable extensions
154   - Support loading mini-systemlibs from extensions
156 "Tabasco" 30-Sep-2013
157   - Fix issues with __toString() functions that return non-string values
158   - Don't allow mock classes to extend collection classes
159   - Smarter memory allocation and scheduling for NUMA systems
160   - Improve profiler performance in the jit
161   - Fix several Zend compatibility issues
162   - Fix several bugs uncovered by ASAN
163   - Add collection support to array_keys, array_values, and array_combine
164   - Return a set-like array from Set::toArray
165   - Add to(Vector|Map|StableMap|Set) methods to collections
166   - Collections convert to boolean false when empty
167   - get_class_vars invokes the autoloader when necessary
168   - Rework the Zend compatibility layer to be more robust
169   - Allow traits to implement interfaces
170   - Support arbitrary expressions inside empty()
172 "Bobotie" 16-Sep-2013
173   - HNI (HipHop Native Interface) for calling C++ functions from PHP
174   - Fix PropertyAccessorMap::isset
175   - Expose more POSIX constants
176   - Fixed behavior of stream_get_contents when default args are used.
177   - Implement str_getcsv, and fix some fgetcsv related issues.
178   - [IPv6] Fix stream_socket_recvfrom & stream_socket_sendto.
179   - [IPv6] Fix socket_sentto_recvfrom_ipv6_udp Zend compatibility.
180   - Optimize closure invocation and __invoke (~3x faster to invoke)
181   - Import gettext extension
182   - string and object allocation optimizations (reduced memory usage for both)
183   - Import YAML extension
184   - Import ftp extension
186 "Kimchi" 2-Sep-2013
187   - Fix order of custom attributes and visibility in ctor arg promotion
188   - Implement CachingIterator
189   - Implement RecursiveCachingIterator
190   - Generalized heuristic for choosing when to inline in the jit
191   - Introduced a Zend compatibility layer to compile extensions
192   - Imported calendar extension
193   - Use gcc-4.8.1 by default
194   - Improve hhvm command line parsing logic
195   - Fix register_shutdown in session_set_save_handler to match PHP 5.4
196   - Add "native" functions for use in Systemlib
197   - PHP extension source-compatitblility layer
198   - Fix ArrayIterator constructor PHP compatibility
199   - Enable building against libmemcached 1.0.8
200   - Debugger: $_ not cleared but still printed after exception
201   - Fix clone of SplPriorityQueue
202   - Debugger: Fix bugs when multiple threads hit the same breakpoint
203   - Fix several namespace bugs
204   - Several PHP compatibility fixes for ArrayObject and ArrayIterator
205   - Fix list assignment with collection literals
206   - support "tuple(...)" in initializer expressions
207   - HHVM should compile with libmemcached 1.0.9+
208   - Support "(new Vector {..})->method()" style syntax
209   - use trigger_error in PHP for Redis user errors
210   - multiple simplexml fixes
211   - fixed serialize/unserialize for SplObjectStorage
212   - Implement ReflectionParameter::IsCallable()
214 "Achiote" 19-Aug-2013
215   - Async stack traces in the debugger via the "wa" command
216   - Fix late static binding in static closures
217   - Fix breakpoints on generators
218   - Add SplObserver and SplSubject interfaces
219   - Update Iterable interface and add toArray() method
220   - Allow __get for undefined properties
221   - Implement get_included_files()
222   - Limit use of huge pages
224 "Churrasco" 05-Aug-2013
225   - Implement stream_is_local
226   - Implement read support for .phar
227   - Implement assert with string arguments
228   - Implement RecursiveArrayIterator
229   - Implement php_strip_whitespace()
230   - Support for timeouts in cli mode
231   - Closure allocation optimizations (~2x faster to allocate a closure)
232   - Implement Redis session handler
233   - New memory profiler, hhprof, with pprof compatible output
234   - Update isset($string[$k]) and empty($string[$k) to PHP 5.5 semantics
235   - Fixed a few parser bugs
236   - Fixed a few bugs with token_get_all()
237   - Fix (string)$obj semantics when __toString() is not defined
239 "Tamale" 22-Jul-2013
240   - Optimize vector-shaped Arrays (arrays with keys in range 0..size-1)
241   - Enable HHBC by default in debug builds
242   - Implement SplObjectStorage::getInfo()
243   - Initial rough draft of xhpast2, a replacement for xhpast
244   - fix compilation on Ubuntu 13.04
245   - OSX changes, next round
246   - Modify PHP's ext/standard/math/tests/(pow|abs).phpt to be HHVM friendly
247   - add XHP comment syntax based on http://www.w3.org/TR/REC-xml/#sec-comments
249 "Wasabi Peas" 08-Jul-2013
250   - always_assert when we run out of TC space
251   - Initial changes to get HHVM compiling on OSX
252   - Consolidate ObjectData and Instance
253   - Prototype heap tracing framework & Heap profiler
254   - Better JIT code generation for Mod and Div
255   - Fixes to enable compilation with clang
256   - Support for yield k => v
257   - Make HHVM's command line parsing closer to PHP
258   - Implement Redis extension
259   - Implement LimitIterator from SPL
260   - add SessionHandler from PHP 5.4
261   - Numerous Debugger fixes and new developer docs for Debugger
262   - Ported many extension tests to PHP