Fix build when using system installed lz4 library instead of third-party
[hiphop-php.git] / NEWS
blob03159697a7745bb97d8ad5045cc63fc7c1728868
1 NEXT 4-Dec-2014
2  - Removed support for Magic Quotes (also removed in PHP 5.4)
4 "Xzibit" 20-Nov-2014
5  - Fix readline request locals
6  - Don't leak HashContexts
7  - Fix a race freeing an APCHandle
8  - Don't clean up memory in AdminRequestHandler::abortRequest
9  - Fix setup/teardown for requests handled by WarmupRequestHandler
10  - Extend IR type system for more information about pointers
11  - Use proxygen as a git submodule
12  - Version of memcpy-x64 optimized for the tail end of 7,6,5,4 bytes in an N byte copy
13  - Eliminate default cases in DataType switches
14  - Match PHP5 backquote processing
15  - Add overflow info to is_numeric_string
16  - Add support for pre-built branches to benchy
17  - Allow calling closures inline
18  - Allow systemlib function declarations to use reserved words for function names
19  - Add HH\{int,float,bool} typehints to PHP
20  - Deep initialization for constant properties
21  - Enforce void return on native class constructors/destructors
22  - Replace NEWOBJ with newobj<T> and newres<T> functions
23  - Change default FCGI socket permissions
24  - Support openssl replacements which don't export RANG_egd()
25  - Fix use-after-free in TimeZone
26  - Support GCC/LLVM stack-smashing protection
27  - Make sure Type::Bottom is a subtype of everything
28  - Fix hphpd crash when printing systemlib classes
29  - Convert file extension to HNI
30  - Convert DOMDocument extension to HNI
31  - Convert POSIX extension to HNI
32  - Convert array_multisort to HNI
33  - Add fribidi extension for HHVM
34  - Mechanism for enabling request-local heap profiling
35  - Make prediction opts deal with arbitrary load/check instructions
36  - Add JSON output support to benchy
37  - HHIR pass to do dead store elimination on frame locals
38  - Adjust single parameter warnings for min()/max()
39  - Make AlwaysLogUnhandledExceptions=off and CallUserHandlerOnFatals=EnableHipHopSyntax
40  - Always use RuntimeOption::SourceRoot to resolve repo-auth lookups
41  - Refactor debugger tests
42  - Fix parser to allow "type" and "newtype" to be used as typevars
43  - Convert system/idl/function to HNI
44  - Remove type annotations for array_sum and array_product
45  - Don't populate the litstr-to-id map in RepoAuthoritative mode
46  - Move m_lineTable to a side table
47  - Only try to autoload classes with valid names
48  - Proper PDO connection errors
49  - Move hfsort linker script tool to OSS
50  - Move slow 'quick' tests to 'slow'
51  - Add option to make inconv actually match the docs
52  - Convert socket extension to HNI
53  - Convert stream extension to HNI
54  - Fix UserFile::access behavior to match PHP5
55  - Fix for wrong PATH_INFO and PATH_TRANSLATED (maybe)
56  - Move generated .h and .cpp to unique dir
57  - Fix for phat:// stream wrapper with no stub
58  - JSON encode closures as empty objects for PHP compat
59  - Disable parameter typehints for builtins to match PHP5
60  - Convert PDO extension to HNI
61  - Fix assert related to async return typehints
62  - Allow collections in array_sum() and array_product()
63  - Use the time in default xdebug output file
64  - Allow vxls to allocate vmsp during traces
65  - Only initialize sweepables on new threads
66  - Load Offset->line number mappings on demand
67  - Fix SOAP memory leak
68  - Add OSS support for benchy
70 "Will.i.am" 13-Nov-2014
71  - Add benchy.py for benchmarking HHVM
72  - Tune and enable PGO for all functions
73  - Generate HHIR opcode table by extracting lines from ir.specification
74  - Convert a few more extensions to HNI
75  - Limit the maximum number of bytecode instructions in a region
76  - Improvements to <<__Memoize>>
78 "Vanilla Ice" 27-Oct-2014
79  - Fix logging
80  - An async method's return annotation (if there is one) must be "Awaitable"
81  - Fix a bug in how __Memoize sets up FPI regions
82  - Fix issues with shutdown/postsend functions
83  - Fix is_callable for interface and abstract methods
84  - Added support for ReflectionFunction::getClosureThis()
85  - Add option to run perf to hhvm_wrapper
86  - Use a global cache for timezone info
87  - Implement readline_info()
88  - Fix NumberFormatter::format for string values
89  - Corrected socket connect for IPv6 hosts
90  - [hack] Fix parsing of postfix operators.
91  - Region selector improvements
92  - Disallow <<__Memoize>> on interfaces
93  - Convert APC to HNI
94  - Align recoverable fatal error's message with PHP
95  - [hack] Make hhi for some builtin constants.
96  - HHBBC improvements (enums, etc.)
97  - Properly shutdown debugger threads on exit
98  - [hack] support for 'abstract final' classes
99  - Convert string to HNI
100  - Fix SOAP extension type encoding
101  - make test runner not puke when run with xargs
102  - [hack] reflection support for first-class enums
103  - Make `yield;` a valid statement
105 "Ultramagnetic" 9-Oct-2014
106  - Optimize strtr
107  - Closure::bind support
108  - Cleanup/shrink various runtime data structures
109  - Various jit performance optimizations
110  - Fix various debugger crashes
111  - Better handling of memory limits
112  - Hack: System user attributes will be prefixed with __, notably <<Override>> renamed to <<__Override>>
113  - Hack: Support for 'abstract final' non-instantiable non-inheritable "utility" classes
115 "T-Pain" 25-Sep-2014
116  - Use vasm virtual registers in x64 backend, transition fully to vasm-xls
117  - 'arraykey' scalar typehint that accepts both ints and strings
118  - Add OSS benchmarking suite
119  - Fix PDO::bindColumn
120  - [resumable] Set resumed flag before suspending VarEnv
121  - Objprof for HHVM (Approx. instance counter)
122  - Make RUSAGE_THREAD available to getrusage PHP function
123  - clean up /tmp/test-run- files
124  - VASM register-coalescing via hinting
125  - Be more conservative about HNI types when there are InterceptableFunctions
126  - Add runtime support for null-safe method call operator "?->"
127  - Add sanity test system to OSS benchmarker
128  - Fix double deallocation of object in zend conversion of object to string
129  - [hhvm|memoize] Makes <<__Memoize>> work with arbitrary args
130  - Use raw troff encoding for official HHVM man page
131  - Add --php options to HHVM man page
132  - Fix GMP tests/crashes
133  - Implement posix_errno
134  - Xdebug remote debugging compatibility and bug fixes
135  - Add options parameter to DOMDocument::load/loadHTML()
136  - Add support for GNU tar symlinks to PharData
137  - Add max_file_uploads support
138  - Improve process error checking in perf runner
139  - posix_getgrgid()['members'] should be empty array if no users found
140  - Convert from jemalloc's obsolete *allocm() to *allocx()
141  - Use EqX instead of Eq for Obj/Num comparisons.
142  - make class closure consist with PHP
143  - Fix guard relaxation to work with bytecode control flow
144  - Allow vm-stack flushing in rpc threads
145  - stop killing LightProcesses while writing out stacktrace.log
146  - Get hhvm compiling with clang-3.5
147  - Update .hhi files for ConstSet, Set, and ImmSet
148  - Force the linker to keep symbols in lowmem on MacOSX
149  - Make guard relaxation work with unreachable code
150  - Add minimal hdf support to test runner
151  - Analyze/optimize pseudomains in hhbbc
152  - [hhvm|memoize] Fix segfault on certain memoized functions
153  - Support mappy ini configuration
154  - Xdebug cleanup and trivial features
155  - Abort the server if a request gets stuck
156  - Added support for Closure::bind()
158 "Snoop Dogg" 11-Sep-2014
159  - VASM phase 1: emit vasm instructions, with existing register allocation
160  - More xdebug support
161  - [hack] Implement async lambdas.
162  - add process memory and code segment size to admin memory page
163  - Overhauled xdebug remote debugging testing
164  - Add a mechanism for building and testing a zend extension as a DSO.
165  - Support fast object allocation path when Eval.EnableObjDestruct call is on
166  - Static string table memory usage
167  - Implement parallel repo preloading.
168  - Add mcrypt constants to hhi
169  - Move var_dump() to HNI, kill off variable.idl.json
170  - JIT: Use std, boost, and folly instead of smart containers.
171  - Hack: Support for variance (+/-) annotations on type-parameters
172  - Implement APCIterator
173  - Convert v?s?printf() to HNI using Variadics
174  - Enable variadics for HNI functions/methods
175  - Smooth a wrinkle in HHVM's safesort impl
176  - Make Set implement KeyedIterable and support bracket syntax for reading
177  - Covariance fixes
179 "RBX" 28-Aug-2014
180  - Make MemExceeded flag sticky
181  - Check for OOM during json decoding
182  - Check surprise flags when unserializing arrays and objects
183  - Limit curl timeout to remaining request timeout
184  - Add variant of openssl_pkcs7_verify that ignores cert expiration
185  - Numerous changes to support xdebug
186  - Remove use of non-threadsafe strtok()
187  - Numerous changes to normalize INI setting names
188  - update to new sqlite
189  - <<__Memoize>> support
190  - Hack: Print backtrace when worker dies
191  - Parser support for "varray(..)"
192  - Introduce kVPackedKind for vector-like arrays
193  - Move mailparse to HNI
194  - VASM start phase 1; emit vasm for some instructions
195  - Fix in headers defines for cygwin
196  - [hack] Parser: Fix decl mode's confusion of type hints and xhp.
197  - Create a unified stack for Xenon
198  - Move debugger from IDL to HNI
199  - Fix mcrypt_create_iv(..., MCRYPT_RAND) to auto-seed RNG
200  - Fix information leak in hash_equals() implementation
201  - don't statically link libgcc/libstdc++ by default on OSX
202  - Adds ssdeep module to HHVM
203  - added new raise_error family functions that skip the top frame of the backtrace.
204  - Add initial support for -d outside of --php mode
205  - Fix covariance for Const{Vector,Map,Set}, add tests
206  - GMP cleanup/fixes
207  - Implement SplDoublyLinkedList::add
208  - Link against LLVM library if present.
209  - Disallow multiple 'default:' blocks in a single switch
210  - Introduce async function lambdas
211  - Document the PHP profilers
212  - Fix sample profiler output; make it more efficient
213  - Properly shut down fastcgi worker threads when connection is closed
214  - Delete SimpleProfiler
215  - Create HHVM man page
216  - Improved PHP compatibility in the reflection API.
218 "Queen Latifah" 14-Aug-2014
219  - Implement RecursiveCallbackFilterIterator
220  - cmake installations should no longer put files in hphp and now put them in hhvm
221  - Fix error for (Recursive)CachingIterator::ctor's param 1
222  - Force OOM check on large smart allocations
223  - Support stream wrappers in XML parser extensions, add external entity loader
224  - Fix LowPtr load in codegen
225  - Fix race condition in DebuggerProxy start/stop
226  - Log per request if oom or timeout triggered in dynostats
227  - Break out hhvm request timeout / memout counters for psp vs non-psp
228  - Support collections for third parameter of preg_replace() and friends
229  - Added functions imagewebp and imagecreatefromwebp
230  - Fix mb_convert_case when encoding set other than default
231  - Added function imagepalettecopy to ext_gd
232  - Remove reflection hacks for primitive typehints
233  - Fixed tempnam() creates paths with '//'
234  - Add LibGMP extension
235  - Fix heap overflow in sql_regcase() for input >1GB
236  - Add HHVM hookups for folly::Singleton
237  - Fix isset on classes extending ArrayObject
238  - Only track live objects that actually have destructors
239  - Specify ssl cipher list for curl with OpenSSL only
240  - Remove support for "service threads"
241  - PDO MySQL's getCode() didn't match errorInfo
242  - Run usercode before ending the request
243  - Make DynamicExtensions work in ini
244  - Provide backup utf8 sanitizer when UConverter is unavailable
245  - Pass duplicate flag to SNI Initial Handler Callback
246  - fb_intercept now accounts for variadic functions
247  - Add variadic function to fb_intercept test
248  - Implemented basic xdebug tracing
249  - Rename snappy methods
250  - Add sort_flags to ArrayObject::asort
251  - Changed CRYPT_BLOWFISH to 1 because apparently it is available
252  - Convert ext/mysql to HNI
253  - Add log when memory usage reached the MaxRSS
254  - Fix http headers parsing + Remove unused code + Fix indentation
255  - Fixed error output for json_encode
256  - Corrected the var_dump output for Exception class
257  - Relax restrictions on the typing of class constant shape field names.
258  - Fix file:// URL decoding in libxml functions and elsewhere
260 "Public Enemy" 31-July-2014
261  - Interface requirements (similar to trait requirements) enforced
262  - Initial support for PHP5.6 argument unpacking: f($x, $y, ...$args)
263  - Hack: hhi files are embedded in the hh_server binary
264  - removed trampolines and the Eval.JitTrampolines option
265  - Hack: improved support for Generators, including async generators
266  - Documentation of PHP-level profiling in doc/profiling.md
267  - Cleanup of PHP-level profilers
268  - Change default for Eval.EnableObjDestructCall to true
269  - Bundle PCRE 8.32 with open-source HHVM, so we can use the JIT
271 "Outkast" 17-July-2014
272   - PHP_VERSION is now 5.6
273   - Introduce Dbl specific relational IR opcodes
274   - Expose APC info to admin port
275   - Improve Zend compatibility in the reflection API
276   - Implement xdebug_call_class
277   - Hack: first version of formatter
278   - Convert ext/xsl to HNI
279   - Hack: improve init time
280   - Remove JIT::RuntimeType
281   - Fix floating-point overflow for binary, octal and hex literals
282   - Collections: Vector::addAllKeysOf
283   - Hack can build on OSX now
284   - Fix await/yield operator precedence
285   - Fix various xcontroller issues
286   - Enable HHIRBytecodeControlFlow by default
287   - Various changes/fixes to WholeCFG region selector
288   - Introduce async generators
289   - Kill clock_settime
290   - Fix Memcache::get($keys) when $keys is an array
291   - Implement xdebug_call_function
292   - Change order of wait handle processing from FIFO to LIFO
293   - Add Redis::_serialize()
295 "Notorious B.I.G." 25-Jun-2014
296  - Remove Translator::analyze (replaced by tracelet region selector)
297  - Allow empty keys in hash_hmac() and hash_hmac_file()
298  - Interface requirements supported in parser
299  - Implement xdebug_{peak_,}memory_usage
300  - Inline singleton-pattern functions
301  - Cleanup in PhpFile and FileRepository
302  - Fix mysqli_query return value for query without result
303  - Implement xdebug_call_file
304  - Add fastlz support to memcached extension
305  - Fix ini_get to return false for non-supported settings
306  - Fix PHP version constants
307  - All numeric comparisons involving NAN, except != and !==, are now false.
308  - Implement xdebug_call_line
309  - Optimize ini_get
310  - Remove dump-file-repo admin command
311  - Fix stdclass promotion of static private properties
312  - Remove unused locals in global dce (HHBBC)
313  - Get mockery at 100%
314  - Fix casting resource to object
315  - Relocate code to arbitrary alignment
316  - Always let the first character through for camelcase searching
317  - Implement xdebug configuration options
318  - Convert ext/memcache to HNI
319  - Match php5's memcache getoption
320  - ./configure --help now has all the options
321  - mysqli: return false on non-selects
322  - Don't include bt_handler or killpg in backtraces
323  - Don't buffer overrun on bad DNS TXT records
324  - Fixed property access to DOM and XMLReader classes
325  - Add support for ParamCoerceModeFalse
327 "Mos Def" 11-Jun-2014
328  - Turn on new tracelet region selector by default; analyze() is deprecated
329  - Fix a bug in debugBacktrace with NativeImpl methods
330  - Request local allocator now uses logarithmically spaced size classes
331  - Improvements to JIT'd FCallBuiltin to cause fewer spills
332  - Enable vtable-style dispatch on methods marked "abstract"
333  - JIT several instructions that were being punted:  Unbox, File, Dir
334  - Increase "hinted drop" time on write lease, improving JIT'd code layout
335  - Implemented __toString functions in reflection classes
336  - Several tc-print bug fixes
337  - Some improvements in hhbbc arithmetic type inference
338  - More service requests are "ephemeral", reducing wasted stubs space
339  - HH\Vector now has a packed array internally, for O(1) conversions to array
340  - current() and key() now support expressions that can't be taken by reference
341  - Fix a long-standing but very rare race condition with Closure class names
342  - gcc 4.8 is the new minimum to build
343  - Various bug/compat fixes in Soap, SimpleXML, ArrayObject, DOMNode, mysqli
344  - Add a scheme to extend support for efficient packed arrays w/ cap up to 2^32
345  - Move vmfp, vmsp, and vmpc into RDS
346  - Fix some hard-to-hit bugs in inlining relating to stack overflow checks
347  - Faster int to double conversion when calling builtins from the JIT
348  - Fix ReflectionParameter::getClass for scalar typehints
349  - better tuning of the PGO 'hot function' threshold
350  - performance improvements to calling native class methods
351  - improve performance of async functions that exit via exception
352  - several bug fixes in refcount optimization pass relating to async functions
353  - More hhir-related docs in the hackers-guide
354  - Initial support for relocating generated machine code
355  - JIT optimizations for count()
356  - Corrected the result of var_dump and print_r for ArrayObject
357  - fix HH\autoload_set_paths with nested maps
358  - make ReflectionClass serializable
359  - ext/standard/output HNI conversion
360  - allow usage of zend-qsort in user sorts with a runtime option
362 "LL Cool J" 28-May-2014
363  - Over 200 other bug fixes (go lockdown!)
364  - Every HDF setting is now available as INI
365  - Cut session_id() size by 1/2
366  - Added 'Z' format string for pack/unpack
367  - We now build on clang
368  - Fix pcre cache to not fatal when full
369  - Implement $php_errormsg
370  - Adding -n CLI option to hhvm php mode
371  - Fix substitution of invalid UTF8 sequences in htmlspecialchars
372  - FastCGI: Use SCRIPT_FILENAME as the PHP script to run
373  - Can create DateTimeZone's from abbreviations
374  - Put all fastcgi params into $_SERVER
375  - Many DOM classes are now serializable
376  - Define the xhp tokens
377  - Many reflection changes for perf and compatibility
378  - Default fastcgi to listen on 127.0.0.1
379  - remove register_cleanup_function
380  - Map: reserve()
381  - Set: retain(), reserve(), addAllKeysOf()
382  - {Set|ImmSet|Vector|ImmVector}::fromKeysOf()
384 "Kanye West"
385   - Backport fix for CVE-2011-2202
386   - Interfaces {Keyed}Container match arrays *and* collections, not iterables
387   - Added ** and **= operators to HHVM and more compatibility fixes with PHP5.6
388   - Fixes and improvements to collections
389   - Replace json decoder with json-c library
390   - Document VMRegAnchor and isVMFrame()
391   - Improvements to array iterator code
392   - Improvements to the type checker
393   - Allow parser to be generated with bison 3
394   - Improvements and speed up to reflection code
396 "Jay-Z" 9-May-2014
397   - Make handling of code.hot overflows more robust
398   - Catch server errors sooner
399   - Fix segfault and infinite recursion in fileinfo extension
400   - Resolve systemlib constants at compile time
401   - Resume resumables natively
402   - Import round() table optimizations from php-src
403   - Delete bytecode Peephole optimizer
404   - Remove most of annotation.cpp, and some other code gated on !UsedHHBBC
405   - Create phis for locals
406   - Fix free of "" in rfc1867PostHandler
407   - Add firstValue(), firstKey(), lastValue(), lastKey() to collections
408   - Add concat() to collections
409   - Clarify Hack license
410   - Add CakePHP3 to test runner
411   - Better error when TC is full
412   - Add hash_equals() from PHP 5.6
414 "Insane Poetry" 24-Apr-2014
415   - Support for PHP 5.6 variadic ...$args syntax for func declarations
416   - Open source HHMeasure, a simple and extensible microbenchmarking tool
417   - Added a new time-based sampling profiler (Project Xenon)
418   - Fix PCRE unicode handling
419   - Convert Zend compatibility layer and various extensions to HNI
420   - Encode execution mode (eager or resumed) into SrcKey
421   - Merge eager and resumed parts of async functions
422   - Rework various async / continuation bytecode instructions
424 "House of PHPain" 1-Apr-2014
425   - Allow direct arg passing with up to 15 params (7 if at least one is a double)
427 "Ghostface Killah" 17-Mar-2014
428   - Remove "HipHop" from error messages
429   - Add __IsFoldable user attribute for const-foldable functions
430   - Add __Native("NoFCallBuiltin") UA for builtins which need an actrec
431   - Add support for testing different outputs in repo mode
432   - Implement remaining functionality from intl extension
433   - Implement XSL extension
434   - Implement Stream Filters
435   - Improve php.ini support and get ready to kill HDF files
436   - Parse config files as ini files, unless filename contains '.hdf'
437   - Various fixes to Redis, JSON, SPL, DateTime, MySQLi, and others
438   - Remove C<T>Ref typedefs (use const T& now)
439   - JIT default on in command line mode
440   - gethostname() just returns what the syscall returns (Zend compat)
441   - HHBBC turned on in the build for facebook.com
443 "Fifty Cent" 3-Mar-2014
444   - Array parameter type constraints implicitly cast collections to arrays
445   - Fix issues with feof and fwrite
446   - Fix issues with sleep and inaccessible properties
447   - Dump a jemalloc pprod dump when a request hits OOM
448   - Make method_exists work with interface inheritance
449   - Fix crash in preg_replace with /e
450   - Support filename and content type in Curl uploads
451   - MySQLi fixes
452   - Handle relative paths in is_dir
453   - Add string conversion for array_fill_keys
454   - Implement various Imagick functionality
455   - Implement CUROPT_PROGRESSFUNCTION
456   - Implement PHP 5.6 __debugInfo() magic method
457   - Raise warnings when return type annotations mismatch
458   - Fix nested ArrayObject assignment
459   - Switch many ini settings to thread-time binding
460   - Clean up memory stat tracking
461   - Immutable collections are now prefixed with Imm instead of Fixed/Frozen
462   - Clean up type parameter for CheckType-related IR opcodes
463   - Remove legacy linear-scan register allocator and Eval.HHIRXls option
465 "Eminem" 18-Feb-2014
466   - reenabled jemalloc tcache flush for idle threads
467   - array_combine now performs __toString conversion on objects in $keys
468   - Allow streams in move_uploaded_file
469   - Fix a bug double closing a UserFile
470   - Warn when first arg to call_user_func is an object with no __invoke
471   - kill userland hdf functions
472   - Final method reports itself as final
473   - Implement IntlCalendar
474   - Disallow create_function in RepoAuthoritative mode
475   - Case-insensitive check for Accept-Encoding: gzip
477 "Donald Glover" 3-Feb-2014
478   - Support for "::class"
479   - Enable FCallBuiltin for HNI functions
480   - json_decode parity with PHP 5.4
481   - Fix race condition with profiling vs. non-profiling functions prologues
482   - Implement ini_get_all()
483   - Begin conversion of runtime options to INI
484   - Fix potential PGO-mode crash
485   - Fixes and enhancement in IR printing
486   - Vector and Set now supported by:
487     array_{shift,unshift,fill_keys,reverse,flip,size,chunk}, min, and max
488   - StableMap is now an alias for Map, which retains insertion order
489   - Map moved to HH namespace
490   - Fixes in XLS spilling of SIMD registers
491   - Support SCRIPT_FILENAME in FastCGI
492   - Implement stream_context_{get,set}_default
493   - Support for Intel VTune Amplifier XE
494   - Rewrite of SimpleXML
495   - Several HNI conversions, and a helper script
496   - Move Pair to HH namespace
497   - Fix get_included_files ordering
498   - Fix $_SERVER and $_ENV in FastCGI
499   - Update timelib to php 5.5.8
500   - Some dead code removal
502 "Coolio" 21-Jan-2014
503   - Turn on Region JIT
504   - FastCGI fixes, perf improvements
505   - ext_zend_compat fixes
506   - Turn on XLS Register Allocator by default
507   - Fix server stats reporting
508   - 'num' scalar typehint that accepts both ints and floats
509   - fix support for typedef'd namespaces
510   - don't swallow fatals when autoloading
511   - Map collections learned the in-place retain() and retainWithKey()
512   - rename Set::difference() to Set::removeAll()
513   - Update Set to retain element insertion order
514   - remove APC stats
515   - Fixes for ARM mode
516   - FrozenMap collection
517   - Deprecated Vector|Set|Map::put() method removed
518   - == between Frozen{Vector|Set|Map} and {Vector|Set|Map} now can return true
520 "Beastie Boys" 6-Jan-2014
521   - Support lex-time binary constants (eg. 0b10111)
522   - StreamWrappers now support rmdir, mkdir, rename and unlink
523   - Miscellaneous PHP5 compatibility fixes
524   - Default StatCache to off
525   - Miscellaneous FastCGI fixes
526   - Miscellaneous region compiler fixes
527   - Map and StableMap collections use the same underlying implementation
528   - Trait requirements enforced
529   - hhprof performance improvements
530   - Add array to string conversion notice
531   - Add RaiseNotice IR opcode
532   - Fix VirtualHost.<name>.Pattern matching
533   - Fix various memory leaks (pdo_parse_params, Gen*WaitHandle)
534   - Import a lot more Zend tests that used to crash or hang
535   - Clean up base.h
536   - XLS register allocation cleanup
537   - Enable region compiler by default for JIT functions in ahot
538   - Fatal on eval() in RepoAuthoritative mode
539   - Enable LTO for HHVM
540   - Fix a few SPL compatibility issues
542 "Appleseed" 23-Dec-2013
543   - Fix issues with DOCUMENT_ROOT in fastcgi
544   - Better type inference for collections and builtins in repo mode
545   - Shorter syntax for lambda expressions w/ automatic captures
546   - Parser support for trait require clauses
547   - Move FrozenVector and Set to the HH namespace
548   - Fix resource to array conversion
549   - Fix a request local memory leak in foreach of apc arrays
550   - Initial php_odbc API implementation
551   - Implement PHP's hash_copy() function
552   - Experimental tool: Memoization Opportunity Profiler
553   - Various small parity/behavior fixes (in phar, proc_open, filter_var)
554   - A Eval.DumpHhas=1 option to dump hhas for a php file
555   - Better warnings in Set::toArray
556   - Fix the behavior of foreach loops in finally blocks
557   - chmod -x runtime/vm/jit/*.{cpp,h}
558   - Changes to make hhvm build clean with clang-3.4
559   - Fix array_product to not be bug-compatible with PHP 5.2
560   - Change the Map datastructure---preserves order and does faster foreach
561   - FrozenSet collection
562   - Generate pid.map when we unmap text section, for the perf tool
563   - Implemented GlobIterator
564   - Implemented Reflection::export and Reflection::getModifierNames
566 "Tom Yum" 9-Dec-2013
567   - support date.timezone in ini files
568   - implement fileinfo
569   - special comparisons for DateTime
570   - delete unimplemented functions
571   - support for the finally clause in try blocks
573 "Huarache" 26-Nov-2013
574   - Linker re-ordering of hot functions
575   - Huge pages for hot functions
576   - Implement ZipArchive
577   - preg_replace /e support
578   - get_mem_usage() no longer can be negative
579   - Userland file system support
580   - Implement fileinfo extension
581   - wordwrap() fixes
582   - PDO::sqliteCreateFunction()
583   - Implement NumberFormatter
584   - Implement Locale
585   - Implement DatePeriod
586   - Many reflection fixes
587   - Stub out PharData
588   - A ton of performance fixes
589   - A ton of open source framework fixes
590   - FastCGI Server Support
592 "Garlic Alfredo" 11-Nov-2013
593   - teach implode() about collections
594   - fix ini parsing leak
595   - Make array not an instanceof Traversable
597 "Burrito" 28-Oct-2013
598   - Initial support for using FastCGI
599   - Initial support for php.ini configuration files
600   - Log when a nullable (e.g. ?int) is incorrect
601   - Add support for collections to array_diff, array_diff_key, array_intersect,
602     array_intersect_key
603   - tc-print improvements and fixes
604   - Several debugger fixes
605   - More improvements to the experimental PHP extension compat layer
606   - Fixed how parse errors are handled by eval()
607   - Support custom reason for status header
608   - Emit better error message when hhvm's systemlib doesn't load properly
609   - Fixes / clarifications added to the bytecode specification
610   - Lots of other bug fixes, clean up, PHP compat fixes, and JIT improvements
612 "Sausage" 14-Oct-2013
613   - Direct invocation of callable arrays: $f = [$cls_or_obj, 'method']; $f()
614   - ASAN clean
615   - Support dynamically loadable extensions
616   - Support loading mini-systemlibs from extensions
618 "Tabasco" 30-Sep-2013
619   - Fix issues with __toString() functions that return non-string values
620   - Don't allow mock classes to extend collection classes
621   - Smarter memory allocation and scheduling for NUMA systems
622   - Improve profiler performance in the jit
623   - Fix several Zend compatibility issues
624   - Fix several bugs uncovered by ASAN
625   - Add collection support to array_keys, array_values, and array_combine
626   - Return a set-like array from Set::toArray
627   - Add to(Vector|Map|StableMap|Set) methods to collections
628   - Collections convert to boolean false when empty
629   - get_class_vars invokes the autoloader when necessary
630   - Rework the Zend compatibility layer to be more robust
631   - Allow traits to implement interfaces
632   - Support arbitrary expressions inside empty()
634 "Bobotie" 16-Sep-2013
635   - HNI (HipHop Native Interface) for calling C++ functions from PHP
636   - Fix PropertyAccessorMap::isset
637   - Expose more POSIX constants
638   - Fixed behavior of stream_get_contents when default args are used.
639   - Implement str_getcsv, and fix some fgetcsv related issues.
640   - [IPv6] Fix stream_socket_recvfrom & stream_socket_sendto.
641   - [IPv6] Fix socket_sentto_recvfrom_ipv6_udp Zend compatibility.
642   - Optimize closure invocation and __invoke (~3x faster to invoke)
643   - Import gettext extension
644   - string and object allocation optimizations (reduced memory usage for both)
645   - Import YAML extension
646   - Import ftp extension
648 "Kimchi" 2-Sep-2013
649   - Fix order of custom attributes and visibility in ctor arg promotion
650   - Implement CachingIterator
651   - Implement RecursiveCachingIterator
652   - Generalized heuristic for choosing when to inline in the jit
653   - Introduced a Zend compatibility layer to compile extensions
654   - Imported calendar extension
655   - Use gcc-4.8.1 by default
656   - Improve hhvm command line parsing logic
657   - Fix register_shutdown in session_set_save_handler to match PHP 5.4
658   - Add "native" functions for use in Systemlib
659   - PHP extension source-compatitblility layer
660   - Fix ArrayIterator constructor PHP compatibility
661   - Enable building against libmemcached 1.0.8
662   - Debugger: $_ not cleared but still printed after exception
663   - Fix clone of SplPriorityQueue
664   - Debugger: Fix bugs when multiple threads hit the same breakpoint
665   - Fix several namespace bugs
666   - Several PHP compatibility fixes for ArrayObject and ArrayIterator
667   - Fix list assignment with collection literals
668   - support "tuple(...)" in initializer expressions
669   - HHVM should compile with libmemcached 1.0.9+
670   - Support "(new Vector {..})->method()" style syntax
671   - use trigger_error in PHP for Redis user errors
672   - multiple simplexml fixes
673   - fixed serialize/unserialize for SplObjectStorage
674   - Implement ReflectionParameter::IsCallable()
676 "Achiote" 19-Aug-2013
677   - Async stack traces in the debugger via the "wa" command
678   - Fix late static binding in static closures
679   - Fix breakpoints on generators
680   - Add SplObserver and SplSubject interfaces
681   - Update Iterable interface and add toArray() method
682   - Allow __get for undefined properties
683   - Implement get_included_files()
684   - Limit use of huge pages
686 "Churrasco" 05-Aug-2013
687   - Implement stream_is_local
688   - Implement read support for .phar
689   - Implement assert with string arguments
690   - Implement RecursiveArrayIterator
691   - Implement php_strip_whitespace()
692   - Support for timeouts in cli mode
693   - Closure allocation optimizations (~2x faster to allocate a closure)
694   - Implement Redis session handler
695   - New memory profiler, hhprof, with pprof compatible output
696   - Update isset($string[$k]) and empty($string[$k) to PHP 5.5 semantics
697   - Fixed a few parser bugs
698   - Fixed a few bugs with token_get_all()
699   - Fix (string)$obj semantics when __toString() is not defined
701 "Tamale" 22-Jul-2013
702   - Optimize vector-shaped Arrays (arrays with keys in range 0..size-1)
703   - Enable HHBC by default in debug builds
704   - Implement SplObjectStorage::getInfo()
705   - Initial rough draft of xhpast2, a replacement for xhpast
706   - fix compilation on Ubuntu 13.04
707   - OSX changes, next round
708   - Modify PHP's ext/standard/math/tests/(pow|abs).phpt to be HHVM friendly
709   - add XHP comment syntax based on http://www.w3.org/TR/REC-xml/#sec-comments
711 "Wasabi Peas" 08-Jul-2013
712   - always_assert when we run out of TC space
713   - Initial changes to get HHVM compiling on OSX
714   - Consolidate ObjectData and Instance
715   - Prototype heap tracing framework & Heap profiler
716   - Better JIT code generation for Mod and Div
717   - Fixes to enable compilation with clang
718   - Support for yield k => v
719   - Make HHVM's command line parsing closer to PHP
720   - Implement Redis extension
721   - Implement LimitIterator from SPL
722   - add SessionHandler from PHP 5.4
723   - Numerous Debugger fixes and new developer docs for Debugger
724   - Ported many extension tests to PHP