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]
Developer(s) | Facebook, Inc. |
---|---|
Initial release | December 9, 2011[1] |
Repository | |
Written in | PHP, C++,[2] OCaml[3][a] and Rust[4] |
License | PHP License and Zend License[5] |
Website | hhvm |
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
changeReferences
change- ↑ 1.0 1.1 Jason Evans (December 9, 2011). "The HipHop Virtual Machine". Facebook. Retrieved August 2, 2014.
- ↑ "Building and installing HHVM on CentOS 7.x". github.com. Facebook. May 26, 2015. Retrieved June 12, 2015.
- ↑ "Building the Hack typechecker". github.com. Facebook. September 10, 2014. Retrieved June 12, 2015.
- ↑ "Facebook's HHVM Begins Seeing Rust Rewrite - Phoronix". Retrieved 29 August 2019.
- ↑ 5.0 5.1 "facebook/hhvm: License". github.com. Facebook, Inc. Retrieved August 2, 2014.
- ↑ "HHVM 4.0.0".
- ↑ 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.
- ↑ "facebook/hhvm". github.com. Facebook. Retrieved August 2, 2014.
- ↑ Kaushik Pal (April 28, 2014). "PHP and Zend Engine Internals". phpbuilder.com. Archived from the original on September 15, 2014. Retrieved September 23, 2014.
- ↑ HHVM source code on GitHub