NEXT
 - All numeric comparisons involving NAN, except != and !==, are now false.
 - Interface requirements (similar to trait requirements) enforced
 - Initial support for PHP5.6 argument unpacking: f($x, $y, ...$args)
 - hhi files are embedded in the hh_server binary
 - PHP_VERSION is now 5.6

"Mos Def" 11-Jun-2014
 - Turn on new tracelet region selector by default; analyze() is deprecated
 - Fix a bug in debugBacktrace with NativeImpl methods
 - Request local allocator now uses logarithmically spaced size classes
 - Improvements to JIT'd FCallBuiltin to cause fewer spills
 - Enable vtable-style dispatch on methods marked "abstract"
 - JIT several instructions that were being punted:  Unbox, File, Dir
 - Increase "hinted drop" time on write lease, improving JIT'd code layout
 - Implemented __toString functions in reflection classes
 - Several tc-print bug fixes
 - Some improvements in hhbbc arithmetic type inference
 - More service requests are "ephemeral", reducing wasted stubs space
 - HH\Vector now has a packed array internally, for O(1) conversions to array
 - current() and key() now support expressions that can't be taken by reference
 - Fix a long-standing but very rare race condition with Closure class names
 - gcc 4.8 is the new minimum to build
 - Various bug/compat fixes in Soap, SimpleXML, ArrayObject, DOMNode, mysqli
 - Add a scheme to extend support for efficient packed arrays w/ cap up to 2^32
 - Move vmfp, vmsp, and vmpc into RDS
 - Fix some hard-to-hit bugs in inlining relating to stack overflow checks
 - Faster int to double conversion when calling builtins from the JIT
 - Fix ReflectionParameter::getClass for scalar typehints
 - better tuning of the PGO 'hot function' threshold
 - performance improvements to calling native class methods
 - improve performance of async functions that exit via exception
 - several bug fixes in refcount optimization pass relating to async functions
 - More hhir-related docs in the hackers-guide
 - Initial support for relocating generated machine code
 - JIT optimizations for count()
 - Corrected the result of var_dump and print_r for ArrayObject
 - fix HH\autoload_set_paths with nested maps
 - make ReflectionClass serializable
 - ext/standard/output HNI conversion
 - allow usage of zend-qsort in user sorts with a runtime option

"LL Cool J" 28-May-2014
 - Over 200 other bug fixes (go lockdown!)
 - Every HDF setting is now available as INI
 - Cut session_id() size by 1/2
 - Added 'Z' format string for pack/unpack
 - We now build on clang
 - Fix pcre cache to not fatal when full
 - Implement $php_errormsg
 - Adding -n CLI option to hhvm php mode
 - Fix substitution of invalid UTF8 sequences in htmlspecialchars
 - FastCGI: Use SCRIPT_FILENAME as the PHP script to run
 - Can create DateTimeZone's from abbreviations
 - Put all fastcgi params into $_SERVER
 - Many DOM classes are now serializable
 - Define the xhp tokens
 - Many reflection changes for perf and compatibility
 - Default fastcgi to listen on 127.0.0.1
 - remove register_cleanup_function
 - Map: reserve()
 - Set: retain(), reserve(), addAllKeysOf()
 - {Set|ImmSet|Vector|ImmVector}::fromKeysOf()

"Kanye West"
  - Backport fix for CVE-2011-2202
  - Interfaces {Keyed}Container match arrays *and* collections, not iterables
  - Added ** and **= operators to HHVM and more compatibility fixes with PHP5.6
  - Fixes and improvements to collections
  - Replace json decoder with json-c library
  - Document VMRegAnchor and isVMFrame()
  - Improvements to array iterator code
  - Improvements to the type checker
  - Allow parser to be generated with bison 3
  - Improvements and speed up to reflection code

"Jay-Z" 9-May-2014
  - Make handling of code.hot overflows more robust
  - Catch server errors sooner
  - Fix segfault and infinite recursion in fileinfo extension
  - Resolve systemlib constants at compile time
  - Resume resumables natively
  - Import round() table optimizations from php-src
  - Delete bytecode Peephole optimizer
  - Remove most of annotation.cpp, and some other code gated on !UsedHHBBC
  - Create phis for locals
  - Fix free of "" in rfc1867PostHandler
  - Add firstValue(), firstKey(), lastValue(), lastKey() to collections
  - Add concat() to collections
  - Clarify Hack license
  - Add CakePHP3 to test runner
  - Better error when TC is full
  - Add hash_equals() from PHP 5.6

