HHVM 4.15.0
HHVM 4.15 is released! This release marks the end of support for 4.9; 4.10-4.14 remain supported, as do the LTS releases 3.30 and 4.8.
Highlights
- IDE integrations now show docblocks for namespaced functions.
- Fixed an issue that could lead to CLI server clients hanging on exit in some Linux environments.
- Improved typing of
noreturnmethods.
Breaking Changes
- Untyped variadics now raise type errors; replace with
mixed ...$foo. inoutparameter types are now invariant - both co- and contra- variant. They were previously incorrectly treated as contravariant.instanceofis now a parse error. In 4.14.x, it was not a parser error, but no longer refined types. In HHAST 4.14.x,hhast-migrate --instanceof-iscan be used to replace expressions of the form$x instanceof Foowith$x is Foo, and expressions of the form$x instanceof $some_expressionwith\is_a($x, $some_expression).
Future Changes
- In a future release, all support for calling functions by-reference will be
removed. Typechecker enforcement can be enabled now with the
disallow_byref_calls=true.hhconfigoption. - Support for
"${foo}"will be removed, and can be replaced with"{$foo}";hhast-migrate --dollar-brace-variable-migrationcan be used to migrate code, and thedisable_outside_dollar_str_interp=true.hhconfigsetting can be used to enforce this immediately.