Conversion of PHP versions so we don't need PHP to build HHVM For the most part, the generated files haven't changed from the PHP sourced versions (apart from minor indentation and whitespace changes). Except for one major exception: An IDL's function/method argument list includes a "value" field for default parameters which takes psuedo-serialized values in several forms. Most are simple scalarish values like: "true", "null", "null_array", "null_variant", "123", "0x456", "0123", "1.23", "\"foo\"" However referencing other constants is also supported: "k_FOO", "q_Bar$$BAZ" Or even bitmask compositions like: "k_FOO|k_BAR|k_BAZ" Runtime uses of these values are encoded directly into *.ext_hhvm.cpp files, so they reach userspace code just fine. The value placed in g_class_map are used exclusively by ext_reflection to allow introspection at runtime. Under the old class_map.php parameter default constant references would be resolved in a (somewhat buggy) eval(), since we don't have eval within gen-class-map, we reuse the kUnserializable deferral. This diff provides a mechanism to resolve this in ReflectionMethod uses (an improvement from previous behavior), and leaves the current eval-on-demand behavior for ReflectionFunction. These two code paths are different due to the partial state of migration away from using ClassInfo.
HipHop VM for PHP 
HipHop VM (HHVM) is a new open-source virtual machine designed for executing programs written in PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. HipHop VM (and before it HPHPc) has realized > 5x increase in throughput for Facebook compared with Zend PHP 5.2.
HipHop is most commonly run as a standalone server, replacing both Apache and modphp.
Installing
You can install a prebuilt package or compile from source.
Running
You can run standalone programs just by passing them to hhvm: hhvm my_script.php.
HipHop bundles in a webserver. So if you want to run on port 80 in the current directory:
sudo hhvm -m server
For anything more complicated, you'll want to make a config.hdf and run sudo hhvm -m server -c config.hdf.
Contributing
We'd love to have your help in making HipHop better. If you run into problems, please open an issue, or better yet, fork us and send a pull request. Join us on #hhvm on freenode.
If you want to help but don't know where to start, try fixing some of the Zend tests that don't pass. You can run them with hphp/test/run. When they work, move them to zend/good and send a pull request.
Before changes can be accepted a Contributors Licensing Agreement (pdf - print, sign, scan, link) must be signed.
Licence
HipHop VM is licensed under the PHP and Zend licenses except as otherwise noted.