HHVM 4.20 is released! This release marks the end of support for 4.14; 4.15-4.19 remain supported, as do the LTS releases 3.30 and 4.8.

HHVM 4.20.1 was released to fix a build issue related to the new Rust parser on Mac OS X. All Linux builds for 4.20.1 are identical to 4.20.0.

Highlights

We are rewriting parts of our code from OCaml to Rust. This should not cause any user-facing changes. The 4.20 release adds a new parser written in Rust, which you can test by adding hack.lang.hack_compiler_use_rust_parser=1 to hhvm.ini . If you see any differences in behavior or other issues, please open a GitHub issue.

to . If you see any differences in behavior or other issues, please open a GitHub issue. A new command hh_client --rewrite-return-type <filename> is now available to help with migration from partial to strict mode. It adds <<__Soft>> type annotations based on inferred return types.

is now available to help with migration from partial to strict mode. It adds type annotations based on inferred return types. Invalid method calls on reified generic types now throw a BadMethodCallException instead of causing a fatal error.

instead of causing a fatal error. A new function fb_intercept2() was added as a replacement for fb_intercept() .

was added as a replacement for . A new function fun_get_function() was added.

Breaking Changes

HH_FIXME[4110] has been replaced with several new, more specific error codes. HHAST 4.15.2 provides an automated migration: hhast-migrate --migrate-fixme-4110 <path> (this migration adds the new FIXME s without removing the old ones - after upgrading to HHVM 4.20, the old FIXME s can be removed with hh_client --remove-dead-fixmes ). The Hack Standard Library and other Hack libraries all provide a new release that works on both HHVM 4.20 and previous HHVM versions.

has been replaced with several new, more specific error codes. HHAST 4.15.2 provides an automated migration: (this migration adds the new s without removing the old ones - after upgrading to HHVM 4.20, the old s can be removed with ). The Hack Standard Library and other Hack libraries all provide a new release that works on both HHVM 4.20 and previous HHVM versions. Using attributes on variadic arguments ( <<Attrib>> ...$arg ) is now a parser error.

) is now a parser error. We are no longer building packages for Ubuntu 14.04 (Trusty Tahr).

Future changes