HHVM 4.57 is released! This release marks the end of support for 4.51; HHVM 4.52–4.56 remain supported, as does the 4.32 LTS release.
- We no longer build packages for Ubuntu 16.04 (Xenial), Debian 8 (Jessie), and Debian 9 (Stretch). Building from source is also no longer supported on systems with GCC 6 or older, or with OpenSSL older than 1.1.0.
- Docker images are now based on Ubuntu 20.04 instead of 18.04.
- Attempting to declare the
__callis now a parser error. It had already been a typechecker error, but now it is also a fatal error at runtime.
- The typechecker no longer declares
FormatStringin the root namespace (
- Fixed a bug where accessing an instance variable of a
dynamicvalue could cause the typechecker to report an error with primary position in a different file. This doesn’t introduce any new errors but may require some
HH_FIXMEs to be moved.
- In a future release, the internal representation of function/method
references (i.e., the values returned by
inst_meth()) may change.
- Currently, the internal representation is a string (for functions), or an array (for methods). In the future, this will likely change to a native function/method reference type, incompatible with string/array. Any code that relies on the current internal representation (e.g. by passing a function reference where a string is expected) will need to be fixed.
- It is already a typechecker error to use function/method references in
place of string/array values, so the change only affects runtime behavior
of code that uses
HH_FIXMEto squelch the typechecker error.
- The INI option
hhvm.enable_func_string_interop=0can be used to test the new behavior now.