This website is itself written in Hack and running on HHVM. You can see the current HHVM version used on the deployed site.
You'll need HHVM
(see installation instructions)
installed on your local machine, and the version must have the same major
and minor (e.g.
4.123) as the version specification in the
You'll also need a checkout of the source code for this site.
$ git clone email@example.com:hhvm/user-documentation.git
We use Composer to manage our PHP library dependencies and to autoload classes. Composer is written in PHP, so you need PHP installed.
# Ubuntu example, your environment may differ.
$ apt-get install php-cli
You can now follow the instructions on the Composer website to install it.
Once you've installed
composer.phar, you can install the website dependencies into
vendor/ and create the autoload map.
$ cd user-documentation
user-documentation$ php /path/to/composer.phar install
We require that this whole repository has no type errors.
If you are seeing errors in
vendor/, re-run the composer install command to ensure that all dependencies are up to date.
NOTE: If you add, delete or rename a class in the primary source tree
src/, you should run
php composer.phar dump-autoload in order to make the autoload maps refresh correctly; otherwise you will get class not found exceptions.
public/ by running the build script. This script will only
run the steps related to your changes, so the first run will be slower
than later runs.
$ hhvm bin/build.php
HHVM has a built-in webserver, so it can serve the entire website.
$ cd public
$ hhvm -m server -p 8080 -c ../hhvm.dev.ini
You can now see your local instance by visiting http://localhost:8080.
When you make changes, you'll need to run
build.php again. You can
leave HHVM serving the site, and it will pick up the changes
If you want to see old versions of the docs, we provide regular Docker images of this site. This is not suitable for development, but it's useful if you're working with an old HHVM/Hack version.
- Install Docker.
- Start a container with
docker run -p 8080:80 -d hhvm/user-documentation.
- You can then access a local copy of the documentation at http://localhost:8080.
Running a production instance is very similar to a development instance.
Configure a webserver and HHVM to serve the
directory. Ensure that all requests that don't match a local file are