HHVM 4.153.3, 4.167.1, 4.168.1, 4.169.1, 4.170.1 and 4.171.0 are released! 4.167.1 is the last release in 4.167 branch, while 4.168 - 4.170 remain supported, as does the 4.153 LTS release.

Note that HHVM 4.153.2 is also released accidentally, but it does not include any meaningful change since 4.153.1.

These releases fixes an issue introduced in 4.153.0 (commit). When combining with another commit introduced in 4.168.0, it leads to a segmentation fault when building a bytecode repository for repo-authoritative mode in gcc built HHVM. Earlier releases are not affected.

Highlights

  • HHVM 4.171.0 includes the fix for repo mode, which is also back-ported to all supported HHVM versions (issue, commit). The fix makes it possible to migrate the command line flag for building a bytecode repository to --inputs from --ffile, which was dropped in HHVM 4.167.
  • The following features are now considered preview features with an ongoing release, i.e. allowed by the runtime, but not the typechecker:
  • Added ReflectionClass::getModule() (commit).
  • Added ReflectionModule::getDocComment() (commit).
  • Added HH\classname_from_string_unsafe to convert a string into a lazy class (commit).
  • HH\embed_type_decl now supports repo mode (commit).

Breaking Changes

  • The thrift extension now requires clearTerseFields functions in generated code (commit). Regenerating Hack files from the thrift definition with the latest thrift compiler would provide the required clearTerseFields functions.
  • The following hh_server flags are renamed:
    • --enable-global-write-check-functions is renamed to --enable-global-access-check-functions (commit);
    • --enable-global-write-check is renamed to --enable-global-access-check-files (commit).