Facebook have announced that a JIT compiler for PHP called HipHop
Virtual machine (hhvm) is now at a fairly advanced stage of
development, and that they expect its performance to eventually exceed
that of the compiled binaries produced with hphpc:

<https://www.facebook.com/notes/facebook-engineering/the-hiphop-virtual-machine/10150415177928920>

We had planned on compiling MediaWiki with hphp, with project
completion and deployment to Wikimedia around April 2012, at least for
parsing. But the idea of a slow compile/test cycle (a few
processor-hours) was daunting. Slow compilation is a problem in
practice for Facebook, and one of the main reasons for this new hhvm
project.

So we've decided to defer our HipHop deployment until hhvm is at a
suitable level of maturity. We don't know exactly when that will be,
but Jason Evans says in the note linked above that "the first 90% is
done; now we're on to the second 90% as we make it really shine."

We still want to do something about parser performance in the first
half of 2012, so we're going to bring forward our other performance
project, i.e. server-side scripting embedded in wikitext. That's a
project which is still at an early stage of planning. We will need to
define its scope, and to bite the bullet and make some tough design
choices (such as Lua versus JavaScript), if it's going to progress
from pipe dream to reality.

An extension specific to citations (like TemplateAdventures) would be
an alternative if scripting proves to be too hard.

Deferring HipHop will affect our project priorities in other ways:

* We kicked around the idea of splitting out parsing into a separate
cluster of servers, accessible via an HTTP API. The main motivation
for doing that is gone now (it would have allowed us to use HipHop for
parsing and Zend for everything else).

* We shelved a project plan for better source file distribution (a
scap replacement), on the basis that it would be obsolete with HipHop.
And our system for having different versions of MediaWiki on different
wikis (HetDeploy) was implemented in a quick and dirty way, for the
same reason. These two projects may have to be revisited.

-- Tim Starling


_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to