"Insane Poetry" 24-Apr-2014
  - Support for PHP 5.6 variadic ...$args syntax for func declarations
  - Open source HHMeasure, a simple and extensible microbenchmarking tool
  - Added a new time-based sampling profiler (Project Xenon)
  - Fix PCRE unicode handling
  - Convert Zend compatibility layer and various extensions to HNI
  - Encode execution mode (eager or resumed) into SrcKey
  - Merge eager and resumed parts of async functions
  - Rework various async / continuation bytecode instructions

"House of PHPain" 1-Apr-2014
  - Allow direct arg passing with up to 15 params (7 if at least one is a double)

"Ghostface Killah" 17-Mar-2014
  - Remove "HipHop" from error messages
  - Add __IsFoldable user attribute for const-foldable functions
  - Add __Native("NoFCallBuiltin") UA for builtins which need an actrec
  - Add support for testing different outputs in repo mode
  - Implement remaining functionality from intl extension
  - Implement XSL extension
  - Implement Stream Filters
  - Improve php.ini support and get ready to kill HDF files
  - Parse config files as ini files, unless filename contains '.hdf'
  - Various fixes to Redis, JSON, SPL, DateTime, MySQLi, and others
  - Remove C<T>Ref typedefs (use const T& now)
  - JIT default on in command line mode
  - gethostname() just returns what the syscall returns (Zend compat)
  - HHBBC turned on in the build for facebook.com

"Fifty Cent" 3-Mar-2014
  - Array parameter type constraints implicitly cast collections to arrays
  - Fix issues with feof and fwrite
  - Fix issues with sleep and inaccessible properties
  - Dump a jemalloc pprod dump when a request hits OOM
  - Make method_exists work with interface inheritance
  - Fix crash in preg_replace with /e
  - Support filename and content type in Curl uploads
  - MySQLi fixes
  - Handle relative paths in is_dir
  - Add string conversion for array_fill_keys
  - Implement various Imagick functionality
  - Implement CUROPT_PROGRESSFUNCTION
  - Implement PHP 5.6 __debugInfo() magic method
  - Raise warnings when return type annotations mismatch
  - Fix nested ArrayObject assignment
  - Switch many ini settings to thread-time binding
  - Clean up memory stat tracking
  - Immutable collections are now prefixed with Imm instead of Fixed/Frozen
  - Clean up type parameter for CheckType-related IR opcodes
  - Remove legacy linear-scan register allocator and Eval.HHIRXls option

"Eminem" 18-Feb-2014
  - reenabled jemalloc tcache flush for idle threads
  - array_combine now performs __toString conversion on objects in $keys
  - Allow streams in move_uploaded_file
  - Fix a bug double closing a UserFile
  - Warn when first arg to call_user_func is an object with no __invoke
  - kill userland hdf functions
  - Final method reports itself as final
  - Implement IntlCalendar
  - Disallow create_function in RepoAuthoritative mode
  - Case-insensitive check for Accept-Encoding: gzip

"Donald Glover" 3-Feb-2014
  - Support for "::class"
  - Enable FCallBuiltin for HNI functions
  - json_decode parity with PHP 5.4
  - Fix race condition with profiling vs. non-profiling functions prologues
  - Implement ini_get_all()
  - Begin conversion of runtime options to INI
  - Fix potential PGO-mode crash
  - Fixes and enhancement in IR printing
  - Vector and Set now supported by:
    array_{shift,unshift,fill_keys,reverse,flip,size,chunk}, min, and max
  - StableMap is now an alias for Map, which retains insertion order
  - Map moved to HH namespace
  - Fixes in XLS spilling of SIMD registers
  - Support SCRIPT_FILENAME in FastCGI
  - Implement stream_context_{get,set}_default
  - Support for Intel VTune Amplifier XE
  - Rewrite of SimpleXML
  - Several HNI conversions, and a helper script
  - Move Pair to HH namespace
  - Fix get_included_files ordering
  - Fix $_SERVER and $_ENV in FastCGI
  - Update timelib to php 5.5.8
  - Some dead code removal

"Coolio" 21-Jan-2014
  - Turn on Region JIT
  - FastCGI fixes, perf improvements
  - ext_zend_compat fixes
  - Turn on XLS Register Allocator by default
  - Fix server stats reporting
  - 'num' scalar typehint that accepts both ints and floats
  - fix support for typedef'd namespaces
  - don't swallow fatals when autoloading
  - Map collections learned the in-place retain() and retainWithKey()
  - rename Set::difference() to Set::removeAll()
  - Update Set to retain element insertion order
  - remove APC stats
  - Fixes for ARM mode
  - FrozenMap collection
  - Deprecated Vector|Set|Map::put() method removed
  - == between Frozen{Vector|Set|Map} and {Vector|Set|Map} now can return true

