Skip to content
A virtual machine for executing programs written in Hack.
C++ Hack OCaml Rust C PHP Other
Branch: master
Clone or download

Latest commit

skishore and facebook-github-bot Log on materializing GlobalsArray
"The time has come," the HAM team said,
"To kill GlobalsArray.
Its reffiness offends the eyes
Since COW is here to stay,
And it implements Vsize
Which slows down CountArray."

"But wait a bit," Hack users cried,
"Will our code still be right?
For someone may, for Good Reason
To $GLOBALS read or write -
And if the key were...'GLOBALS'
It would take down the site!"

"A bunch of clowns!" the HAM team said,
And heaved a weary sigh.
"These notices in lookupAdd
Will fire if aught's awry.
If they've the gall to read 'em all
We'll warn in getDefined!"

The warnings shipped with next release.
The error logs looked clean.
Soon enough we raised instead
And still the push was green -
For when they tried to file a SEV:
"Response code: 418"

Reviewed By: mxw

Differential Revision: D21705642

fbshipit-source-id: 1bf845d1b45292fe3ed857243ffc9f15e03d52e7
Latest commit 3d90af4 May 24, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Improve bug report github issue template (#8705) May 20, 2020
CMake Add oniguruma to third-party/ and fix link order (#8686) Apr 22, 2020
hphp Log on materializing GlobalsArray May 23, 2020
patches update FB submodules (#8697) May 6, 2020
third-party update FB submodules (#8697) May 6, 2020
.gitignore Add vscode directories to gitignore (#8627) Dec 12, 2019
.gitmodules update fmt, stop submoduling it (#8677) Apr 4, 2020
CMakeLists.txt Clean up CMake May 1, 2018 Adopt Contributor Covenant Aug 30, 2019 Use HTTPS instead of HTTP Feb 14, 2018
LICENSE.PHP Removed a bit of trailing whitespace Feb 13, 2014
LICENSE.ZEND Removed a bit of trailing whitespace Feb 13, 2014 Remove PHP7 from the README (#8616) Dec 2, 2019 Split security policy out from to (#8508) May 28, 2019
configure Update configure Apr 6, 2015


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

HHVM is an open-source virtual machine designed for executing programs written in Hack. HHVM uses a just-in-time (JIT) compilation approach to achieve superior performance while maintaining amazing development flexibility.

HHVM should be used together with a webserver like the built in, easy to deploy Proxygen, or a FastCGI-based webserver on top of nginx or Apache.


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

You can install a prebuilt package or compile from source.


You can run standalone programs just by passing them to hhvm: hhvm example.hack.

If you want to host a website:

  • Install your favorite webserver. Proxygen is built into HHVM, fast and easy to deploy.
  • Install our package
  • Start your webserver
  • Run sudo /etc/init.d/hhvm start
  • Visit your site at http://.../main.hack

Our getting started guide 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 is licensed under the MIT License except as otherwise noted.

Reporting Crashes

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


For information on reporting security vulnerabilities in HHVM, see


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

There is also a FAQ for contributors to HHVM.

You can’t perform that action at this time.