Thanks for the update, Ori. Exciting stuff :)
On Fri, Mar 21, 2014 at 03:42:41AM -0700, Ori Livneh wrote:
- We need good packages. The packages provided by Facebook have some deep
issues that need to be fixed before they meet our packaging standards. This is a good opportunity to recognize Faidon's leadership on this front: he has been liasoning with Facebook and Debian, working to resolve the outstanding issues. Thanks, Faidon!
To be clear, since I saw some discussion on the IRC backlog: this isn't about "Debian packaging standards", the "Debian way" or anything like that. The packages they provide are not real packages, they are essentially just tarballs packaged in the ar format and extractable with dpkg. It's in the form of this ugly, Facebook-specific, unmaintainable shell script: https://github.com/hhvm/packaging/blob/master/hhvm/deb/package
It's not "packages" that can be improved by us or anyone else. There is progress on making packages, and a Debian Developer that works at Facebook has been enlisted, on company time AIUI, to also help them with that. There is work of his & mine in progress at: http://anonscm.debian.org/gitweb/?p=collab-maint/hhvm.git;a=shortlog It's already buildable and probably better already than the dl.hhvm.com packages. I'd be perfectly okay with these packages finding their way into Wikimedia production, even *before* they are up to Debian standards and suitable for an upload into Debian proper.
There /are/ some interactions with the Debian project that are on our best interests, as they might help us foster a healthy community around HHVM, e.g. http://lists.alioth.debian.org/pipermail/pkg-php-maint/2014-January/012988.h... but these are nice-to-haves, not blockers for our HHVM production deployment.
- We need to port a bunch of C extensions to the Zend PHP interpreter to
HHVM. The most complex by far is LuaSandbox. Tim has been working on that. In the process, he has made substantial improvements to the Zend extension compatibility layer provided by HHVM, which we are waiting to have merged upstream: https://github.com/facebook/hhvm/pull/1986. Once they are merged, they will be in the queue for the next release. Releases are cut every eight weeks.
- I also want to recognize Max Seminik, who stepped up to port Wikidiff2,
producing a patch in short order.
Note that there is still the outstanding issue of how to deploy these extensions, as it's my understanding that HHVM's ABI is not stable and hence they would need to be rebuilt with every new HHVM version using the HHVM source tree. It's a bit messy, Tim has all the details.
- We need to adapt our app server configuration for HHVM. This includes
configuring HHVM itself as well as reconfiguring Apache to act as a fastcgi reverse-proxy.
This will also require some puppet work -- the current classes aren't great and it won't be too easy to plug an alternative implementation without some rework. Not too much work, but have it on your radar nevertheless.
Faidon