HHVM 4.95 is released! This release marks the end of support for 4.87; HHVM 4.88–4.94 remain supported, as do the 4.56 and 4.80 LTS releases.

(Note: HHVM 4.89 and 4.90 were skipped.)


  • Fixed an issue where overriding a type constant from a parent class/interface could cause a runtime error even if the code passed the typechecker (example).
  • Fixed various typechecker error messages incorrectly referring to a type constant as “property”.
  • The SOAP extension now supports proxy authentication (new options proxy_ssl_cert_path, proxy_ssl_key_path, proxy_ssl_ca_bundle).

Breaking Changes

  • The builtin function debug_backtrace() now returns arguments (the 'args' key in the returned array) in a vec (previously varray).
  • Return type annotations were added to various DateTime methods (matching what these methods already returned). This may reveal previously hidden typechecker errors.

Future Changes

  • Calling a function or method “dynamically” (e.g. calling a function/method whose name is stored in a variable) will become more restricted in the future.
    • See previous announcement for more details.
    • This release adds a new builtin function dynamic_meth_caller(string $cls_name, string $meth_name) that should be used to call instance (non-static) methods dynamically.