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