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