HHVM 4.92 is released! This release marks the end of support for 4.83; HHVM 4.84–4.91 remain supported, as do the 4.56 and 4.80 LTS releases.
(Note: HHVM 4.85, 4.89 and 4.90 were skipped.)
- If a class A is a supertype of class/interface B via
require extends, it is now able to call its’ own private methods on instances of B.
- Replaced sometimes-confusing “expected dynamic, got nonnull” with clearer
“expected dynamic, got mixed”. While
nonnullwas technically accurate (as
?nonnull), some users misinterpreted the error as meaning that
nullwas expected, or still consider
mixedvalues to be
mixedafter a null check.
- Corrected error line number for reified generic errors; FIXME comments may need to be moved.
APCIteratorclass has been removed from the runtime, as it has generally not been kept up to date or correct, and was not exposed to the typechecker.
apc_cache_info()now correctly returns an
uncounted_entrieskey instead of
- Calling methods on
dynamicvalues requires that all values are coercible to
dynamic, and the return type will be
- it is now a syntax error to declare a function as
Awaitablereturn type; previously this was separately checked by the type checker and the bytecode emitter, and the typechecker did not detect invalid async lambdas.