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