HHVM

HipHop Virtual Machine (HHVM) is an open-source virtual machine based on just-in-time (JIT) compilation that serves as an execution engine for the Hack programming language and used to support PHP execution before the release of HHVM version 4.[6] By using the principle of JIT compilation, Hack code is first transformed into intermediate HipHop bytecode (HHBC), which is then dynamically translated into x86-64 machine code, optimized, and natively executed.[7][8] This contrasts with PHP's usual interpreted execution, in which the Zend Engine transforms PHP source code into opcodes that serve as a form of bytecode, and executes the opcodes directly on the Zend Engine's virtual CPU.[9]

HHVM logo, featuring white uppercase "HHVM" letters on a black background, with stylized triangular geometric shapes on the left
Developer(s)Facebook, Inc.
Initial releaseDecember 9, 2011; 14 years ago (2011-12-09)[1]
Written inPHP, C++,[2] OCaml[3][a] and Rust[4]
LicensePHP License and Zend License[5]

HHVM is developed by Facebook, with the project's source code hosted on GitHub;[10] it is licensed under the terms of the PHP License and Zend License.[1][5]

Notes

  1. ↑ Only the Hack's type-checking (hh_server and hh_client) and code-formatting (hh_format) command-line utilities and daemons bundled together with the HipHop Virtual Machine are written in OCaml.

References

  1. ↑ 1.0 1.1 Jason Evans. The HipHop Virtual Machine (December 9, 2011)Facebook. Retrieved August 2, 2014.
  2. ↑ Building and installing HHVM on CentOS 7.x. github.com (May 26, 2015)Facebook. Retrieved June 12, 2015.
  3. ↑ Building the Hack typechecker. github.com (September 10, 2014)Facebook. Retrieved June 12, 2015.
  4. ↑ Facebook's HHVM Begins Seeing Rust Rewrite - Phoronix. Retrieved 29 August 2019.
  5. ↑ 5.0 5.1 facebook/hhvm: License. github.comFacebook, Inc.. Retrieved August 2, 2014.
  6. ↑ HHVM 4.0.0.
  7. ↑ Ottoni, Guilherme (June 20, 2018). "HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack". : 151–165ACM. 
  8. ↑ facebook/hhvm. github.comFacebook. Retrieved August 2, 2014.
  9. ↑ Kaushik Pal. PHP and Zend Engine Internals. phpbuilder.com (April 28, 2014). Retrieved September 23, 2014.
  10. ↑ HHVM source code on GitHub