Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A virtual machine designed for executing programs written in Hack and PHP.
C++ PHP Hack OCaml C CMake Other
Latest commit 75a38fb @andriigrynenko andriigrynenko committed with hhvm-bot Deprecate get_weak()
Summary: get_weak() is always used with .lock(), but try_get() is actually more performant than get_weak().lock().
Using get_weak() to store a weak_ptr and keep locking is not safe in fork scenarios.

Reviewed By: yfeldblum

Differential Revision: D2694223

fb-gh-sync-id: a0e62be32fa16b69935fc86f477dd34385ede35d


HHVM page | Hacklang page | General group | Dev group | Twitter

HHVM (aka the HipHop Virtual Machine) is an open-source virtual machine designed for executing programs written in Hack and PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. To date, HHVM (and its predecessor HPHPc before it) has realized over a 9x increase in web request throughput and over a 5x reduction in memory consumption for Facebook compared with the PHP 5.2 engine + APC.

HHVM should be used together with a FastCGI-based webserver like nginx or apache.

Reporting and Fixing Security Issues

Please do not open GitHub issues or pull requests - this makes the problem immediately visible to everyone, including malicious actors. Security issues in HHVM can be safely reported via HHVM's Whitehat Bug Bounty program:

Facebook's security team will triage your report and determine whether or not is it eligible for a bounty under our program.


Our FAQ has answers to many common questions about HHVM, from general questions to questions geared towards those that want to use or contribute to HHVM.


If you're new, try our getting started overview.

You can install a prebuilt package or compile from source.


You can run standalone programs just by passing them to hhvm: hhvm my_script.php.

If you want to host a website:

  • Install your favorite webserver
  • Install our package
  • Start your webserver
  • Run sudo /etc/init.d/hhvm start
  • Visit your site at http://.../index.php

Our getting started overview provides a slightly more detailed introduction as well as links to more information.


We'd love to have your help in making HHVM better. If you're interested, please read our guide to contributing.


HHVM is licensed under the PHP and Zend licenses except as otherwise noted.

The Hack typechecker (hphp/hack) is licensed under the BSD license (hphp/hack/LICENSE) with an additional grant of patent rights (hphp/hack/PATENTS) except as otherwise noted.

Reporting Crashes

See Reporting Crashes for helpful tips on how to report crashes in an actionable manner.

Something went wrong with that request. Please try again.