Pass FileInfo.fast via argument instead of global storage for Typing_check_service
[hiphop-php.git] / NEWS
blob68b62a3dc6fb5907428c71a763c9e7037d99a113
1 "Rogers" 10-Sep-2015
2 - Update to jemalloc 4.0.0.
3 - Convert more architecture dependent code to VASM.
4 - Large bout of fixes for compiling hhvm under MSVC.
5 - Have hh_emitter support more of HHBC.
6 - Remove MInstrState from CGetM and IssetM's final operations.
7 - Refactor [un]serialize functions.
8 - Use profiling counters to decide whether to apply LICM.
9 - Move inlining to translateRegion.
10 - Implement intdiv function.
11 - Remove joomla and joomlacms from hhvm test suite.
12 - [hack] Add a --stats option to the client.
13 - [hack] GC the shared memory area more aggressively.
14 - [hack] Rework the representation of strings.
15 - Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
16 - Fix bug #69545 - avoid overflow when reading list and improve fix for bug #69545
17 - Fix #66387: Stack overflow with imagefilltoborder
18 - Fix #70064: imagescale(..., IMG_BICUBIC) leaks memory and Fix #69024: imagescale segfault with palette based image
20 "Quake" 27-Aug-2015
21 - ??
23 "Park" 13-Aug-2015
24 - ???
26 "Osborne" 30-Jul-2015
27 - Remove global LDAP requirement
28 - Don't require libXSLT globally
29 - Remove the global MCrypt requirement
30 - Remove the global search for LibUODBC
31 - Remove the global check for libpam
32 - use folly::writeFull wrapper for uploads
33 - Fix vararg handling for array_uintersect and others
34 - fix error message for abstract type constants
35 - Fix variadics in hhvm_get_frame_args
36 - Use poll() instead of select() in XDebugServer::createSocket.
37 - [hack] Error on overriding concrete type constant with an abstract one
38 - [hack] Grow shapes more correctly
39 - Array pointer modification functions (next, current, each etc) can be used on ArrayObject
40 - Eliminate ext_mbstring's dependence on ext_process
41 - Eliminate ext_mail's dependence on ext_process
42 - Use utf8 string literals in zend-html
43 - Don't allow abstract memoized methods
44 - [hack] Properly handle 'this' type for methods
45 - Fix lexing of "${fn()}"
46 - Fix lexing of #<?php
47 - [hack] Fix infinite loop in syntax error when closing a namespace
48 - Fix mispelling of COOKIE.
49 - Deal with self, static and parent constructors
51 "Nash" 16-Jul-2015
52 - Make ArrayData ref-count start at 1
53 - Remove the NOUSER define when compiling with MSVC, Cygwin, or MinGW
54 - Fix typos of `__MSC_VER` to be the correct value, `_MSC_VER`
55 - Shapes::removeKey(...) - remember the names of unset fields
56 - Shapes::toArray() - add .hhi
57 - Shapes::removeKey()
58 - Shapes::keyExists()
59 - Shapes::idx helper function for accessing optional fields
60 - Don't assume a scalar Map/Set initializer is an integer if its not a string
61 - Update mysqlclient library to 5.6.23 everywhere
62 - Port fix for php bug #48147
63 - Fixed #5475: ResourceBundle::getLocales('') don't return list of locales
64 - [hhvm][oss][frameworks] Add Smarty to Framework test runner
65 - Add in a facility to pool curl handles between requests.
66 - Fix xdebug trying to write to a nullptr std::FILE*.
67 - Fix bug when appending unaligned StringSlice
68 - Remove XDebug chrome support
69 - Incorrect return value from eval, Closure generated in first eval pass is returned in the second eval pass
70 - Stop throwing ints in xdebug
71 - CVE-2015-4663: Support verifying certificates on ssl/tls streams, enable by default
72 - Allow inlining immutable methods in non-repo mode
73 - Reusable TC
74 - Release some old hack design documentation
75 - Don't step into builtin functions in the debugger
76 - Support collections in array_map.hhas
77 - [hhvm] Make sure iteration of class_iterator actually stops
78 - [hhvm] Open source idx
79 - Add .hhas implementation of array_reduce
80 - Change memory layout for hni
82 "McQueen" 2-Jul-2015
83 - Add basic stream_socket_enable_crypto() client support
84 - [hack] Check types for class vars in decl mode as well
85 - [hhvm] Fix xdebug with multiple commands (and hopefully with PhpStorm)
86 - [hack][hhvm] Standard library for shapes - runtime support
87 - Fix date_create_immutable error state
88 - [hack] Include debug symbols in OSS build
89 - Update Hack Tools README to point to new OPAM Quick Install URL
90 - [hack] add color mode to Tty
91 - Update CMake/FindTBB.cmake for current Windows support.
92 - [hhvm][mac] Fix ext_ipc on Mac
93 - [hhvm][easy] Add README.md to php-octane
94 - [zoncolan] Missing cases to bring BW analysis at par with FW
95 - [zoncolan] Added "support" for reflection
96 - [zoncolan] Added support for XHP
97 - [hack][shapes] Anonymous shapes
98 - [hack][shapes] Structural subtyping for shapes proposal
99 - Fix some bugs in ext_servicerouter.cpp / ext_gatehouse.cpp
100 - [zoncolan] Added analysis of toplevel functions
101 - [zonconal] Adding shapes
102 - [hack] Infer types for constants in decl mode as well
103 - [hhvm] Enable JIT by default on Mac
104 - [hack] Format: Improve handling of comments in switch statements
105 - Make ObjectData ref-counts start at 1
106 - APC collection optimizations
107 - [Hack] Fix JSON escaping
108 - [hack] Make Typing_instantiate only work on decl ty
109 - use ...$args in invariant_violation()
110 - [hack] Make decl mode equivalent to partial + // UNSAFE
111 - [hhvm] Don't use libbfd in OSS build by default
112 - [hhvm][mac] Fix async mysql time calculation on Mac clang
114 "Lukather" 18-Jun-2015
115 - Check that the right operand of instanceof is not an enum
116 - Allow inlining static builtin methods
117 - Fix hhbbc not emitting RATs for public static properties.
118 - Fix overflow in array_slice
119 - Better error message for double quotes used in shape field names
120 - infer return type of floor/ceil
121 - Do not translate functions from units marked as interpret-only.
122 - Eliminate ldimm saveflags operand
123 - Allow folding the ideomatic hack callable wrappers
124 - Optimize NativeImpl
125 - Modify ReleaseVVOrExit to deal with VarEnvs
126 - Allow inlined 86ctors
127 - Fix folly build with Clang
128 - Re-fix region-prune-arcs assertion
129 - [mac] Fix crash compiling crc32 with Mac clang
130 - [mac] Use -force_load, not -all_load
131 - Don't constrain key or value for SetWithRefElem
132 - Remove IRBuilder::prepareForNextHHBC---just use exceptionStackBoundary
133 - Use HHBBC types to avoid generic IncRefs in Await translations
134 - Don't check for failed waithandles until after it wasn't finished
135 - Small tweaks to load-elim and store-elim tracing
136 - Support gvn for CountArrayFast
137 - Hoist fallbackccs above spills
138 - Variadic fixes for FCallBuiltin
139 - Proof of concept implementation of a "dump static strings to file" admin endpoint
140 - Sink VregKind and Bits into xls
141 - Specialize IncDecProp on integer object properties.
142 - Make collection initialization/destruction fast
143 - MixedArray data encoding microoptimization
144 - Micro-optimize json_encode
145 - Build HHVM with clang 3.6
146 - Fix deploy-to-tier under hg
147 - Optimized FCallBuiltin for max with 2 operands
148 - Add TargetProfile for Classes
149 - rds size logging tweaks
150 - Get rid of last frame creation site in MethodCache::handleSlowPath
151 - Lower hot Switch bytecodes into a series of comparisons
152 - typecheck for shape field names that start with numbers/are empty
153 - Remove typehint from Serializable::unserialize
154 - Switch the fatal error when compiling with MSVC to a warning.
155 - Better hhbbc types for SetOpElem, IncDecElem, and IncDecProp.
156 - Avoid __cxa_guard_acquire() in classof()
157 - Fix a bug in regionizeFunc causing some arcs to not be marked as covered
158 - Outline generic Inc/DecRefs that didn't see refcounted values during profiling
159 - use HNI return types in FCallBuiltin
160 - Make hh_server init message not linewrap on 80-column terminals
161 - Allow unset on array index expressions
162 - Add some precise_unions in memory-effects.cpp
163 - Move toplevel Vgen::emit() in vasm-x64.cpp
164 - Add HHI for Password
165 - Minor drive-by Func cleanup
166 - Fix bug when we run check type hoisting
167 - Get rid of local variable number in error message
168 - Deconflate preconditions and predictions
169 - Add HHVM README.md section on reporting security issues
170 - Fix memory leak in vasm-xls
171 - Revert D2067091 - "Don't ignore I<A> when declaring "extends I<A>, I<B>""
172 - Leave the TC an x64 ret when returning control from a resumed async function
173 - Remove exit placeholders before store/load elim and other passes
174 - Fix a bug in expand() for stack AliasClasses unioned with non-stack slots
175 - Add builtins to analysis
176 - Simplify CountArrayFast based on RAT array types
177 - Refactor packedArrayBoundsStaticCheck to return an enum
178 - Fix a load-elim bug when simplify() folds a CheckType into a Jmp
179 - Fix some problems with gvn on array instructions
180 - Rewrite JSON printer to use buffers instead of strings
181 - Make StringData::Make methods initialize the ref-count to one
182 - Remove unnecessary strcpy call in f_tempnam
183 - Selectively include DV inits and function bodies in the same region
184 - Add annotations to TransRec and use them for printing IR.
185 - Don't use strtok in trace.cpp
186 - Fix framework test runner options handling.
187 - Fix positional argument handling.
188 - More 4.9 build fixes
189 - Fix some hack errors.
190 - Check method preconditions at call sites and output errors and warnings
191 - [hhvm-lockdown] Improvements to serzialize_memoize_param
192 - Use md5 as key for scalar arrays
193 - Use static strings for special cases in serialize
194 - simplexml_load_file: check for null return from File::Open()
195 - Hoist CheckType
196 - Treat type aliases of classes like the aliased class in VerifyParamType
197 - Fix help string for optional arguments.
198 - Add ability to list tests and run a specific test to hphp framework suite.
199 - Fix some bugs with AliasAnalysis for stacks (bring back the stk_expand_map)
200 - curl: add support for CURLOPT_PROTOCOLS and friends
201 - Add curl_strerror
202 - Fixed single-line comments for mac
203 - Don't trigger a fatal error if MySQL wasn't required
204 - Use `mysql_config --socket` instead of mucking with paths
205 - Fixed SplPriorityQueue losing extract flags after clone
206 - `ConstructInstance` returns an exact type
207 - Fix test in OSS build
208 - Add Variant move assignment operators for various types
209 - Fix prologue counter used in irgen::emitFuncPrologue
210 - Add a runtime option to control the number of huge pages used for the text section
211 - HHVM parser support for new optional shape fields syntax
212 - LibDwarf shouldn't forcefully require LibElf
213 - Allow custom paths for pthread library when building Folly
214 - Update linker-script
215 - Peephole optimize away trivial copy2 sequences.
216 - Add ExitPlaceholders
217 - Increase hh_client auto-typecheck wait time
218 - Better register hinting
219 - memcpy rewriting
220 - Switch-related cleanup
221 - [HHBBC] Handle conflicting class/type-alias names in resolve_class()
222 - Miscellaneous optimization options for LLVM backend.
223 - Tune per arena lg_dirty_mult settings.
224 - Update CakePHP3 to 3.0.5
225 - Change test/run to discard line-comments in .opt files
226 - Fixed a memory leak in SplDoublyLinkedList's pop and shift methods
227 - Add $previous parameter to ErrorException::__construct
228 - Fix compile error in thread-safe-setlocale.cpp in clang.
229 - [hack] Allow anonymous functions to be subtypes of non-anonymous functions
230 - [hack] Don't print ANSI color sequences if output is not a TTY
231 - [hack] Format: Improve handling of XHP class members
232 - [hack] Don't add trailing comma to multiline function type hint
233 - [hack] Format: print colored diff output
234 - [hack] Add --patch option to hh_format
235 - [hack] Don't recurse infinitely on Tvar(x) -> Tunresolved[Tvar(x)]
236 - [hack] Have format code use Core library
237 - [hack] Fix up hh_json
238 - [hack] Don't assert false on unknown signals
239 - [hack] Avoid creating Tunresolved[Tunresolved[...]] in type unification
240 - [hack] Move instantiation of function tparams to Typing_phase.localize
241 - [hack] Update hackificator deploy script
242 - [hack] Don't run dfind in hack build tests
243 - [hack] Fail hard if initial heap size is too large
244 - [hack] Mock out logging when running tests
245 - [hack] Daemons should not print to the console
246 - [hack] Makefile: Sort dependencies alphabetically
247 - [hack] Fix crash with identifier named "namespace"
248 - [hack] Simplify HackEventLogger
249 - [hack] Add additional checks for implementing type constants
250 - [hack] Fix load script path lookup
252 "King" 4-Jun-2015
253  - [hack] Format: `function() {...}` instead of `function () {...}`
254  - [hack] Fix build with ocaml 4.01
255  - [hack] Daemonize the logging process
256  - [hh] typechecker: unify function terminality code for `noreturn`
257  - [hh] format: 'elseif' => 'else if'
258  - [hh] typechecker: remove Injectable deps
259  - [hhvm][oss][perf] Reduce checks in Implode
260  - [OSS Perf] Use FileCache for opendir() and readdir()
261  - Link with boost_context library.
262  - Rewrite store-elim as partial redundancy elimination
263  - [hhvm] Simple script for OSS repo mode
264  - add nullbyte detection to proc_open
265  - add nullbyte detection to shell_exec,exec,system,passthru
266  - optimize ini_get() for integer values too
267  - Add an option to enable hotcfg/wholecfg regions only for functions marked as hot
268  - [bootcamp][hh_client]strip current directory when printing errors to a tty
269  - [HHVM] [Lockdown] Fast Object <=> Array cast
270  - Do join/meet/widen/fixpoint for backwards analysis
271  - Add check and test case for interface attempting to implement
272  - Enable hotcfg region selector by default
273  - [hack] User attributes on typedefs
274  - Implement join meet widen etc for Forward_analysis_result
275  - Add a hotcfg region selector that prunes wholecfg-like regions based on profile weights
276  - Add support for errors, proof obligations, predicates and generic analysis summaries
277  - Move array_map() to HNI.
278  - [hh_format] Add support for Type Constants
279  - allow RescheduleWaitHandle to work for [0..PHP_INT_MAX] as priority
280  - Optimize str_replace(string, string, string)
281  - Make IR invariants hold after irgen; check an unchecked one; fix disabling DCE
282  - Fix an insert-asserts.cpp issue for critical edges
283  - Let load-elim track AFrame/AStack knownTypes across php calls
284  - Allow load-elim.cpp to insert phis when it can enable its optimizations
285  - Improve AliasAnalysis::may_alias
286  - Add a profile-guided code layout pass
287  - Support variadic builtins via FCallBuiltin
288  - Support "num args" extra parameter to HNI builtins
289  - [hhbbc] Fix generation of ConcatN opcode
290  - Add IR-gen support for VGetL of type Gen
291  - hphp admin, don't ask for password for some simple queries
292  - [hack] Reduce number of places where we call string_of_path
293  - [hack][format] Don't add trailing commas after variadic params
294  - [hack] Format: Handle XHP trait import syntax
295  - Fix various issues with gcc-4.9 build
296  - [hack] Format: Improve handling of XHP bodies
297  - [hhvm] Port thread-safe-locale
298  - Fix double free in stack trace handler.
299  - Fix fastcgi behavior with FixPathInfo=true and apache 2.4+mod_proxy_fastcgi
300  - Remove -fno-gcse option for clang.
301  - LibPng and LibJpeg are required to build the GD extension
302  - Create two separate tokens in translator-asm-helpers.S and remove ##.
303  - Add support for widening to Ai_analysis_result
304  - Introduce ARef class to load elimination
305  - [hh] typechecker: improve uninit property error messages
306  - [hh] typechecker: reconsider initialization rules for traits and abstract classes
307  - Don't warn when xdebug cannot connect to a remote client.
308  - [hhvm] Don't optimize out concat binops with potential side-effects
309  - Call zend_startup_strtod if zend compact is enabled.
310  - [hack][typechecker] Don't ignore I<A> when declaring "extends I<A>, I<B>"
311  - [hhvm] Support user attributes on typedefs
312  - Clean up func prologue APIs
313  - Fix token for <?=
314  - Fix SmartPtr-related PDO persistence bugs
315  - Update third-party - new Squangle
316  - Use GeneralEffects for InterpOne, ExitEffects for InterpOneCF
317  - Use GeneralEffects for iterator instructions
318  - Translate NullSafe FPushObjMethodD when the base is null
319  - Add a simple dbgp client for debugging HHVM
320  - Enable relocation and use ETCH_NAME in translator-asm-helpers on Mac.
321  - Make irgen Concat support more types
322  - Fix conversion order bugs in intepreter Concat operations
323  - [hhvm] Fix ExtraArg leak when an VarEnv used in the same ActRec
324  - Generate declarations for scan functions.
325  - Remove error when goto inside a finally jumps to a label inside it. Add error when goto in a try-finally has target crossing finally.
326  - Set pagezero size and .text.keep section executable on Mac.
327  - Cache time zone validity.
328  - Call zend_startup_strtod so ezc extensions can use zend_strtod.
329  - Provide a way for an analysis to control fixpoint detection
330  - Fix emitter bug with nullsafe property accesses on an sprop base
332 "Jobs" 21-May-2015
333  - [hhvm] Fix recursive ldap.h include on OS X
334  - [hhvm] Add cast in async mysql
335  - A little bit of thrift cleanup
336  - Fix some gcc-4.9 compatibility issues
337  - Remove comment referencing multi-line header support.
338  - Clean up AKExists(Arr|Obj) codegen
339  - [hack] Recheck changed files before responding to client
340  - [hack] Remove unused Typing_env stuff
341  - Fix the format of hash-crc.S to build on Mac and Cygwin.
342  - Add input validation to urimap2 step
343  - [hack] Fix OSS build
344  - [hack] Check types of declared methods/vars/consts in decl mode
345  - [hack] Require `?` in nullable decl parameters
346  - [hack] Disable test_load_script_lib
347  - [hack][load script] Complain if user doesn't seem to have much free space
348  - [hack][load script] Avoid spurious failures in dir creation
349  - [hack] Log the time it takes to recheck
350  - Remove Server.WarmupDocument option
351  - [hack] Remove Program.filter_update
352  - Async command support in xdebug
353  - [hh][typechecker] Add error for assigning to $this
354  - [hhvm] More globally remove the OS X `isset` macro
355  - [hhvm] Implement pipe2 compatibility
356  - Make regionizeFunc aware of region retranslation arcs
357  - AsioContext::exit should not copy its queues.
358  - [hhvm] More RequestTimer stubbing on OS X
359  - Use iterable queues in asio
360  - Use to scheduler to run the taint analyses
361  - Step 2 of Collections Migration
362  - Augment call graph with calls to default constructors
363  - Add prediction-based bytecode-level typechecks
364  - Track predicted types in the eval stack
365  - [hack] More logname tweaks
366  - [hhvm] Better error reporting in ext_hh_client
367  - [hhvm] We actually require boost 1.51
368  - Add UnownedAndNonNull tag for SmartPtr ctor that sets the refcount of a non null ptr to one.
369  - socket timeout support float
370  - [hh] Move handling of "this" type into Typing_phase.localize
371  - Fix XLS Vreg hinting
372  - Remove MEMORY_PROFILING and memory_profiling build flags.
373  - [hack] hh_client stop / restart should not fail if processes don't exist
374  - Add support for incremental analysis and outer fix points.
375  - Remove linter for XControllers with async names
376  - [hack][load script] Handle unicode characters in file names
377  - [hhvm] Add missing include for runtime.h in emitter.cpp
378  - Correctly clear the vector to fix crash in cmd_break.
379  - Fix lchgrp gid check and add warning as with chown
380  - Added stream filter wildcard support + added convert.iconv.* filter
381  - Fixed 'last day of this month' issue with DateTime
382  - fix right log tips while php file not exists
383  - Add contains_safe to the sparse-id-containers
384  - AMIStateAny needs killing in various places
385  - Make AliasAnalysis::expand more accurate
386  - Fix compact accelerated protocol PHP byte decoding
387  - Do not free the result of gethostbyname() to fix crash on Mac.
388  - Step 1 of Collections HNI conversion
389  - Fix some issues in insertAssertions
390  - Remove the *Logged() allocation apis since hhprof is dead.
391  - [hack][load script] Increase lock expiry time
392  - Fix get_called_class() call in BuiltinEnum::assert
393  - [hhvm/gdb] Learn how to read
394  - [hhvm/gdb] ArrayKind moved into HeaderWord
395  - Update constructors in Collection hhi files
396  - Add the Ref alias class
397  - [hack][format] Handle one-argument lambdas correctly
398  - Fix XLS liveness computation
399  - Fix ReflectionClass::getMethods filter with abstract methods and interfaces
400  - Include missing errno.h in afdt-util.cpp.
401  - Some cleanup to abi-x64.h
402  - [trivial] fix a few comments about rVmSp
403  - Remove remaining AdjustSP cases
404  - Add mode for identifying function callsites in source file
405  - [hhvm] No need to tell xargs to split on newlines
406  - [hack][format] Better handling of nested XHP
407  - Change hphp/test/run to use proxygen server for server mode
408  - Annotate which translation has loops in TC print
409  - [hack][lint] Add gen_slog warning
410  - Fix the hphpd "run" command with arguments
411  - Nix extra mov in func prologue guard
412  - [hack] Log the command-line arguments to hh_client
413  - [hack] Ensure client shuts down old connection before retrying
414  - [hhvm] Move around where hardware counters are turned off
415  - More accurate ReturnEffects
416  - heap-trace: Use mark byte in header instead of metadata.
417  - Fix catch block assertion in codegen
418  - Fix re-enter effects
419  - Partition members of RequestInjectionData
420  - Add a call map to the call tree type
421  - Remove ActRec::{kInvNameBit,hasInvName} (use the MagicDispatch flags instead)
422  - Add ATTRIBUTE_NORETURN to raise_error
423  - Use clang to add GC scan methods to classes.
424  - Change a handful of virtual methods to override.
425  - scan RequestEventHandlers
426  - Modify ColAdd{New,}ElemC spec/behavior to not require isCollection check
427  - [hh] Reduce error spew when typechecking anonymous functions
428  - Fix building gd extension with libvpx 1.4.0
429  - [hhvm] Change defaults for Hack/HHVM integration flags
430  - [hhvm] ext_hh_client should deal with non-JSON reponse from hh_client
431  - [HNI] NatveData classes should not extend Sweepable
432  - Move count into HeaderWord
433  - Kill WarnNonObjProp instruction
434  - Add a class to help debug optimizations
435  - [hack] Fix builtins_async_mysql type signature
436  - [hack] Log the *age* of the merge base, not the date
437  - Clean up the bits in ai.ml that call schedule code
438  - NativeData classes with sweep() methods shouldn't extend Sweepable
439  - Add support for %L[sdfC] to AsyncMysqlClient::queryf()
440  - Enable proxygen server by default in OSS HHVM builds
441  - [hack] Record the version of Jane Street's Core
442  - [hack] Add Result module from Core
443  - [hack] Simplify ClientStart code
444  - Swap the Kind & mark bytes in HeaderWord
445  - [hhvm/gdb] Better handling of memoized values from inferior
446  - [hhvm/gdb] Accept more expressions for single-argument commands
447  - Remove redundant if before inserting copy
448  - Create a scheduler to run analysis tasks
449  - [hhvm] We require boost 1.50
450  - Replace incorrect uses of AliasAnalysis::must_alias and rename that function
451  - Fix incorrect use of AliasClass::operator| in may_reenter
452  - Use HeaderWord in various utility headers
453  - make unboxPtr() work on any pointer type
454  - Use HeaderWord in ArrayData and subclasses
455  - Put collection reserves back into thrift.
456  - [easy] add POW tokens to BinaryOpExpression::outputPHP
457  - [hhvm] Fix test-context.h test
458  - [hack] Make load script lock blocking
459  - [hack] Remove redundant "already running" check
460  - [hack] Always start up server even for `--retries 0`
461  - [hhvm] OS X doesn't have or need -lrt
462  - [hack] Sketchy null check should fold unresolved types
463  - [hack] Have redundant-nullsafe check apply to property accesses too
464  - [hack] escape shell glob for find
465  - [hack] Fix ternary expression fake member handling
466  - Remove unnecessary stores of TInitNull in irgen-builtin unusualCatch
467  - Remove an AdjustSP in front of EagerSyncVMRegs
468  - Don't AdjustSP in prepareForHHBCMergePoint, remove the TRACE_PUNT about it
469  - Change kCrossCallRegs to not include rVmSp
470  - Put DFS struct in unnamed namespace in region-whole-cfg
471  - Allow test/run --wholecfg to run wholecfg
472  - Don't redefine stack pointers for inlined functions
473  - Make some hidden FramePtr dependencies explicit in the IR
474  - Rename FPAbsOffset to FPInvOffset
475  - Clarify DefInlineFPData::spOffset
476  - Remove one of DefInlineFP's StkPtrs
477  - Use a lot of ->func() instead of ->m_func for ActRecs in backtrace.cpp
478  - Change native.cpp's getInvokeName to return func->fullName()
479  - Don't require storing null to ActRec::m_invName at non-magic callsites
480  - Make all functions have AttrMayUseVV in non repo auth mode
481  - Fix some places where frames without AttrMayUseVV could get VarEnvs
482  - Fix an error message in get_defined_vars
483  - Turn ActRec flags into an enum to make it a little easier to extend
484  - Use ActRec::kNumArgsMask in funcPrologueRedispatch
485  - Add a unit test for a weird case with __call methods and constructors
486  - Remove rStashedAR
487  - Remove handleSRResumeTC entry point in enterTCHelper
488  - Don't redefine StkPtrs for HHIR call instructions
489  - Use HeaderWord in StringData
490  - [hack] Ternary expressions should not leak lenv changes
491  - Use HeaderWord in ObjectData and ResourceData
492  - Remove the 'zend' command from hphpd
493  - Track MixedArray capacity, hashtable size, and mask using m_scale
494  - Fix writing of null-characters in SessionHandler
495  - Add -latomic if needed in linking hhvm
496  - Fix tc-print's LLVM flag
497  - Fix rbp phis in vasm-llvm
498  - Add declarations for ResourceData comparison functions.
499  - Refactor HashCollection to work with a normal empty mixed array.
500  - Fix various runtime options
501  - Move tc-print tool to open source
502  - [hack][load script] Close fds when shelling out
503  - [hack][lint] Allow $_ as a param name
504  - [hh] typechecker: rename "cvar" to "prop"
505  - [hh] typechecker: tweak dynamic yield typing
506  - [hack] Factor out version checking logic
507  - [hhvm/gdb] AsyncFunctionWaitHandle has an m_children now
508  - [folly] Move Singleton out of folly/experimental into folly/
509  - HeaderWord for RefData
510  - Rename HeaderKind::Native->NativeData and Resumable->ResumableFrame
511  - Use root map manager for LDAP extension.
512  - Construct analysis schedule from call tree
513  - Fix findDefiningBlock
514  - Don't crash HHVM with null-byte-ridden DOMDocument paths
515  - Initialize collections with arrays
516  - [hh][typechecker] Move localize logic into its own files
517  - Fix exit service request for retranslations of the region entry block
518  - [hack] Allow destructing assignment of ConstVector
519  - [hack] Fix disabled build tests
520  - [hack] Remove last of the covariance hacks
521  - [asio] Introduce HH\Asio\{join,result,has_finished}()
522  - [hh] use ... unpacking instead of cufa in meth_caller
523  - [PDO] Fix double-free of SmartPtr
524  - [hh] Fix return type of ImmVector::fromKeysOf
525  - [libxml] Don't crash on invalidated arguments
526  - [hhvm][ini] Refactor Config::[Get|Bind] functions for ini migration
527  - Move Statement::KindOf and Expression::KindOf into Construct
529  "Irwin" 8-May-2015
530  - [hhvm] Optimization on array_slice
531  - [hhvm] Add Hack.Lang.AutoTypecheck
532  - [hh][typechecker] Move Expansion of Typedefs into Localize
533  - Add rvalue ref versions of cast functions
534  - Rename refcount-opts2.cpp to refcount-opts.cpp
535  - [xenon] Fix crash when unwinding
536  - MemoryManager API organization
537  - Fix memory-effects for LookupClsMethod
538  - Fix vasm jump optimization in presence of loops
539  - [libxml] DOMDoc/DOMAttr memory leak
540  - [hack] Remove cat_opts
541  - [hack] Remove h2tp's List_ext
542  - Switch to using Core_list
543  - [xenon] Integrate with stack frame metadata
544  - [hack] Have AI use Core_list instead of List
545  - [hack] Remove opt_fold_left
546  - [hack] Use the features available in 4.01
547  - Build call tree to use for scheduler
548  - [hack] Fix the month in our logs
549  - set_frame_metadata(): allocate local and disable dynamic calls
550  - [hack] Remove 3 second delay on small project startup time
551  - [hhvm][easy] Fully-qualify some names in ext_hh_client
552  - [hhvm/gdb] Use "new style classes"
553  - Update vasm-llvm for bindcall ABI changes
554  - Use cmpl instead of testl for surprise flag checks
555  - Remove StLocNT instruction
556  - Remove docjson hphpc option
557  - [parser] Use FunctionContext to store hasCallToGetArgs flag
558  - [hhvm] OCaml must be at least 4.01
559  - Shrink mixed-array by eliminating m_cap field.
560  - [hack] One more fix for `super`
561  - [hack] Remove variance hacks for Collections
562  - [hack] Static polymorphism check should fold unresolved types
563  - [hack] Stabilize TVar numbers displayed by hh_show()
564  - [hack] Remove Imm{Map,Set}::fromArray from hhis
565  - [hack] Deprecate Set::fromArray
566  - [hack] Add generics to Set::fromArray
567  - Make Proxygen server open source
568  - [hh] typechecker: check that parent::__construct is called
569  - Add support for setting some xdebug options from hdf.
570  - Update timelib version used by HHVM
571  - Fix implicit integer conversion in XDebugServer
572  - [hh][typechecker] Introduce Type "Phases" By Utilizing GADTs
573  - Simplify CFG by merging blocks
574  - [hhvm/gdb] Look up line numbers for PHP functions
575  - [hhvm/gdb] Implement `info asio' command
576  - [hhvm/gdb] Add asyncstk command for printing PHP async stacks
577  - [hack] Fix handling of `super` constraints
578  - Remove weird echo statement in test/run
579  - Support xdebug handling the Debugger.resume command in chrome debugger protocol
580  - Temporary workaround for EH problem in LLVM backend.
581  - Make getTyped return a SmartPtr.  Add deprecation message.
582  - Use signed int64_t for index in the AElemI AliasClass
583  - Don't differentiate between cloned closures and normal funcs using rStashedAR
584  - Make func-prologue-related unique stubs not use rVmSp
585  - Make the stack overflow helper not require rVmSp on the way in
586  - Remove the rest of the rVmSp uses in function prologues
587  - Don't use rVmSp in emitMagicFuncPrologue
588  - Fix a bug in method-statement that allowed __call to take named variadic params
589  - Don't use rVmSp for stack overflow checks
590  - Remove TranslArgs::dryRun
591  - Fix small leak of strings from UniqueStubs::add
592  - Add a way to read offsets from DecodedInstruction
593  - Make arm BackEnd subclass final
594  - Move emitTraceCall out of all the BackEnds, use an IR instruction instead
595  - Make a VpassTracer for vasm passes
596  - Allow unpacks in functions with call-by-ref args
597  - Thread hooks create expensive backtraces
598  - Update with patched LLVM.
599  - More scaffolding for building analysis schedules
600  - [hhvm][easy] Targeting 3.8.0
601  - Create phi nodes for vmfp when needed in vasm-llvm
602  - Add some missing dependencies in common
603  - Moar const correctness.
604  - Use SmartPtr in libxml
605  - Replace newobj with makeSmartPtr in asio.
606  - Catch and handle DataBlockFull exception during prologue generation
607  - Add another condition for simpleProp
608  - [hack] Deprecate Map::fromArray
609  - [hack] Add generics to Map::fromArray
610  - Add scaffolding for running and unit testing schedules
611  - [hh] typechecker: improve handling of invariant ... [2/2]
612  - [hh] typechecker: detect abstract static calls
613  - [hh] typechecker: improve handling of invariant ...
614  - Clean up call graph code and hide implementation
615  - buildURIMap2 actually generate PHP classes
616  - [hack] More logging for saved state
617  - [hh] Don't use unpack operator for MethCallerHelper if there are no args
618  - redis responseDouble returns false on error, not null
619  - Make call graph aware of class (static) virtual methods
620  - remove IR:CustomInstanceInit
621  - remove __init__ usage from SplPriorityQueue
622  - [hack] Touch file when something changes
623  - Simplify the DefLabel case in GVN
624  - [hhvm] Cache result of \HH\Client\typecheck
625  - Updated call graph with overridden virtual methods
626  - Add LLVMAttrs runtime option
627  - Move experimental/tupperware -> tupperware/experimental
628  - [hack] Only include .hhi files in our hhi.tar.gz
629  - simpleProp depends on clsSpec but doesn't constrain on it
630  - Add id<->root mapping interface to memory manager.
631  - Refactor StringData using 16-bit CapCode
632  - [hhvm] Simple implementation of phpinfo()
633  - Fix packed array detection in emitter
634  - Add some basic test coverage for live relocation
635  - [hack] Fix typo in lint URI
636  - [hh] typechecker: error on catch of non-Exception.
637  - [hack] Remove autogen of tokens hhi
638  - move Variant::unserialize to variable-unserializer
639  - Clean up cgCheckStaticBitAndDecRef
640  - move Variant::serialize() to variable-serializer
641  - Fix crash in FCallUnpack
642  - Extend the pos to method object map to include static methods and top level functions
643  - Convert PackedArray capacity to a 16-bit pseudo-floating-point format.
644  - Fix bug with closures in static methods
645  - fix_duplicate_fastcgi_header
646  - Clean up some SIMD instructions in LLVM backend
647  - Volatile loads for inc/dec.
648  - Add an option to only keep LLVM code if it's smaller than vasm
649  - [hh] typechecker:  deduce correct return types for '// decl' generators
650  - get Nast.method_ object corresponding to call graph target positions
651  - Use movups instead of movdqu in codegen
652  - [hh] typechecker: move responsibility for detecting generators to the parser
653  - added first rudimental tracing
654  - [create_function] Stop JITing per-request functions
655  - [hack] Add deprecated Vector::fromArray back to hhi
656  - [hack] Commit token updates
657  - json_of_t
658  - Add an HHI file for Transliterator
659  - GVN doesn't check supportsGVN when looking through DefLabels
660  - [hh] typechecker: check for `void` values used in function param expressions
661  - [hh] typechecker: remove 'allow_null_as_void' from typing env
662  - Remove litstr typedef
663  - Don't emit Switch bytecode for 1-case switches
664  - Updated the test cases so to be included in classes
666 "Harris" 23-Apr-2015
667  - Fix preloadRepo
668  - [asio] Two round enterContext()
669  - Handle emptiness correctly in arrElemReturn
670  - Turn off RecordSubprocessTimes by default
671  - Ability to attach metadata to a stack frame
672  - [h2tp] support parameter unpacking calls
673  - fix memory leak while parse ini file
674  - Stop the health monitor when the pagelet server stops
675  - Avoid some overhead dealing with NewCol
676  - [hhvm] Session: Preserve user save handler on session_destroy
677  - Fix mapping the shared area of RDS in Cygwin.
678  - Make ThreadManager initialization explicit, rather than load-time
679  - Fix fread on an SSL socket potentially waiting for data from socket when
680    OpenSSL already has data
682 "Gadd" 9-Apr-2015
683  - Add catch traces to PHP-level calls
684  - Run class initializers before ObjectData constructor
685  - Avoid crash when invoking error handler from RetC
686  - Call-time pass-by-reference is removed
687  - Add xdebug_var_dump
688  - Heap Tracer
689  - [ini] Bind more options of collection types
690  - [hack] Support static checks on double-quoted strings
691  - Scan all of RDS
692  - Partial HNI conversion of fb.idl.json
693  - [hack] Allow class constants to be treated as static strings
694  - [hh][typeconst] Add basic reflection support for type constants
695  - [hphpd] Re-enable disabled breakpoints if trying to set them again
696  - Support static property as foreach target
697  - [ini] Make getting settings that are containers act correctly
698  - Don't truncate regions to one bytecode in region-tracelet
699  - SmartPtr cleanup
700  - Don't attempt a Live translation after failing an Optimize translation
701  - Disable ext_string hasExactlyOneRef opts
702  - Add a dump-repo command
703  - More efficient functions for reading/writing via afdt sockets
704  - [hack] Make socket/logs world-writable
705  - [hh][typeconst] Forbid constants from implementing abstract type constants
706  - Fix an issue with inlining and unreachable code
707  - OBC HNI Conversion
708  - FBML HNI conversion
709  - [asio] Kill BlockableWaitHandle
710  - Merge collection types into header kind
711  - Disable LocalCopyProp and EliminateDeadCode in hphpc's preOptimize
712  - New refcount optimizations
713  - Make the new refcount opts pass the default (remove calls to the old one)
714  - Add a checkCfg pass that ensures each SSATmp is defined only once
715  - Restructure mark loop, fix a couple bugs
716  - Disable guard relaxation in wholecfg mode
717  - StringBuffer HNI conversion
718  - Using Linux perf mechanism to implement clock_gettime()
719  - Add perf based code relocation step
720  - Track sub process times in LightProcess
721  - Enqueue ambiguous pointers after filtering
722  - Allocate vxls spill space on demand
723  - [hhvm] Add hh_client extension and \HH\Client\typecheck()
724  - Implement bindcall in LLVM backend
725  - Remove zf2
726  - [hhvm] Improve behavior of hack lambdas for uninit vars
727  - Track the main hardware counters for light processes
728  - Use health monitor for pagelets
730 "Fry" 27-Mar-2015
731  - Fix Reflection: Variadic parameters not marked as optional
732  - Fix unnecessary dns lookups on startup of hhvm in non-server mode.
733  - Memset with AVX2 support
734  - Perform strict comparison for set() options array
735  - Re-executing a PDOStatement with MySQL doesn't work correctly
736  - Fix #4916 by using is_a() to check if the classname provided is valid
737  - Set the memory limit default to 16GiB
738  - Extend ZEND_GET_MODULE to present getModuleBuildInfo.
739  - Added NULL check on module->functions in ZendExtension::moduleInit().
740  - Fix reading Thrift's accelerated map when using compact protocol
741  - Support null-safe property lookups
742  - `unpack` should return an empty array for empty input
743  - ReflectionClass: resolve default prop values from updated cache
744  - Raise a cmake error if MySQL socket path can't be identified
745  - Fix infinite loop in hphpd's client->server connection logic
746  - [ini] Remove NoInfiniteLoopDetection
747  - Update HHVM to use jemalloc-dev
748  - Don't let odbc hang indefinitely
749  - Add support for nullable XHP attribute types
751 "Earle" 12-Mar-2015
752  - Fix some issues with the perf counters
753  - Conditionally enable pthread_mutex_timedlock emulation
754  - [hack] Run all declaration checks for builtin hhi files
755  - Improve the new refcount optimizer
756  - Improve return types of multiple HHIR opcodes
757  - [hack] Check for unimplemented abstract functions in decl mode
758  - Fix free of uninitialized ptr in GD
759  - Fix segfault in unserialization when referencing invalid array element
760  - Apply libmagic security updates
761  - Fix incorrect use of ArrayIdx on a map with constant int-like string keys
762  - Fix some bugs with reserved name (self, parent) restrictions
763  - Convert MySQLi to NPH
764  - [hack] Allow config whitelisting of <<UserAttributes>>
765  - [hack] Improve hackificator
766  - Avoid forming tracelets that can't have IR fully emitted
767  - Add patch and instructions for building custom version of LLVM
768  - Optimize ord()
769  - Clean up jit::Type methods and improve its behavior
770  - Make "Vary:" header more precise
771  - Match PHP's `use strict;` easter egg and add one of our own
772  - Add PowerPC64 arch-specific code
773  - Add support for noreturn return typehint
774  - Allow Bottom in the IR
775  - Support hot/cold splitting in LLVM-generated code.
776  - [hack] Add hh_client --list-modes
777  - [hack] Add various lint checks and improve lint logic
778  - Make __Deprecated('...') user attribute result in runtime warning
779  - [hack] Avoid timing out when list of errors is very long
780  - Improve interface method compat checks for Type Constants
781  - [hack] Add HHI for SQLFormatter
782  - [hack] Add HHI for mcrouter extension
783  - Support for visiting non-BlockableWaitHandles in debug_backtrace()
784  - Fix Switch-related bug in instrSuccOffsets
785  - Introduce simplifier tool
786  - Convert extensions to use SmartPtr
787  - Fix memory effects for a bunch of HHIR opcodes
789 "Ditko" 26-Feb-2015
790  - Make printf use HH\FormatString instead of FormatString (we're planning to
791    un-reserve \FormatString in a future version).
792  - Release the async mysql extension
793  - Release an async MCRouter extension
794  - FastCGI largely re-written; should fix several rare crashes
795  - Make sure that C++ method signatures match the HNI
796  - Make the typechecker be as strict about XHP classes as other classes. This
797    can be reverted by putting 'unsafe_xhp=true' in your .hhconfig
798  - The ZRANGEBYSCORE and ZREVRANGEBYSCORE need to take in start/end scores as strings
799  - [asio] Move cycle detection from BlockableWaitHandle to WaitableWaitHandle
800  - Add a StackTraceTimeout option to set the timeout for the backtrace handler.
801  - Define FOLLY_HAVE_PTHREAD_SPINLOCK (for ppc port)
802  - [hh_format] Change scoring function to match developers expectations better
803  - update libmagic CVE-2014-0236
804  - Fixes #4764 by adding a Redis::unwatch() method
805  - Disable external entity loading to SOAP WSDL files CVE-2013-1643 CVE-2013-1824
806  - [hhvm] MySQLi: Move mysqli class to NPH
807  - [hh] typechecker: use __Deprecated for DynamicYield
808  - zend initialization settings now work better
809  - optimize ord('static string')
810  - Reuse spill slots in vasm XLS
811  - Fix ImmMap::values() and ImmMap::keys() to return ImmVector
812  - Fix rare race between setting timeout and initializing thread locals
813  - Fix exception leak in tc_unwind_personality
814  - [hack] Fix load script time offset
815  - [hack] Restore hhi touch
816  - Create an IntervalTimer extension
817  - [hhvm] Pass eom flag to Transport::sendImpl
818  - [hack] Fix tmp dir creation
819  - [hh][typeconst] Fix Parser Bug for Type Constant
820  - Fix a bad bug in alias-analysis.cpp
821  - remove obsolete libevent patch
822  - Matched PHP's clowniness in long2ip()
823  - Modified StringData::shrink() to check against the capacity
824  - Backport PHP bug #54002 - crash in exif_read_data
825  - Fix hhvm number formatter fa_IR tests
826  - Better numa scheduling
827  - Reduce code size in crc hash functions
828  - Fix DebuggerDump serialization of keyless collections
829  - Fix persistent redis connection using unix socket.
830  - Fix segfault in mysql_escape_string without connection
831  - Remove logic for perfectvirtuals from compiler
832  - Implemented `hhvm-gdb` command and distribute gdb scripts
833  - Add missing static method ImmVector::fromItems()
834  - Don't cleanup RPC state in destructor if there's nothing to cleanup
835  - Fix object comparison bug in HHVM
836  - Fix Pair::{skip,skipWhile,take,takeWhile}() to return ImmVector
837  - explicitly null-terminate buffer for gethostname()
838  - Remove varray/miarray/msarray and ArrayTracer
839  - Make CryptoLocalKeychainLoader static data managed by folly::Singleton
840  - [hack] Allow Enum<arraykey>
841  - [hhvm][fastcgi] Fix use-after-free after FastCGI protocol errors
843 "Colbert" 12-Feb-2015
844  - Reduce size needed for reusable stubs
845  - Replaced uses of StringData::bufferSlice() with mutableData()
846  - [hhvm][ini] Provide mechanism to support collections of complex data structures
847  - [hhvm][ini] Support mysqli ini settings
848  - [hhvm/gdb] Enable hashing of strings w/o m_hash
849  - Fix Memcache::connect with unix socket
850  - fix bug #4727 with timezone_name_from_abbr()
851  - [hack] Deprecate is_integer, is_long, and other is_* aliases
852  - [hh] typechecker: check "inheritance" for class consts
853  - [hhvm] Move DOM extension to NPH
854  - [hh] typechecker: run (some) checks on abstract constants
855  - [hack] Deprecate join, split, and create_function.
856  - [hack][typeconst] Rework Type Consts to not use type defs
857  - [hhvm] MySQLi: Support isset() for result fields
858  - Fix memory leaks in CacheClient for getNextFinishedRequestID API
859  - Make access log %h behave more like Apache
860  - [hack] Recognize __Deprecated attribute on functions and methods
861  - [hhvm] get_resource_type of closed files is "Unknown"
862  - Implemented directives: variables_order&request_order
863  - Show meaningful closure names in backtraces
864  - [hh] typechecker: don't allow async blocks as lambda expressions
865  - Add HH\get_headers_secure
866  - [hhvm/gdb] Finish documenting GDB support
867  - [hhvm/gdb] Fix parts of `hhx' that got out of sync
868  - [hack][typeconst] Finalize Type Const syntax
869  - [hhvm/gdb] Add pretty-printer support for object properties
870  - [hhvm/gdb] Refactor lookup_func into component accessors
871  - [hhvm/gdb] Support {Fixed,Indexed}StringMap in `idx'
872  - [hhvm/gdb] Fix some bugs in `idx'
873  - [hhvm/gdb] Add rawtype() and rawptr() helpers
874  - [hh] add __Deprecated attribute wired to ReflectionFunction::isDeprecated
875  - [hh] hh_format: support abstract const syntax [2/2]
876  - [hh] h2tp: "support" abstract consts
877  - [hh] hh_format: support abstract const syntax
878  - [hh] typechecker: parse abstract const declarations
879  - [hh] typechecker: only look for __callStatic for static methods
880  - [hh] typechecker: fix references to `parent::constant`
881  - [hack] Allow subtypes in arithmetic modulo op
882  - Be more lenient in accepting extra ',' in icu date pattern gen.
883  - Accept image/png as a legal mimetype from ext_imagick.
885 "Ballmer" 29-Jan-2015
886  - Miscellaneous fixes for clang dev build
887  - Make gd-jpeg compatible with jpeg-9
888  - [hh] typechecker: parse array-string-keys within interpolated strings
889  - [hh] T_FINALLY is a standard token
890  - [hack] Add option to format PHP and decl files
891  - [hhvm][easy] Care a little less about paths in filter_input_array.php
892  - Add HH\Asio\curl_exec() as an awaitable \curl_exec()
893  - Implement IntlChar class
894  - Add imagesetinterpolation to gd extension
895  - Add per-branch cli option support to benchy
896  - [hhvm] Restore -g to cmake debug builds
897  - Fix ReflectionClass method ordering
898  - Allow slightly malformed serialized strings, because PHP
899  - Use parameter coercing rather than explicit cast with chr()
900  - [hhvm] MySQLi: Set fetched fields prior calling a constructor
901  - Move Editor plugins to wiki
902  - Remove $ENV config from FindMySQL.cmake
903  - Fix bugs in floor and ceil behavior
904  - "Fix" tvCanBeCoercedToNumber() for malformed numeric strings
905  - Add missing file constants; use HNI for some existing ones too
906  - Fix SmartPtr move constructor on Variant.
907  - Trim values in Accept-Encoding: header filed
908  - Add "Vary: Accept-Encoding" to reposnse header when compression is enabled
909  - Fix memory leaks in MySQL common and MySQLi
910  - [hack] Various fixes for hh_format
911  - [hack] Allow array-get syntax for KeyedContainer
912  - [hack] Remove _tags file for Ocaml 3.12 compatibility
913  - Fix docs for DecodeCufIter
914  - Install hphp/runtime/version.h during make install
915  - Fix leak on bitwise string operations
916  - Improve test run to checking $_SERVER/$_ENV
917  - Cloning exceptions should raise a fatal error
918  - Disallow destructor/clone method be static
919  - [hhvm] Add version binary
920  - Update exception classes, fixes #4442
921  - Add a system profiler and hook some actions of interest to New Relic
922  - [hphp] Added NumberFormatter locale/rounding tests
923  - Add llvm/vasm bytecode counters
924  - [hack] Add support for immediately-executed async lambdas
925  - [hack] Add --no-load option, make load script path relative
926  - [hack] Have hh_server invoke the load script
927  - Add TYPO3 Unit tests to the OSS framework parity check
928  - Array multi sort
929  - Fix some stability issues in the server tests
930  - Remove Redis::SERIALIZER_IGBINARY constant
931  - Produce easier to handle HHVM version identifiers
932  - Fix bizarre memory corruption on exit
933  - Add Hack typing for array_values
934  - remove vim editor-plugin
935  - [hhvm] Fix mysqli segfault
936  - [hack] Improve position info in member-not-found error
937  - Update third party hash for small libmbfl change
938  - [hh] typechecker: canonicalize function names
939  - Capture full line ending for single-line comments
940  - Add a bunch of async helper functions
941  - [hack] Add --strict/--loose option to AT converter
942  - Autocomplete - don't suggest methods that aren't visible when class isn't fully known
943  - [hack] Fix return-in-finally check.
944  - [hack] Fix OSS tests
945  - [hack] Avoid relinking all of hh when format_hack changes
946  - [hh] updated various hhi files
947  - [hh] typechecker: parse "true", "false", "null", "array" more correctly
948  - [hh] hack build: don't generate newv calls in buildEgo
949  - [xenon] Fix attribution of CPU time spent in the asio scheduler
950  - Add StructArrays
951  - Don't let GD create images that would exceed the request memory limit
952  - [hack] Set up proper test scaffold for hh_format
953  - [hack] Allow "$c[] = .." when $c is declared as a collection w/o type params
954  - [hack] Fix race in declaration of BuiltinEnum
956 "Austin" 15-Jan-2015
957  - [asio] Introduce ConditionWaitHandle
958  - [hack] `hh_server --version` should not require a root
959  - [hack] Log exceptions thrown in the master process.
960  - [hack] Enable unused var warnings under typing/
961  - [hh] typechecker: unbound name errors in partial/decl mode
962  - [hack] Disallow trailing comma in used trait list
963  - [hack] Have coverage / coloring use a hook
964  - [hack] Create lock file if it doesn't exist
965  - Fix std::terminate when debugger is not attached during unwind
966  - [hack] Make `trait ... extends ...` into a parse error
967  - [hack] Make multiple inheritance a parse error
968  - [hh] typechecker: support Enum in xhp attribute declarations
969  - [hack] Raise type errors on undefined static polymorphism lookups.
970  - Fix realpath lookup
971  - [hack] Let any user write to the saved state dir.
972  - [hack] Don't have an optional param that's an option type
973  - RequestInitDocument   404  friendly reminder
974  - Implement Phar::running()
975  - Make Redis utility methods public
976  - Contiguous Heap Prototype
977  - [hh_format] Don't add trailing commas in used trait lists
978  - [hh_format] Don't add trailing commas in template parameter lists
979  - [hh_format] Fix bug with hh_format --diff duplicating some lines.
980  - [hh_format] Don't destroy whitespace in files with "**/" in comments
981  - fix for iconv_mime_decode_headers function skipping headers
982  - Add CPU option for JIT (EvalJitCPU). Defaults to 'native'.
983  - Limit glob flags to only ones supported by php
984  - make recursion limit for unserialize
985  - Allow trailing commas in short-lamba expressions
986  - Fix some leaks in new_socket_connect
987  - fixed decoding utf8 strings so they correctly return '?' on invalid sequences
988  - Actually get the realpath first thing when searching for a file.
989  - Faster UnitCache
990  - Simple speedup for is_dir
991  - [hh] typechecker: demand consistent casing for primitive typehints
992  - Support timestamp begins and ends for getTransitions()
993  - Add global value numbering pass
994  - Support \u escape sequences in double-quoted strings
995  - ResourceLimit.SerializationSizeLimit can be overwriten from the vhost config
996  - Check Eval.JitAMaxUsage when deciding whether to start profiling a function
997  - Allow hex in mb_encode_numericentity
998  - [hhvm] Work around leak in boost flat_set
999  - Add stream_await() for async stream "blocking"
1000  - [typechecker] Add support for reading XHP attributes via "->:"
1001  - Modify rpoSortCfg to reduce memory usage in refcount-opts
1002  - Fix #4380, making get code and get message final
1003  - Add PHP_INT_MIN
1004  - Disable PGO for pseudo-mains
1005  - Mock date/time functions in Isolation.php
1006  - Fix error_get_last() not cleared when error handle function entered
1007  - [hhvm] RFC: Native Property Handlers
1008  - [hack] Define proper constants for CURLOPT and friends
1009  - Make newlines in http headers a fatal error.
1010  - Add Hack typing to array_keys
1011  - Use a custom implementation of strtoll for unserialize
1012  - [hack] control whether unseen <?php code is assumed via .hhconfig
1014 Z* 18-Dec-2014
1015  - Converted objprof extension to use heap parsing
1017 "Yelawolf" 4-Dec-2014
1018  - Fix comparison of overflowing strings
1019  - Fix potential memory corruption during ArrayData::set
1020  - Introduce util to restart current process
1021  - Share variable environment in eval'd assert
1022  - [Find] Only escape spaces in paths for find
1023  - Don't ignore Eval.JitAHotSize
1024  - Fix checkCfg's defined-tmp checks to be aware of edge-defined tmps
1025  - Fix bugs relating to edges in IRInstruction::become
1026  - Fix insertPhis calls to IRUnit::replace()
1027  - Use sha1sum for the repo-schema
1028  - [hh] typechecker: add constants to hh_client --show
1029  - [hack] Dump typedef info in `hh_client --show`
1030  - Make BigNode parsable, extend HeapIter to visit BigNodes.
1031  - Allow static invocation of DOMDocument::load* methods
1032  - Allow "array" with type args to be used in XHP attribute declarations
1033  - HTMLEncode strings in wddx_serialize_value()
1034  - [hack] Make dependency on lz4 optional for OSS build.
1035  - [hack] Have hh_server take the list of files to recheck as relative paths
1036  - [hack] Docblock parser for AT
1037  - Add version number to imagick extension
1038  - Support Authorization header in apache_request_headers()
1039  - [hack][build] Add needs_rerun hook for XController build step
1040  - Fix call to fetchObject without class name
1041  - Add possibility to create a DateTime object with timezone
1042  - DateTimeImmutable::createFromFormat returns false on failure
1043  - [hh] typechecker add PREG_* constants to hhi
1044  - Raise warning when put_contents on non-regular file with exclusive lock.
1045  - Use uncounted strings to cache non-static regexes
1046  - Use specializeExact whenever we know AttrNoOverride from whole program analysis
1047  - Fix some not-type-safe LdRef code generated in a situation with SetOpL
1048  - Split inner ref type checks into a separate instruction from LdRef
1049  - Add support for stream wrapper in include_path.
1050  - cmake option to enable avx2 instruction support
1051  - Add missing default to PharData::decompress()
1052  - [hack] Add lz4 compression when saving server state.
1053  - Fix leak in tvCoerce*
1054  - Trie Search - optimizations for JS
1055  - Don't throw an exception on unknown IP address for OSS
1056  - [hh] parity: match php 5.6 in treatment of array_fill with num = 0
1057  - Make ob_start function signature PHP 5.6 compatible
1058  - Fix issues with private properties and apc
1059  - Implement remaining straightforward vasm ops in llvm backend
1060  - [hack] Type strlen's return value.
1061  - [hack] add additional iterator interfaces
1062  - Improve segaddr fixing for 32-bit destructors
1063  - Fix parent::__cOnStRuCt and similar with PHP4 constructors
1064  - Make stats.json on the admin server return valid json
1065  - [hack] Simplify coverage JSON output, and add non-JSON output option.
1066  - Remove kernel version assertions
1067  - [hack] Fix bad escaping of directory names
1068  - [hack] Add some hhi constants for pcntl.
1069  - Fix problems in getCurrentPropertyOffset relating to m_ni.inputs
1070  - Fix CSE to be aware of where SSATmps are known to be defined
1071  - Add an analysis module for functions that query information about the IR
1072  - Don't JIT functions that use $php_errormsg or $http_response_code
1073  - Fix default SOAP HTTP client
1074  - [hack] Member access is `->` followed by lvar, not word
1075  - Fix comparison between doubles and hex numeric strings
1076  - Implement a bunch more vasm instructions in llvm backend
1077  - Enable ASAN for smart allocator
1078  - Record the start time for every request
1079  - Fix parsing of binary literals denoted with a capital '0B'
1080  - Fix Symfony's it's not safe to rely on system timezone setting errors
1081  - Allow non-static expressions in function parameter defaults
1082  - Fix a bug in Index::lookup_constraint
1083  - [hack] Add logging to server_options_cmd.
1084  - Fix optional 'errorcode' parameter is not set up properly
1085  - Fix PHP primitive default parameter type check
1086  - Weaken assert in FileUtil::canonicalize
1087  - [hack] Error when using "shape" as a type
1088  - Fix getOldestStartTime
1089  - Add zlib.output_compression ini option
1090  - Add missing argument to DOMXPath::{query,execute}()
1091  - htmlentities() should output valid ISO-8859-1 characeters to appropriate entities
1092  - Remove bad assert from BaseVector::data()
1093  - Cleanup sock and pid files on graceful exit from FastCGI
1094  - [hack] Add script for determining server startup options
1095  - [hack] Record init time in log output.
1096  - Fix some bugs in intersecting specialized types
1097  - [hack] Fix duplicate unbound name errors
1098  - Update OCaml to 4.02.1
1099  - [hhvm] Add per kind ArrayFunc counters for ArrayTracer
1100  - Fix use-after-free in the access logs
1101  - Wait for clean shutdown on SIGHUP
1102  - [hhi] add at() to MysqlRow in hhi file
1103  - [memoize] Go back to individual cache props for statics
1104  - Break regions after FCall & friends when using LLVM
1105  - Remove support for magic quotes (also removed in PHP 5.4)
1106  - qlzcompress is not available everywhere, and there's no support for it in OSS
1107  - Change the Profiler constructor to not necessarily force CPU affinity.
1108  - Add getTypeText to ReflectionParameter
1109  - Remove trailing junk from IP addresses for sockets
1110  - Preserve index of sockets passed into/out-of socket_select()
1111  - Fix lchown when no user found
1112  - [hh] typechecker: split function bodies into named and unnamed
1113  - [hack] fix error with capturing locals for a foreach using a ref
1114  - guess root from supplied filename, where that makes sense
1115  - Show a nice error when an invalid argument is passed to hphp -t
1116  - Expose Imagick::getImageMimeType to userland
1117  - SplFixedArray::FromArray() throws InvalidArgumentException not Exception
1118  - Make default_socket_timeout match PHP 5.x
1119  - VerifyRetTypeC optimizations for repo-mode
1120  - Turn off refcount opts by default when HHIRBytecodeControlFlow is on
1121  - Make profiled packed array gets not rejoin the main line
1122  - Side exit on surprise flags for backward jumps
1123  - Print edges with colors in IR dot graphs; make dotBodies usable
1124  - Fix region-method support for loops
1125  - Correct the return type of BaseG; fix some missing renames of Mem -> Memb
1126  - Adopt PHP7's looser handling of return values in user session handler
1127  - Honor the Redis timeout
1128  - Fix mysqli_options. Stop asserting.
1129  - Fix some bugs in hhbbc support for http_response_code, php_errormsg
1130  - Introduce immediately executed async lambdas
1131  - Allow nested namespaces with sane behavior
1132  - Updated win32-cygwin patch Fixes Issue #4062
1133  - [hh] typechecker: ReflectionClass hhi fixup
1134  - [hack] Add hh_server --version
1135  - Fix a few memory management issues in DOMDocument
1136  - Prevent m_nextKI from going negative in MixedArray
1137  - [hh] typechecker: declaration location in extend_final error
1138  - [hack] Enable .hhconfig to control hh_server flags
1139  - Respect status codes from `Status:` header in addition to `HTTP/` header
1140  - Fix number_format() to deal with very large precisions/very large numbers
1141  - Fix closure use var reflection for referenced vars
1142  - Support self parameter typehint
1143  - [h2tp] modify build to support h2tp
1144  - [hh] hh_format: understand async lambdas
1145  - [hack] added support for abstract class constants
1147 "Xzibit" 20-Nov-2014
1148  - Fix readline request locals
1149  - Don't leak HashContexts
1150  - Fix a race freeing an APCHandle
1151  - Don't clean up memory in AdminRequestHandler::abortRequest
1152  - Fix setup/teardown for requests handled by WarmupRequestHandler
1153  - Extend IR type system for more information about pointers
1154  - Use proxygen as a git submodule
1155  - Version of memcpy-x64 optimized for the tail end of 7,6,5,4 bytes in an N byte copy
1156  - Eliminate default cases in DataType switches
1157  - Match PHP5 backquote processing
1158  - Add overflow info to is_numeric_string
1159  - Add support for pre-built branches to benchy
1160  - Allow calling closures inline
1161  - Allow systemlib function declarations to use reserved words for function names
1162  - Add HH\{int,float,bool} typehints to PHP
1163  - Deep initialization for constant properties
1164  - Enforce void return on native class constructors/destructors
1165  - Replace NEWOBJ with newobj<T> and newres<T> functions
1166  - Change default FCGI socket permissions
1167  - Support openssl replacements which don't export RANG_egd()
1168  - Fix use-after-free in TimeZone
1169  - Support GCC/LLVM stack-smashing protection
1170  - Make sure Type::Bottom is a subtype of everything
1171  - Fix hphpd crash when printing systemlib classes
1172  - Convert file extension to HNI
1173  - Convert DOMDocument extension to HNI
1174  - Convert POSIX extension to HNI
1175  - Convert array_multisort to HNI
1176  - Add fribidi extension for HHVM
1177  - Mechanism for enabling request-local heap profiling
1178  - Make prediction opts deal with arbitrary load/check instructions
1179  - Add JSON output support to benchy
1180  - HHIR pass to do dead store elimination on frame locals
1181  - Adjust single parameter warnings for min()/max()
1182  - Make AlwaysLogUnhandledExceptions=off and CallUserHandlerOnFatals=EnableHipHopSyntax
1183  - Always use RuntimeOption::SourceRoot to resolve repo-auth lookups
1184  - Refactor debugger tests
1185  - Fix parser to allow "type" and "newtype" to be used as typevars
1186  - Convert system/idl/function to HNI
1187  - Remove type annotations for array_sum and array_product
1188  - Don't populate the litstr-to-id map in RepoAuthoritative mode
1189  - Move m_lineTable to a side table
1190  - Only try to autoload classes with valid names
1191  - Proper PDO connection errors
1192  - Move hfsort linker script tool to OSS
1193  - Move slow 'quick' tests to 'slow'
1194  - Add option to make inconv actually match the docs
1195  - Convert socket extension to HNI
1196  - Convert stream extension to HNI
1197  - Fix UserFile::access behavior to match PHP5
1198  - Fix for wrong PATH_INFO and PATH_TRANSLATED (maybe)
1199  - Move generated .h and .cpp to unique dir
1200  - Fix for phat:// stream wrapper with no stub
1201  - JSON encode closures as empty objects for PHP compat
1202  - Disable parameter typehints for builtins to match PHP5
1203  - Convert PDO extension to HNI
1204  - Fix assert related to async return typehints
1205  - Allow collections in array_sum() and array_product()
1206  - Use the time in default xdebug output file
1207  - Allow vxls to allocate vmsp during traces
1208  - Only initialize sweepables on new threads
1209  - Load Offset->line number mappings on demand
1210  - Fix SOAP memory leak
1211  - Add OSS support for benchy
1213 "Will.i.am" 13-Nov-2014
1214  - Add benchy.py for benchmarking HHVM
1215  - Tune and enable PGO for all functions
1216  - Generate HHIR opcode table by extracting lines from ir.specification
1217  - Convert a few more extensions to HNI
1218  - Limit the maximum number of bytecode instructions in a region
1219  - Improvements to <<__Memoize>>
1221 "Vanilla Ice" 27-Oct-2014
1222  - Fix logging
1223  - An async method's return annotation (if there is one) must be "Awaitable"
1224  - Fix a bug in how __Memoize sets up FPI regions
1225  - Fix issues with shutdown/postsend functions
1226  - Fix is_callable for interface and abstract methods
1227  - Added support for ReflectionFunction::getClosureThis()
1228  - Add option to run perf to hhvm_wrapper
1229  - Use a global cache for timezone info
1230  - Implement readline_info()
1231  - Fix NumberFormatter::format for string values
1232  - Corrected socket connect for IPv6 hosts
1233  - [hack] Fix parsing of postfix operators.
1234  - Region selector improvements
1235  - Disallow <<__Memoize>> on interfaces
1236  - Convert APC to HNI
1237  - Align recoverable fatal error's message with PHP
1238  - [hack] Make hhi for some builtin constants.
1239  - HHBBC improvements (enums, etc.)
1240  - Properly shutdown debugger threads on exit
1241  - [hack] support for 'abstract final' classes
1242  - Convert string to HNI
1243  - Fix SOAP extension type encoding
1244  - make test runner not puke when run with xargs
1245  - [hack] reflection support for first-class enums
1246  - Make `yield;` a valid statement
1248 "Ultramagnetic" 9-Oct-2014
1249  - Optimize strtr
1250  - Closure::bind support
1251  - Cleanup/shrink various runtime data structures
1252  - Various jit performance optimizations
1253  - Fix various debugger crashes
1254  - Better handling of memory limits
1255  - Hack: System user attributes will be prefixed with __, notably <<Override>> renamed to <<__Override>>
1256  - Hack: Support for 'abstract final' non-instantiable non-inheritable "utility" classes
1258 "T-Pain" 25-Sep-2014
1259  - Use vasm virtual registers in x64 backend, transition fully to vasm-xls
1260  - 'arraykey' scalar typehint that accepts both ints and strings
1261  - Add OSS benchmarking suite
1262  - Fix PDO::bindColumn
1263  - [resumable] Set resumed flag before suspending VarEnv
1264  - Objprof for HHVM (Approx. instance counter)
1265  - Make RUSAGE_THREAD available to getrusage PHP function
1266  - clean up /tmp/test-run- files
1267  - VASM register-coalescing via hinting
1268  - Be more conservative about HNI types when there are InterceptableFunctions
1269  - Add runtime support for null-safe method call operator "?->"
1270  - Add sanity test system to OSS benchmarker
1271  - Fix double deallocation of object in zend conversion of object to string
1272  - [hhvm|memoize] Makes <<__Memoize>> work with arbitrary args
1273  - Use raw troff encoding for official HHVM man page
1274  - Add --php options to HHVM man page
1275  - Fix GMP tests/crashes
1276  - Implement posix_errno
1277  - Xdebug remote debugging compatibility and bug fixes
1278  - Add options parameter to DOMDocument::load/loadHTML()
1279  - Add support for GNU tar symlinks to PharData
1280  - Add max_file_uploads support
1281  - Improve process error checking in perf runner
1282  - posix_getgrgid()['members'] should be empty array if no users found
1283  - Convert from jemalloc's obsolete *allocm() to *allocx()
1284  - Use EqX instead of Eq for Obj/Num comparisons.
1285  - make class closure consist with PHP
1286  - Fix guard relaxation to work with bytecode control flow
1287  - Allow vm-stack flushing in rpc threads
1288  - stop killing LightProcesses while writing out stacktrace.log
1289  - Get hhvm compiling with clang-3.5
1290  - Update .hhi files for ConstSet, Set, and ImmSet
1291  - Force the linker to keep symbols in lowmem on MacOSX
1292  - Make guard relaxation work with unreachable code
1293  - Add minimal hdf support to test runner
1294  - Analyze/optimize pseudomains in hhbbc
1295  - [hhvm|memoize] Fix segfault on certain memoized functions
1296  - Support mappy ini configuration
1297  - Xdebug cleanup and trivial features
1298  - Abort the server if a request gets stuck
1299  - Added support for Closure::bind()
1301 "Snoop Dogg" 11-Sep-2014
1302  - VASM phase 1: emit vasm instructions, with existing register allocation
1303  - More xdebug support
1304  - [hack] Implement async lambdas.
1305  - add process memory and code segment size to admin memory page
1306  - Overhauled xdebug remote debugging testing
1307  - Add a mechanism for building and testing a zend extension as a DSO.
1308  - Support fast object allocation path when Eval.EnableObjDestruct call is on
1309  - Static string table memory usage
1310  - Implement parallel repo preloading.
1311  - Add mcrypt constants to hhi
1312  - Move var_dump() to HNI, kill off variable.idl.json
1313  - JIT: Use std, boost, and folly instead of smart containers.
1314  - Hack: Support for variance (+/-) annotations on type-parameters
1315  - Implement APCIterator
1316  - Convert v?s?printf() to HNI using Variadics
1317  - Enable variadics for HNI functions/methods
1318  - Smooth a wrinkle in HHVM's safesort impl
1319  - Make Set implement KeyedIterable and support bracket syntax for reading
1320  - Covariance fixes
1322 "RBX" 28-Aug-2014
1323  - Make MemExceeded flag sticky
1324  - Check for OOM during json decoding
1325  - Check surprise flags when unserializing arrays and objects
1326  - Limit curl timeout to remaining request timeout
1327  - Add variant of openssl_pkcs7_verify that ignores cert expiration
1328  - Numerous changes to support xdebug
1329  - Remove use of non-threadsafe strtok()
1330  - Numerous changes to normalize INI setting names
1331  - update to new sqlite
1332  - <<__Memoize>> support
1333  - Hack: Print backtrace when worker dies
1334  - Parser support for "varray(..)"
1335  - Introduce kVPackedKind for vector-like arrays
1336  - Move mailparse to HNI
1337  - VASM start phase 1; emit vasm for some instructions
1338  - Fix in headers defines for cygwin
1339  - [hack] Parser: Fix decl mode's confusion of type hints and xhp.
1340  - Create a unified stack for Xenon
1341  - Move debugger from IDL to HNI
1342  - Fix mcrypt_create_iv(..., MCRYPT_RAND) to auto-seed RNG
1343  - Fix information leak in hash_equals() implementation
1344  - don't statically link libgcc/libstdc++ by default on OSX
1345  - Adds ssdeep module to HHVM
1346  - added new raise_error family functions that skip the top frame of the backtrace.
1347  - Add initial support for -d outside of --php mode
1348  - Fix covariance for Const{Vector,Map,Set}, add tests
1349  - GMP cleanup/fixes
1350  - Implement SplDoublyLinkedList::add
1351  - Link against LLVM library if present.
1352  - Disallow multiple 'default:' blocks in a single switch
1353  - Introduce async function lambdas
1354  - Document the PHP profilers
1355  - Fix sample profiler output; make it more efficient
1356  - Properly shut down fastcgi worker threads when connection is closed
1357  - Delete SimpleProfiler
1358  - Create HHVM man page
1359  - Improved PHP compatibility in the reflection API.
1361 "Queen Latifah" 14-Aug-2014
1362  - Implement RecursiveCallbackFilterIterator
1363  - cmake installations should no longer put files in hphp and now put them in hhvm
1364  - Fix error for (Recursive)CachingIterator::ctor's param 1
1365  - Force OOM check on large smart allocations
1366  - Support stream wrappers in XML parser extensions, add external entity loader
1367  - Fix LowPtr load in codegen
1368  - Fix race condition in DebuggerProxy start/stop
1369  - Log per request if oom or timeout triggered in dynostats
1370  - Break out hhvm request timeout / memout counters for psp vs non-psp
1371  - Support collections for third parameter of preg_replace() and friends
1372  - Added functions imagewebp and imagecreatefromwebp
1373  - Fix mb_convert_case when encoding set other than default
1374  - Added function imagepalettecopy to ext_gd
1375  - Remove reflection hacks for primitive typehints
1376  - Fixed tempnam() creates paths with '//'
1377  - Add LibGMP extension
1378  - Fix heap overflow in sql_regcase() for input >1GB
1379  - Add HHVM hookups for folly::Singleton
1380  - Fix isset on classes extending ArrayObject
1381  - Only track live objects that actually have destructors
1382  - Specify ssl cipher list for curl with OpenSSL only
1383  - Remove support for "service threads"
1384  - PDO MySQL's getCode() didn't match errorInfo
1385  - Run usercode before ending the request
1386  - Make DynamicExtensions work in ini
1387  - Provide backup utf8 sanitizer when UConverter is unavailable
1388  - Pass duplicate flag to SNI Initial Handler Callback
1389  - fb_intercept now accounts for variadic functions
1390  - Add variadic function to fb_intercept test
1391  - Implemented basic xdebug tracing
1392  - Rename snappy methods
1393  - Add sort_flags to ArrayObject::asort
1394  - Changed CRYPT_BLOWFISH to 1 because apparently it is available
1395  - Convert ext/mysql to HNI
1396  - Add log when memory usage reached the MaxRSS
1397  - Fix http headers parsing + Remove unused code + Fix indentation
1398  - Fixed error output for json_encode
1399  - Corrected the var_dump output for Exception class
1400  - Relax restrictions on the typing of class constant shape field names.
1401  - Fix file:// URL decoding in libxml functions and elsewhere
1403 "Public Enemy" 31-July-2014
1404  - Interface requirements (similar to trait requirements) enforced
1405  - Initial support for PHP5.6 argument unpacking: f($x, $y, ...$args)
1406  - Hack: hhi files are embedded in the hh_server binary
1407  - removed trampolines and the Eval.JitTrampolines option
1408  - Hack: improved support for Generators, including async generators
1409  - Documentation of PHP-level profiling in doc/profiling.md
1410  - Cleanup of PHP-level profilers
1411  - Change default for Eval.EnableObjDestructCall to true
1412  - Bundle PCRE 8.32 with open-source HHVM, so we can use the JIT
1414 "Outkast" 17-July-2014
1415   - PHP_VERSION is now 5.6
1416   - Introduce Dbl specific relational IR opcodes
1417   - Expose APC info to admin port
1418   - Improve Zend compatibility in the reflection API
1419   - Implement xdebug_call_class
1420   - Hack: first version of formatter
1421   - Convert ext/xsl to HNI
1422   - Hack: improve init time
1423   - Remove JIT::RuntimeType
1424   - Fix floating-point overflow for binary, octal and hex literals
1425   - Collections: Vector::addAllKeysOf
1426   - Hack can build on OSX now
1427   - Fix await/yield operator precedence
1428   - Fix various xcontroller issues
1429   - Enable HHIRBytecodeControlFlow by default
1430   - Various changes/fixes to WholeCFG region selector
1431   - Introduce async generators
1432   - Kill clock_settime
1433   - Fix Memcache::get($keys) when $keys is an array
1434   - Implement xdebug_call_function
1435   - Change order of wait handle processing from FIFO to LIFO
1436   - Add Redis::_serialize()
1438 "Notorious B.I.G." 25-Jun-2014
1439  - Remove Translator::analyze (replaced by tracelet region selector)
1440  - Allow empty keys in hash_hmac() and hash_hmac_file()
1441  - Interface requirements supported in parser
1442  - Implement xdebug_{peak_,}memory_usage
1443  - Inline singleton-pattern functions
1444  - Cleanup in PhpFile and FileRepository
1445  - Fix mysqli_query return value for query without result
1446  - Implement xdebug_call_file
1447  - Add fastlz support to memcached extension
1448  - Fix ini_get to return false for non-supported settings
1449  - Fix PHP version constants
1450  - All numeric comparisons involving NAN, except != and !==, are now false.
1451  - Implement xdebug_call_line
1452  - Optimize ini_get
1453  - Remove dump-file-repo admin command
1454  - Fix stdclass promotion of static private properties
1455  - Remove unused locals in global dce (HHBBC)
1456  - Get mockery at 100%
1457  - Fix casting resource to object
1458  - Relocate code to arbitrary alignment
1459  - Always let the first character through for camelcase searching
1460  - Implement xdebug configuration options
1461  - Convert ext/memcache to HNI
1462  - Match php5's memcache getoption
1463  - ./configure --help now has all the options
1464  - mysqli: return false on non-selects
1465  - Don't include bt_handler or killpg in backtraces
1466  - Don't buffer overrun on bad DNS TXT records
1467  - Fixed property access to DOM and XMLReader classes
1468  - Add support for ParamCoerceModeFalse
1470 "Mos Def" 11-Jun-2014
1471  - Turn on new tracelet region selector by default; analyze() is deprecated
1472  - Fix a bug in debugBacktrace with NativeImpl methods
1473  - Request local allocator now uses logarithmically spaced size classes
1474  - Improvements to JIT'd FCallBuiltin to cause fewer spills
1475  - Enable vtable-style dispatch on methods marked "abstract"
1476  - JIT several instructions that were being punted:  Unbox, File, Dir
1477  - Increase "hinted drop" time on write lease, improving JIT'd code layout
1478  - Implemented __toString functions in reflection classes
1479  - Several tc-print bug fixes
1480  - Some improvements in hhbbc arithmetic type inference
1481  - More service requests are "ephemeral", reducing wasted stubs space
1482  - HH\Vector now has a packed array internally, for O(1) conversions to array
1483  - current() and key() now support expressions that can't be taken by reference
1484  - Fix a long-standing but very rare race condition with Closure class names
1485  - gcc 4.8 is the new minimum to build
1486  - Various bug/compat fixes in Soap, SimpleXML, ArrayObject, DOMNode, mysqli
1487  - Add a scheme to extend support for efficient packed arrays w/ cap up to 2^32
1488  - Move vmfp, vmsp, and vmpc into RDS
1489  - Fix some hard-to-hit bugs in inlining relating to stack overflow checks
1490  - Faster int to double conversion when calling builtins from the JIT
1491  - Fix ReflectionParameter::getClass for scalar typehints
1492  - better tuning of the PGO 'hot function' threshold
1493  - performance improvements to calling native class methods
1494  - improve performance of async functions that exit via exception
1495  - several bug fixes in refcount optimization pass relating to async functions
1496  - More hhir-related docs in the hackers-guide
1497  - Initial support for relocating generated machine code
1498  - JIT optimizations for count()
1499  - Corrected the result of var_dump and print_r for ArrayObject
1500  - fix HH\autoload_set_paths with nested maps
1501  - make ReflectionClass serializable
1502  - ext/standard/output HNI conversion
1503  - allow usage of zend-qsort in user sorts with a runtime option
1505 "LL Cool J" 28-May-2014
1506  - Over 200 other bug fixes (go lockdown!)
1507  - Every HDF setting is now available as INI
1508  - Cut session_id() size by 1/2
1509  - Added 'Z' format string for pack/unpack
1510  - We now build on clang
1511  - Fix pcre cache to not fatal when full
1512  - Implement $php_errormsg
1513  - Adding -n CLI option to hhvm php mode
1514  - Fix substitution of invalid UTF8 sequences in htmlspecialchars
1515  - FastCGI: Use SCRIPT_FILENAME as the PHP script to run
1516  - Can create DateTimeZone's from abbreviations
1517  - Put all fastcgi params into $_SERVER
1518  - Many DOM classes are now serializable
1519  - Define the xhp tokens
1520  - Many reflection changes for perf and compatibility
1521  - Default fastcgi to listen on 127.0.0.1
1522  - remove register_cleanup_function
1523  - Map: reserve()
1524  - Set: retain(), reserve(), addAllKeysOf()
1525  - {Set|ImmSet|Vector|ImmVector}::fromKeysOf()
1527 "Kanye West"
1528   - Backport fix for CVE-2011-2202
1529   - Interfaces {Keyed}Container match arrays *and* collections, not iterables
1530   - Added ** and **= operators to HHVM and more compatibility fixes with PHP5.6
1531   - Fixes and improvements to collections
1532   - Replace json decoder with json-c library
1533   - Document VMRegAnchor and isVMFrame()
1534   - Improvements to array iterator code
1535   - Improvements to the type checker
1536   - Allow parser to be generated with bison 3
1537   - Improvements and speed up to reflection code
1539 "Jay-Z" 9-May-2014
1540   - Make handling of code.hot overflows more robust
1541   - Catch server errors sooner
1542   - Fix segfault and infinite recursion in fileinfo extension
1543   - Resolve systemlib constants at compile time
1544   - Resume resumables natively
1545   - Import round() table optimizations from php-src
1546   - Delete bytecode Peephole optimizer
1547   - Remove most of annotation.cpp, and some other code gated on !UsedHHBBC
1548   - Create phis for locals
1549   - Fix free of "" in rfc1867PostHandler
1550   - Add firstValue(), firstKey(), lastValue(), lastKey() to collections
1551   - Add concat() to collections
1552   - Clarify Hack license
1553   - Add CakePHP3 to test runner
1554   - Better error when TC is full
1555   - Add hash_equals() from PHP 5.6
1557 "Insane Poetry" 24-Apr-2014
1558   - Support for PHP 5.6 variadic ...$args syntax for func declarations
1559   - Open source HHMeasure, a simple and extensible microbenchmarking tool
1560   - Added a new time-based sampling profiler (Project Xenon)
1561   - Fix PCRE unicode handling
1562   - Convert Zend compatibility layer and various extensions to HNI
1563   - Encode execution mode (eager or resumed) into SrcKey
1564   - Merge eager and resumed parts of async functions
1565   - Rework various async / continuation bytecode instructions
1567 "House of PHPain" 1-Apr-2014
1568   - Allow direct arg passing with up to 15 params (7 if at least one is a double)
1570 "Ghostface Killah" 17-Mar-2014
1571   - Remove "HipHop" from error messages
1572   - Add __IsFoldable user attribute for const-foldable functions
1573   - Add __Native("NoFCallBuiltin") UA for builtins which need an actrec
1574   - Add support for testing different outputs in repo mode
1575   - Implement remaining functionality from intl extension
1576   - Implement XSL extension
1577   - Implement Stream Filters
1578   - Improve php.ini support and get ready to kill HDF files
1579   - Parse config files as ini files, unless filename contains '.hdf'
1580   - Various fixes to Redis, JSON, SPL, DateTime, MySQLi, and others
1581   - Remove C<T>Ref typedefs (use const T& now)
1582   - JIT default on in command line mode
1583   - gethostname() just returns what the syscall returns (Zend compat)
1584   - HHBBC turned on in the build for facebook.com
1586 "Fifty Cent" 3-Mar-2014
1587   - Array parameter type constraints implicitly cast collections to arrays
1588   - Fix issues with feof and fwrite
1589   - Fix issues with sleep and inaccessible properties
1590   - Dump a jemalloc pprod dump when a request hits OOM
1591   - Make method_exists work with interface inheritance
1592   - Fix crash in preg_replace with /e
1593   - Support filename and content type in Curl uploads
1594   - MySQLi fixes
1595   - Handle relative paths in is_dir
1596   - Add string conversion for array_fill_keys
1597   - Implement various Imagick functionality
1598   - Implement CUROPT_PROGRESSFUNCTION
1599   - Implement PHP 5.6 __debugInfo() magic method
1600   - Raise warnings when return type annotations mismatch
1601   - Fix nested ArrayObject assignment
1602   - Switch many ini settings to thread-time binding
1603   - Clean up memory stat tracking
1604   - Immutable collections are now prefixed with Imm instead of Fixed/Frozen
1605   - Clean up type parameter for CheckType-related IR opcodes
1606   - Remove legacy linear-scan register allocator and Eval.HHIRXls option
1608 "Eminem" 18-Feb-2014
1609   - reenabled jemalloc tcache flush for idle threads
1610   - array_combine now performs __toString conversion on objects in $keys
1611   - Allow streams in move_uploaded_file
1612   - Fix a bug double closing a UserFile
1613   - Warn when first arg to call_user_func is an object with no __invoke
1614   - kill userland hdf functions
1615   - Final method reports itself as final
1616   - Implement IntlCalendar
1617   - Disallow create_function in RepoAuthoritative mode
1618   - Case-insensitive check for Accept-Encoding: gzip
1620 "Donald Glover" 3-Feb-2014
1621   - Support for "::class"
1622   - Enable FCallBuiltin for HNI functions
1623   - json_decode parity with PHP 5.4
1624   - Fix race condition with profiling vs. non-profiling functions prologues
1625   - Implement ini_get_all()
1626   - Begin conversion of runtime options to INI
1627   - Fix potential PGO-mode crash
1628   - Fixes and enhancement in IR printing
1629   - Vector and Set now supported by:
1630     array_{shift,unshift,fill_keys,reverse,flip,size,chunk}, min, and max
1631   - StableMap is now an alias for Map, which retains insertion order
1632   - Map moved to HH namespace
1633   - Fixes in XLS spilling of SIMD registers
1634   - Support SCRIPT_FILENAME in FastCGI
1635   - Implement stream_context_{get,set}_default
1636   - Support for Intel VTune Amplifier XE
1637   - Rewrite of SimpleXML
1638   - Several HNI conversions, and a helper script
1639   - Move Pair to HH namespace
1640   - Fix get_included_files ordering
1641   - Fix $_SERVER and $_ENV in FastCGI
1642   - Update timelib to php 5.5.8
1643   - Some dead code removal
1645 "Coolio" 21-Jan-2014
1646   - Turn on Region JIT
1647   - FastCGI fixes, perf improvements
1648   - ext_zend_compat fixes
1649   - Turn on XLS Register Allocator by default
1650   - Fix server stats reporting
1651   - 'num' scalar typehint that accepts both ints and floats
1652   - fix support for typedef'd namespaces
1653   - don't swallow fatals when autoloading
1654   - Map collections learned the in-place retain() and retainWithKey()
1655   - rename Set::difference() to Set::removeAll()
1656   - Update Set to retain element insertion order
1657   - remove APC stats
1658   - Fixes for ARM mode
1659   - FrozenMap collection
1660   - Deprecated Vector|Set|Map::put() method removed
1661   - == between Frozen{Vector|Set|Map} and {Vector|Set|Map} now can return true
1663 "Beastie Boys" 6-Jan-2014
1664   - Support lex-time binary constants (eg. 0b10111)
1665   - StreamWrappers now support rmdir, mkdir, rename and unlink
1666   - Miscellaneous PHP5 compatibility fixes
1667   - Default StatCache to off
1668   - Miscellaneous FastCGI fixes
1669   - Miscellaneous region compiler fixes
1670   - Map and StableMap collections use the same underlying implementation
1671   - Trait requirements enforced
1672   - hhprof performance improvements
1673   - Add array to string conversion notice
1674   - Add RaiseNotice IR opcode
1675   - Fix VirtualHost.<name>.Pattern matching
1676   - Fix various memory leaks (pdo_parse_params, Gen*WaitHandle)
1677   - Import a lot more Zend tests that used to crash or hang
1678   - Clean up base.h
1679   - XLS register allocation cleanup
1680   - Enable region compiler by default for JIT functions in ahot
1681   - Fatal on eval() in RepoAuthoritative mode
1682   - Enable LTO for HHVM
1683   - Fix a few SPL compatibility issues
1685 "Appleseed" 23-Dec-2013
1686   - Fix issues with DOCUMENT_ROOT in fastcgi
1687   - Better type inference for collections and builtins in repo mode
1688   - Shorter syntax for lambda expressions w/ automatic captures
1689   - Parser support for trait require clauses
1690   - Move FrozenVector and Set to the HH namespace
1691   - Fix resource to array conversion
1692   - Fix a request local memory leak in foreach of apc arrays
1693   - Initial php_odbc API implementation
1694   - Implement PHP's hash_copy() function
1695   - Experimental tool: Memoization Opportunity Profiler
1696   - Various small parity/behavior fixes (in phar, proc_open, filter_var)
1697   - A Eval.DumpHhas=1 option to dump hhas for a php file
1698   - Better warnings in Set::toArray
1699   - Fix the behavior of foreach loops in finally blocks
1700   - chmod -x runtime/vm/jit/*.{cpp,h}
1701   - Changes to make hhvm build clean with clang-3.4
1702   - Fix array_product to not be bug-compatible with PHP 5.2
1703   - Change the Map datastructure---preserves order and does faster foreach
1704   - FrozenSet collection
1705   - Generate pid.map when we unmap text section, for the perf tool
1706   - Implemented GlobIterator
1707   - Implemented Reflection::export and Reflection::getModifierNames
1709 "Tom Yum" 9-Dec-2013
1710   - support date.timezone in ini files
1711   - implement fileinfo
1712   - special comparisons for DateTime
1713   - delete unimplemented functions
1714   - support for the finally clause in try blocks
1716 "Huarache" 26-Nov-2013
1717   - Linker re-ordering of hot functions
1718   - Huge pages for hot functions
1719   - Implement ZipArchive
1720   - preg_replace /e support
1721   - get_mem_usage() no longer can be negative
1722   - Userland file system support
1723   - Implement fileinfo extension
1724   - wordwrap() fixes
1725   - PDO::sqliteCreateFunction()
1726   - Implement NumberFormatter
1727   - Implement Locale
1728   - Implement DatePeriod
1729   - Many reflection fixes
1730   - Stub out PharData
1731   - A ton of performance fixes
1732   - A ton of open source framework fixes
1733   - FastCGI Server Support
1735 "Garlic Alfredo" 11-Nov-2013
1736   - teach implode() about collections
1737   - fix ini parsing leak
1738   - Make array not an instanceof Traversable
1740 "Burrito" 28-Oct-2013
1741   - Initial support for using FastCGI
1742   - Initial support for php.ini configuration files
1743   - Log when a nullable (e.g. ?int) is incorrect
1744   - Add support for collections to array_diff, array_diff_key, array_intersect,
1745     array_intersect_key
1746   - tc-print improvements and fixes
1747   - Several debugger fixes
1748   - More improvements to the experimental PHP extension compat layer
1749   - Fixed how parse errors are handled by eval()
1750   - Support custom reason for status header
1751   - Emit better error message when hhvm's systemlib doesn't load properly
1752   - Fixes / clarifications added to the bytecode specification
1753   - Lots of other bug fixes, clean up, PHP compat fixes, and JIT improvements
1755 "Sausage" 14-Oct-2013
1756   - Direct invocation of callable arrays: $f = [$cls_or_obj, 'method']; $f()
1757   - ASAN clean
1758   - Support dynamically loadable extensions
1759   - Support loading mini-systemlibs from extensions
1761 "Tabasco" 30-Sep-2013
1762   - Fix issues with __toString() functions that return non-string values
1763   - Don't allow mock classes to extend collection classes
1764   - Smarter memory allocation and scheduling for NUMA systems
1765   - Improve profiler performance in the jit
1766   - Fix several Zend compatibility issues
1767   - Fix several bugs uncovered by ASAN
1768   - Add collection support to array_keys, array_values, and array_combine
1769   - Return a set-like array from Set::toArray
1770   - Add to(Vector|Map|StableMap|Set) methods to collections
1771   - Collections convert to boolean false when empty
1772   - get_class_vars invokes the autoloader when necessary
1773   - Rework the Zend compatibility layer to be more robust
1774   - Allow traits to implement interfaces
1775   - Support arbitrary expressions inside empty()
1777 "Bobotie" 16-Sep-2013
1778   - HNI (HipHop Native Interface) for calling C++ functions from PHP
1779   - Fix PropertyAccessorMap::isset
1780   - Expose more POSIX constants
1781   - Fixed behavior of stream_get_contents when default args are used.
1782   - Implement str_getcsv, and fix some fgetcsv related issues.
1783   - [IPv6] Fix stream_socket_recvfrom & stream_socket_sendto.
1784   - [IPv6] Fix socket_sentto_recvfrom_ipv6_udp Zend compatibility.
1785   - Optimize closure invocation and __invoke (~3x faster to invoke)
1786   - Import gettext extension
1787   - string and object allocation optimizations (reduced memory usage for both)
1788   - Import YAML extension
1789   - Import ftp extension
1791 "Kimchi" 2-Sep-2013
1792   - Fix order of custom attributes and visibility in ctor arg promotion
1793   - Implement CachingIterator
1794   - Implement RecursiveCachingIterator
1795   - Generalized heuristic for choosing when to inline in the jit
1796   - Introduced a Zend compatibility layer to compile extensions
1797   - Imported calendar extension
1798   - Use gcc-4.8.1 by default
1799   - Improve hhvm command line parsing logic
1800   - Fix register_shutdown in session_set_save_handler to match PHP 5.4
1801   - Add "native" functions for use in Systemlib
1802   - PHP extension source-compatitblility layer
1803   - Fix ArrayIterator constructor PHP compatibility
1804   - Enable building against libmemcached 1.0.8
1805   - Debugger: $_ not cleared but still printed after exception
1806   - Fix clone of SplPriorityQueue
1807   - Debugger: Fix bugs when multiple threads hit the same breakpoint
1808   - Fix several namespace bugs
1809   - Several PHP compatibility fixes for ArrayObject and ArrayIterator
1810   - Fix list assignment with collection literals
1811   - support "tuple(...)" in initializer expressions
1812   - HHVM should compile with libmemcached 1.0.9+
1813   - Support "(new Vector {..})->method()" style syntax
1814   - use trigger_error in PHP for Redis user errors
1815   - multiple simplexml fixes
1816   - fixed serialize/unserialize for SplObjectStorage
1817   - Implement ReflectionParameter::IsCallable()
1819 "Achiote" 19-Aug-2013
1820   - Async stack traces in the debugger via the "wa" command
1821   - Fix late static binding in static closures
1822   - Fix breakpoints on generators
1823   - Add SplObserver and SplSubject interfaces
1824   - Update Iterable interface and add toArray() method
1825   - Allow __get for undefined properties
1826   - Implement get_included_files()
1827   - Limit use of huge pages
1829 "Churrasco" 05-Aug-2013
1830   - Implement stream_is_local
1831   - Implement read support for .phar
1832   - Implement assert with string arguments
1833   - Implement RecursiveArrayIterator
1834   - Implement php_strip_whitespace()
1835   - Support for timeouts in cli mode
1836   - Closure allocation optimizations (~2x faster to allocate a closure)
1837   - Implement Redis session handler
1838   - New memory profiler, hhprof, with pprof compatible output
1839   - Update isset($string[$k]) and empty($string[$k) to PHP 5.5 semantics
1840   - Fixed a few parser bugs
1841   - Fixed a few bugs with token_get_all()
1842   - Fix (string)$obj semantics when __toString() is not defined
1844 "Tamale" 22-Jul-2013
1845   - Optimize vector-shaped Arrays (arrays with keys in range 0..size-1)
1846   - Enable HHBC by default in debug builds
1847   - Implement SplObjectStorage::getInfo()
1848   - Initial rough draft of xhpast2, a replacement for xhpast
1849   - fix compilation on Ubuntu 13.04
1850   - OSX changes, next round
1851   - Modify PHP's ext/standard/math/tests/(pow|abs).phpt to be HHVM friendly
1852   - add XHP comment syntax based on http://www.w3.org/TR/REC-xml/#sec-comments
1854 "Wasabi Peas" 08-Jul-2013
1855   - always_assert when we run out of TC space
1856   - Initial changes to get HHVM compiling on OSX
1857   - Consolidate ObjectData and Instance
1858   - Prototype heap tracing framework & Heap profiler
1859   - Better JIT code generation for Mod and Div
1860   - Fixes to enable compilation with clang
1861   - Support for yield k => v
1862   - Make HHVM's command line parsing closer to PHP
1863   - Implement Redis extension
1864   - Implement LimitIterator from SPL
1865   - add SessionHandler from PHP 5.4
1866   - Numerous Debugger fixes and new developer docs for Debugger
1867   - Ported many extension tests to PHP