Compatibility Update

Posted on April 21, 2014 by

Earlier this year we set an ambitious goal of passing the PHPUnit test suites of 20 popular frameworks by the end of June; at the time, we were passing on only 6! With a huge amount of help from the community (especially our OpenAcademy students), we’re proud to have hit this goal more than 2 months early, and we have more frameworks expected to reach 100% shortly.

lotsoflogos

The full list (currently 23) is shown on our framework tests page; we consider the following to be popular, and will be supported in HHVM 3.1, and our nightly builds:

  • assetic
  • codeigniter
  • composer
  • doctrine2
  • facebookphpsdk
  • guzzle3 (guzzle4 coming soon)
  • idorm + paris
  • laravel
  • lessphp – thanks to Camillus Gerard Cai
  • mediawiki
  • mockery
  • monolog – thanks to Rafe Kettler
  • mustache – thanks to Kevan Fisher
  • phpbb3 – thanks to Kevan Fisher
  • phpmyadmin – thanks to Jeff Chan
  • phpunit
  • ratchet – thanks to Kevan Fisher
  • reactphp – thanks to Camillus Gerard Cai
  • slim
  • twig

Special thanks to Ioan Negulescu for improving our Symfony support, and to Joel Low for several fundamental improvements to HHVM helping all of us, and for bringing Drupal 8′s PHPUnit tests to 100% –  Drupal 8 is not included in the list above as the PHPUnit tests are a small portion of their full test suite.

What’s next? Compatibility is still a huge priority for us, though we feel that targeting framework test suites has run its course and gotten us most of the low hanging fruit. After we’ve finished support for a few more frameworks that are nearly complete, we’re going to refocus on fixing issues reported on GitHub. HHVM now has a great overall level of support for PHP5, and we think the best way to continue to improve it is to work on the issues that you and the rest of our community are finding in the real world. If you find compatibility problems, please open an issue and we’ll fix it as soon as we can. We are starting on anything tagged hi-pri and working down from there. Ask for a priority bump if your issue is blocking your HHVM deployment.

Posted in FYI, Parity | Leave a reply

36 Responses to “Compatibility Update”

  1. Yosmany says:

    Typo in “Symphony” word, it’s “Symfony”.

  2. Martin says:

    What about Nette?

  3. Danny says:

    This is really great! I’m sure a metric ass-tonne of work has gone into this from all parties involved!
    I think we should commend this big effort, and then and only then correct spelling mistakes and ask for more stuff, no? :)

  4. Morgan says:

    I see you’re focusing on stagnated frameworks like CodeIgniter. Any plans to test compatibility with more actively maintained solutions like CakePHP or Yii?

    • Fred Emmott says:

      We tried to optimize for popularity/effort: we based popularity on github stars/forks/watchers, and some data from versioneye, and effort was a guess primarily based on how large the frameworks are.

      We are testing Yii (it’s shown on http://hhvm.com/frameworks/), and an OpenAcademy student is currently working on it.

      The main reason we didn’t work on CakePHP is because it’s got a custom test runner – you can’t just run ‘phpunit path/to/test’. This means we’d have had to have spent a non-trivial amount of time improving our test runner, instead of working on improving compatibility.

      This is something we’re likely to address in the future, but we don’t think it’s the best way for us to increase the usefulness of HHVM in the short-term – we’re instead going to be looking at specific problems reported on github.

  5. Konstantin Kudryashov says:

    You missed Behat v3:
    https://travis-ci.org/Behat/Behat/jobs/23445116
    ;)

  6. Mark says:

    sabre/http, sabre/event and sabre/vobject are already hhvm compatible, too. Hope sabre/dav will be really soon

    hhvm compatible (afaik):
    https://travis-ci.org/fruux/sabre-http
    https://travis-ci.org/fruux/sabre-event
    https://travis-ci.org/fruux/sabre-vobject

    Not yet:
    https://travis-ci.org/fruux/sabre-dav

  7. Also consider, that all the other packages installed with these frameworks need to be tested to.

    You can check it out here: http://hhvm.h4cc.de/
    Even with dependency graph analysis, for example symfony: http://hhvm.h4cc.de/graphs/symfony_2_4.png

  8. Josh says:

    HHVM has come a very long way in a very short time. Having kept a very close eye on HHVM, I’m quite impressed at the resources FB has put towards making HHVM kick ass.

    A great team of engineers, and public commit history makes FB look like a major winner.

    Also helping existing AJAX calls be cut in half running the same code with HHVM is also a major win :).

  9. nickvergessen says:

    Typo in the word “phpbb3″, its “phpBB”

  10. Radu Murzea says:

    Wow, that is great news. I never expected HHVM to grow and improve sooo fast. I keep a local copy of HHVM’s source code on my machine and, every time I pull from GitHub (maybe once a week), I’m amazed at how much progress is made in such a short time.

    When you reach 100 % with Symfony too, it will be the most awesome day :) .

  11. Radu Murzea says:

    Ooooh, I almost forgot. Please take a look at this when you have the time: https://www.facebook.com/groups/hackdevday14/permalink/1438300749742374 . Many thanks.

  12. Dave says:

    I’m going to guess that since Drupal 7 has exactly 0 PHPUnit tests, you mean Drupal 8.

  13. Just set up a german speaking support forum for Hack and HHVM.

    http://www.fbhack.de

    Hope some PHP devs interested in Hack/HHVM will find it useful!

  14. […] have finally hit 100% PHPUnit test passing for 20 popular frameworks.. and getting close on more. hhvm.com/blog/4841/compatibility-update […]

  15. […] Fällen PHP 5.x bereits abhängt und Facebook alles dafür tut die PHP-Welt an sich zu reissen (Compatibility Update « HHVM). Und das scheint nur der Anfang einer rasanten Entwicklung zu sein. Andererseits muss man sich […]

  16. Tim Hawkins says:

    Just wanted to drop a note for folks who need mongodb integration. Mongofill-hhvm is a fully 10gen php driver complient extension for hhvm. The current version is essentialy beta, but I have been able to port several non-trivial php apps to the combination of hhvm 3.0.1 and mongofill-hhvm, with relativly little tweaking. In the cases where tweaking was required, it was generaly a bug in the original code where hhvm’s stricter parsing pulled it out.

    https://github.com/mongofill/mongofill-hhvm

    To install mongofill-hhvm you will need to have a hhvn installation built from source, not a packaged version as it is currently only supplied in source form.

  17. Are there any plans to test magento2?
    Would be very interesting, to increase the performance of magento…

  18. […] has been making new forays in popular library and framework compatibility, with the latest update to 3.1 adding full support […]

  19. 95% tests are green for TYPO3 CMS on HHVM !

    http://blog.macopedia.co/post/running-typo3-cms-on-hhvm-part2/

    1.1% failed, 0.7% finished with error, 0.26% were incomplete and 2.37% were skipped.

  20. Utomo says:

    How about http://fatfreeframework.com
    Does that hhvm support it?

    I hope hhvm make tools to migrate php code to hhvm.
    By doing that hhvm can get more people using it.
    Also consider helping famous opensource to use hhvm, example opencart, and others

  21. Utomo says:

    I hope hhvm can try to make popular opensource compatible with hhvm.
    WordPress 3.9 already on the way.

    Let’s continue with opencart 2.0, Magento, Drupal, Joomla, etc.
    By doing that many people will love and use hhvm

  22. […] ever before. In January, we were passing just 6 major frameworks’ PHPUnit test suites. but we passed our goal of 20 in April, and are pleased to currently support 26 major frameworks with 100% pass […]

Leave a Reply