"Beastie Boys" 6-Jan-2014
  - Support lex-time binary constants (eg. 0b10111)
  - StreamWrappers now support rmdir, mkdir, rename and unlink
  - Miscellaneous PHP5 compatibility fixes
  - Default StatCache to off
  - Miscellaneous FastCGI fixes
  - Miscellaneous region compiler fixes
  - Map and StableMap collections use the same underlying implementation
  - Trait requirements enforced
  - hhprof performance improvements
  - Add array to string conversion notice
  - Add RaiseNotice IR opcode
  - Fix VirtualHost.<name>.Pattern matching
  - Fix various memory leaks (pdo_parse_params, Gen*WaitHandle)
  - Import a lot more Zend tests that used to crash or hang
  - Clean up base.h
  - XLS register allocation cleanup
  - Enable region compiler by default for JIT functions in ahot
  - Fatal on eval() in RepoAuthoritative mode
  - Enable LTO for HHVM
  - Fix a few SPL compatibility issues

"Appleseed" 23-Dec-2013
  - Fix issues with DOCUMENT_ROOT in fastcgi
  - Better type inference for collections and builtins in repo mode
  - Shorter syntax for lambda expressions w/ automatic captures
  - Parser support for trait require clauses
  - Move FrozenVector and Set to the HH namespace
  - Fix resource to array conversion
  - Fix a request local memory leak in foreach of apc arrays
  - Initial php_odbc API implementation
  - Implement PHP's hash_copy() function
  - Experimental tool: Memoization Opportunity Profiler
  - Various small parity/behavior fixes (in phar, proc_open, filter_var)
  - A Eval.DumpHhas=1 option to dump hhas for a php file
  - Better warnings in Set::toArray
  - Fix the behavior of foreach loops in finally blocks
  - chmod -x runtime/vm/jit/*.{cpp,h}
  - Changes to make hhvm build clean with clang-3.4
  - Fix array_product to not be bug-compatible with PHP 5.2
  - Change the Map datastructure---preserves order and does faster foreach
  - FrozenSet collection
  - Generate pid.map when we unmap text section, for the perf tool
  - Implemented GlobIterator
  - Implemented Reflection::export and Reflection::getModifierNames

"Tom Yum" 9-Dec-2013
  - support date.timezone in ini files
  - implement fileinfo
  - special comparisons for DateTime
  - delete unimplemented functions
  - support for the finally clause in try blocks

"Huarache" 26-Nov-2013
  - Linker re-ordering of hot functions
  - Huge pages for hot functions
  - Implement ZipArchive
  - preg_replace /e support
  - get_mem_usage() no longer can be negative
  - Userland file system support
  - Implement fileinfo extension
  - wordwrap() fixes
  - PDO::sqliteCreateFunction()
  - Implement NumberFormatter
  - Implement Locale
  - Implement DatePeriod
  - Many reflection fixes
  - Stub out PharData
  - A ton of performance fixes
  - A ton of open source framework fixes
  - FastCGI Server Support

"Garlic Alfredo" 11-Nov-2013
  - teach implode() about collections
  - fix ini parsing leak
  - Make array not an instanceof Traversable

"Burrito" 28-Oct-2013
  - Initial support for using FastCGI
  - Initial support for php.ini configuration files
  - Log when a nullable (e.g. ?int) is incorrect
  - Add support for collections to array_diff, array_diff_key, array_intersect,
    array_intersect_key
  - tc-print improvements and fixes
  - Several debugger fixes
  - More improvements to the experimental PHP extension compat layer
  - Fixed how parse errors are handled by eval()
  - Support custom reason for status header
  - Emit better error message when hhvm's systemlib doesn't load properly
  - Fixes / clarifications added to the bytecode specification
  - Lots of other bug fixes, clean up, PHP compat fixes, and JIT improvements

"Sausage" 14-Oct-2013
  - Direct invocation of callable arrays: $f = [$cls_or_obj, 'method']; $f()
  - ASAN clean
  - Support dynamically loadable extensions
  - Support loading mini-systemlibs from extensions

"Tabasco" 30-Sep-2013
  - Fix issues with __toString() functions that return non-string values
  - Don't allow mock classes to extend collection classes
  - Smarter memory allocation and scheduling for NUMA systems
  - Improve profiler performance in the jit
  - Fix several Zend compatibility issues
  - Fix several bugs uncovered by ASAN
  - Add collection support to array_keys, array_values, and array_combine
  - Return a set-like array from Set::toArray
  - Add to(Vector|Map|StableMap|Set) methods to collections
  - Collections convert to boolean false when empty
  - get_class_vars invokes the autoloader when necessary
  - Rework the Zend compatibility layer to be more robust
  - Allow traits to implement interfaces
  - Support arbitrary expressions inside empty()

"Bobotie" 16-Sep-2013
  - HNI (HipHop Native Interface) for calling C++ functions from PHP
  - Fix PropertyAccessorMap::isset
  - Expose more POSIX constants
  - Fixed behavior of stream_get_contents when default args are used.
  - Implement str_getcsv, and fix some fgetcsv related issues.
  - [IPv6] Fix stream_socket_recvfrom & stream_socket_sendto.
  - [IPv6] Fix socket_sentto_recvfrom_ipv6_udp Zend compatibility.
  - Optimize closure invocation and __invoke (~3x faster to invoke)
  - Import gettext extension
  - string and object allocation optimizations (reduced memory usage for both)
  - Import YAML extension
  - Import ftp extension

"Kimchi" 2-Sep-2013
  - Fix order of custom attributes and visibility in ctor arg promotion
  - Implement CachingIterator
  - Implement RecursiveCachingIterator
  - Generalized heuristic for choosing when to inline in the jit
  - Introduced a Zend compatibility layer to compile extensions
  - Imported calendar extension
  - Use gcc-4.8.1 by default
  - Improve hhvm command line parsing logic
  - Fix register_shutdown in session_set_save_handler to match PHP 5.4
  - Add "native" functions for use in Systemlib
  - PHP extension source-compatitblility layer
  - Fix ArrayIterator constructor PHP compatibility
  - Enable building against libmemcached 1.0.8
  - Debugger: $_ not cleared but still printed after exception
  - Fix clone of SplPriorityQueue
  - Debugger: Fix bugs when multiple threads hit the same breakpoint
  - Fix several namespace bugs
  - Several PHP compatibility fixes for ArrayObject and ArrayIterator
  - Fix list assignment with collection literals
  - support "tuple(...)" in initializer expressions
  - HHVM should compile with libmemcached 1.0.9+
  - Support "(new Vector {..})->method()" style syntax
  - use trigger_error in PHP for Redis user errors
  - multiple simplexml fixes
  - fixed serialize/unserialize for SplObjectStorage
  - Implement ReflectionParameter::IsCallable()

"Achiote" 19-Aug-2013
  - Async stack traces in the debugger via the "wa" command
  - Fix late static binding in static closures
  - Fix breakpoints on generators
  - Add SplObserver and SplSubject interfaces
  - Update Iterable interface and add toArray() method
  - Allow __get for undefined properties
  - Implement get_included_files()
  - Limit use of huge pages

"Churrasco" 05-Aug-2013
  - Implement stream_is_local
  - Implement read support for .phar
  - Implement assert with string arguments
  - Implement RecursiveArrayIterator
  - Implement php_strip_whitespace()
  - Support for timeouts in cli mode
  - Closure allocation optimizations (~2x faster to allocate a closure)
  - Implement Redis session handler
  - New memory profiler, hhprof, with pprof compatible output
  - Update isset($string[$k]) and empty($string[$k) to PHP 5.5 semantics
  - Fixed a few parser bugs
  - Fixed a few bugs with token_get_all()
  - Fix (string)$obj semantics when __toString() is not defined

"Tamale" 22-Jul-2013
  - Optimize vector-shaped Arrays (arrays with keys in range 0..size-1)
  - Enable HHBC by default in debug builds
  - Implement SplObjectStorage::getInfo()
  - Initial rough draft of xhpast2, a replacement for xhpast
  - fix compilation on Ubuntu 13.04
  - OSX changes, next round
  - Modify PHP's ext/standard/math/tests/(pow|abs).phpt to be HHVM friendly
  - add XHP comment syntax based on http://www.w3.org/TR/REC-xml/#sec-comments

"Wasabi Peas" 08-Jul-2013
  - always_assert when we run out of TC space
  - Initial changes to get HHVM compiling on OSX
  - Consolidate ObjectData and Instance
  - Prototype heap tracing framework & Heap profiler
  - Better JIT code generation for Mod and Div
  - Fixes to enable compilation with clang
  - Support for yield k => v
  - Make HHVM's command line parsing closer to PHP
  - Implement Redis extension
  - Implement LimitIterator from SPL
  - add SessionHandler from PHP 5.4
  - Numerous Debugger fixes and new developer docs for Debugger
  - Ported many extension tests to PHP
