We’re happy to announce that HHVM 3.8.0 is finally available. You can, as always, try one of our prebuilt packages for Ubuntu and Debian, or build from source. (As of this writing, the packages are still building, so if a 3.8.0 package isn’t available for your supported distro, hold tight!)

This release is the first one to contain performance improvements from our HHVM lockdown this half. Along with the changes detailed in that post targeted specifically at open-source frameworks like Wordpress, MediaWiki, and Drupal, this release also contains the results of Facebook’s internal performance team’s lockdown. While the internal team focuses on performance of Facebook’s code specifically, many of the changes they made will improve the performance of all PHP and Hack code, including the aforementioned open-source frameworks.

Here’s a chart summarizing the performance results of 3.7 vs. 3.8:

Image 2015-07-13 at 3.19.02 PM

Take a look at our lockdown post for details on methodology. It’s specifically worth noting that the improvements here aren’t as large as in the lockdown post since that post also includes our fixes to the frameworks themselves, whereas the above chart is a like-for-like comparison of 3.7 and 3.8.

The 3.8 release comprises the internal “Irwin”, “Jobs”, “King”, “Lukather”, and “McQueen” releases. Normally, we do an external release every four internal releases, but decided to delay 3.8 due to some stability issues. Apologies for being a couple weeks late! We still plan to release 3.9 on its original schedule.

Give it a try and let us know how it goes!

Update

This release also includes:

  • the proxygen http server (hhvm -m server -v Server.Type=proxygen)

  • stream_socket_enable_crypto() for client sockets

  • Automatic typechecking of Hack code. Previously, the hh_client static analysis tool would have to be separately run. Now, results from hh_client will be included in the runtime errors too. (Running it manually is still the recommended way for fast error feedback though!) The hhvm.hack.lang.auto_typecheck INI option controls this behavior.

Comments


  • Steve Diện: how to update from hhvm 3.7.3 to 3.8.0? on my unbuntu server
  • Simon: Beyond the performance improvements, 3.8 is the first stable release to include the Proxygen server :)
  • Josh Watzman: If you used the official Ubuntu packages and repository I linked above, you can update it like any other package.
  • hossein: sudo apt-get update
  • gmagana: Ooohhh... where can we learn all about Proxygen as bundled in HHVM?
  • Josh Watzman: We updated the post with a one-liner about the proxygen server; more info to come later.
  • hhvm-rocks: Thanks Simon, to let us know about the new feature. That probably means that we can drop apache http/nginx.
  • Stef Rezoloco: apt-get update and apt-get upgrade
  • Fred Emmott: I wrote up a few things to consider on the reddit thread: https://www.reddit.com/r/PHP/comments/3ddg2g/hhvm_38_includes_the_proxygen_http_server_unlike/ct4c2cs
  • Stefan Parker: What a great birthday present. Thanks!