Skip to content

Instantly share code, notes, and snippets.

@ptarjan
Created November 25, 2013 21:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ptarjan/7649248 to your computer and use it in GitHub Desktop.
Save ptarjan/7649248 to your computer and use it in GitHub Desktop.
HHVM Project Theme for Open Academy - 2013/14

HHVM

HHVM is a an 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 and ease of use that PHP developers are accustomed to (dynamic features like eval(), rapid run-edit-debug cycle, etc).

HHVM is used by Facebook to serve billions of web requests per day. To date, HHVM has realized over a 9x increase in web request throughput and over a 5x reduction in memory consumption for Facebook compared with the Zend PHP 5.2 engine + APC.

You can learn more going through our wiki.

Objectives

The overarching goal of this project is to make HHVM more compatible with existing PHP codebases. The main focus will be on popular PHP frameworks. A good way to start is to fix exiting issues that other people have ran into. You can focus on just Zend incompatibilities or look at all our open issues. We have a framework test script that you can run to see unit test passing rates for each framework. Check the HHVM blog on how to use it or ask us in IRC.

Requirements

The project is written in C++ sprinkled with x86 assembly and PHP. If you are writing extention code, you will be working in PHP and C++ mostly, it is only if you do code-generation that assembly will come up.

More information on getting started is available here.

Evaluation

Students will be getting continuos feedback in the form of code review and discussions with the mentor(s). We all hang out on IRC in #hhvm on freenode.

The primary evaluation criteria:

  • Do new unit tests pass that didn't pass before?
  • Do new frameworks work and install that didn't before?
  • Are some PHP APIs supported that wern't before?
  • Is some language feature more compliant in HHVM than it was before?
  • Does HHVM not segfault in some case it did before?

Contacts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment