HHVM 4.145 is released! This release marks the end of support of 4.137; 4.138, 4.139, 4.140, 4.143, 4.144 remain supported, as do the 4.102 and 4.128 LTS releases. 4.141 and 4.142 were cancelled due to the holiday season.


  • Support throw on dynamic, e.g. function foo(dynamic $d): void { throw $d; }
  • Attributes on class constants do not result errors any more (assessing the attributes via runtime reflection is still not yet supported)
  • The built-in function gethostname is now a pure function.

Breaking Changes

  • Raise the typing error 4068 on ?mixed and similar if they’re in a type hint position, including f<?mixed>() or new C<?mixed>().
  • Reject calls in l-value position, such as (foo($x))[3] = 'a' or (bar($y))[] = 45.
  • The built-in function curl_multi_exec now requires int as the second parameter.