HHVM

HHVM
Developer(s)Facebook, Inc.
Initial releaseDecember 9, 2011 (2011-12-09)[1]
Repository
Written inPHP, C++,[2] OCaml[3][a] and Rust[4]
LicensePHP License and Zend License[5]
Websitehhvm.com

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 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 2 Jason Evans (December 9, 2011). "The HipHop Virtual Machine". Facebook. Retrieved August 2, 2014.
  2. ↑ "Building and installing HHVM on CentOS 7.x". github.com. Facebook. May 26, 2015. Retrieved June 12, 2015.
  3. ↑ "Building the Hack typechecker". github.com. Facebook. September 10, 2014. Retrieved June 12, 2015.
  4. ↑ "Facebook's HHVM Begins Seeing Rust Rewrite - Phoronix". Retrieved 29 August 2019.
  5. 1 2 "facebook/hhvm: License". github.com. Facebook, 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". Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM. pp. 151–165.
  8. ↑ "facebook/hhvm". github.com. Facebook. Retrieved August 2, 2014.
  9. ↑ Kaushik Pal (April 28, 2014). "PHP and Zend Engine Internals". phpbuilder.com. Archived from the original on September 15, 2014. Retrieved September 23, 2014.
  10. ↑ HHVM source code on GitHub