The Wayback Machine - https://web.archive.org/web/20210302095451/https://github.com/facebook/hhvm
Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

Summary:
- running perf on the hhvm quick tests show deserializing the json from HHVM in HackC to be quite hot.
- Lets pass IniSettings and RepoOptions natively to HackC.
- Had to use u32 for HHBCFlags and ParserFlags because enum in C++ is stored as an int.

- set native environment to be empty in hh_single_compile.cpp because writing a function from env to native env did not seem worth it during this transitional period.

[RFC] There is a lot of boilerplate in this diff. I think we need a map from c-struct options to bits that is different from the map of options to bits defined in options.rs to keep that implementation private. Does anyone have any ideas for a cleaner way of doing this?

Note: lto builds were broken before this diff. Working on resolving them now, but shouldn't block getting feedback on this diff.

Reviewed By: shayne-fletcher

Differential Revision: D26552640

fbshipit-source-id: 42acb10455be50fb744c0ea8b0411ddddcd6c771
d858f47

Files

Permalink
Failed to load latest commit information.

README.md

HHVM

HHVM page | HHVM documentation | Hacklang page | General group | Dev group | Twitter

HHVM is an open-source virtual machine designed for executing programs written in Hack. HHVM uses a just-in-time (JIT) compilation approach to achieve superior performance while maintaining amazing development flexibility.

HHVM should be used together with a webserver like the built in, easy to deploy Proxygen, or a FastCGI-based webserver on top of nginx or Apache.

Installing

If you're new, try our getting started guide.

You can install a prebuilt package or compile from source.

Running

You can run standalone programs just by passing them to hhvm: hhvm example.hack.

If you want to host a website:

  • Install your favorite webserver. Proxygen is built into HHVM, fast and easy to deploy.
  • Install our package
  • Start your webserver
  • Run sudo /etc/init.d/hhvm start
  • Visit your site at http://.../main.hack

Our getting started guide provides a slightly more detailed introduction as well as links to more information.

Contributing

We'd love to have your help in making HHVM better. If you're interested, please read our guide to contributing.

License

HHVM is licensed under the PHP and Zend licenses except as otherwise noted.

The Hack typechecker is licensed under the MIT License except as otherwise noted.

Reporting Crashes

See Reporting Crashes for helpful tips on how to report crashes in an actionable manner.

Security

For information on reporting security vulnerabilities in HHVM, see SECURITY.md.

FAQ

Our user FAQ has answers to many common questions about HHVM, from general questions to questions geared towards those that want to use.

There is also a FAQ for contributors to HHVM.