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