HHVM 4.126 is released! This release marks the end of support for 4.120; HHVM 4.121–4.123 remain supported, as do the 4.80 and 4.102 LTS releases.
HHVM 4.125 was cancelled due to issues with the release candidate builds.
hh_client --lint FILEis now supported, including several type-aware linters. There is not currently any configuration or suppression available; please join us in Slack to discuss potential integration approaches.
- Debian 11 (Bullseye) is now supported.
- Updated to a newer version of Timelib, fixing support for newer timezone databases; in some environments, some transitions would be missing.
aschecks will now invoke the autoloader if required instead of failing.
- Improved build system reliability and performance for Hack components used by the runtime (e.g. the parser).
- Added the
Locale\create(string $locale): Locale\Locale
Locale\modified(Locale\Locale $base, Locale\Category $cat, string $new): Locale
Locale\c(): Locale\Locale(likely to be renamed to
Locale\set_native(Locale\Locale $locale): void
Locale\ functions are intended to be a replacement for the
setlocale() built-in, and to interoperate with future changes to the
We discourage changing the native locale in most cases (either with
or with the new
Locale\set_native()) as it can have unexpected results, such as
changing the output of
Str\format(), or translating exception messages raised
by some builtins which should usually end up in logs that are read by
developers/administrators instead of users. We have included it to provide a
migration path for existing users of
setlocale(), and because it is desirable
in some cases, especially CLI tools.
- Ubuntu 20.10 (Groovy) is no longer supported, as it reached end of life in July.
Str\HSL functions will start throwing
InvariantExceptionwhen invalid offsets or lengths are passed. We strongly recommend against catching either of these exceptions.
- In a future release, it will be an error to iterate over most forms of
objects; this can be tested now with the
hhvm.throw_on_iteration_over_objectsINI setting. Set to
1for a notice to be raised, or
2for an error.