HHVM 4.38 is released! This release marks the end of support for 4.31; 4.32–4.36 remain supported, as does the 4.8 LTS release.

The 4.37 release was skipped due to the holiday season.


  • Added SA_RESTART to SIGVTALARM flags, allowing operations such as flock to continue when interrupted by some profiling tools, instead of failing with EINTR.
  • Changed typechecker definitions of base64/url/rawurl encode/decode functions to return string, rather than untyped data. They already always returned strings in the runtime.

Breaking Changes

  • building with readline now requires -DNON_DISTRIBUTABLE_BUILD=ON to be passed to cmake; editline remains supported as the default implementation, and this does not affect our builds. In custom builds, hphpd and the PHP readline-related functions may switch to using editline instead of readline.
  • using assignments as an expression is now a typechecker error. This can temporarily be disabled by setting the disable_lval_as_an_expression=false .hhconfig option; this option will be removed in a future release.