HHVM 4.99 is released! This release marks the end of support for 4.93; HHVM 4.94–4.98 remain supported, as do the 4.56 and 4.80 LTS releases.
- IDE support (LSP) now recognizes XHP attributes, enabling features like go-to-definition and hover to peek definition.
- The typechecker now raises an error in some previously undetected cases where a class inherits multiple conflicting definitions of the same type constant. These had already been runtime errors, but previously some cases wouldn’t be caught by the typechecker.
- See updated documentation for more details about how naming conflicts are resolved.
- The built-in classes
Throwableno longer have their methods marked as
<<__Pure>>. This means that exceptions can no longer be thrown from other
- The affected methods are annotated with the “pure” (empty) context list, so exceptions can still be thrown from similarly annotated pure functions.
- In the future, we expect the return type of
meth_callerto change from
__SystemLib\MethCallerHelperto a native function reference type. This shouldn’t affect normal usage, but may affect edge cases like serialization. Notably, the new values cannot be stored in APC.
- The INI option
hhvm.emit_meth_caller_func_pointers=truecan be used to switch to the new format now.
- Separately, the INI option
hhvm.forbid_meth_caller_apc_serialize=1can be used to raise a warning when values in the old format are stored in APC, without switching to the new format. Setting it to
2will throw an exception instead of the warning.
- The INI option
- The built-in attribute
<<__Pure>>will be removed in a future release. It has been replaced by contexts and capabilities.