Several people from the HipHop team at Facebook just met with several
people from WMF. Also, in the last couple of days, I've been doing
some research into what it would take to make MediaWiki support HipHop
VM. The answer is: not very much.
There's two features that we use, mostly in extensions, that the
Facebook people are not keen to implement due to their complexity:
ArrayObject and filter_var(). It seems that it would be much easier
for us to stop using them than for those features to be implemented in
HipHop.
So I'd like to suggest that we refuse new code submissions in Gerrit
that use these features, if they are targeted for WMF production, and
that we start work on migrating away from the existing uses of those
features.
There's a few other SPL features that we don't use at the moment and
we should avoid introducing if possible due to lack of support in HipHop:
* CachingIterator
* EmptyIterator
* GlobIterator
* InfiniteIterator
* LimitIterator
* MultipleIterator
* NoRewindIterator
* ParentIterator
* RecursiveArrayIterator
* RecursiveCachingIterator
* RecursiveFilterIterator
* RecursiveRegexIterator
* RecursiveTreeIterator
* RegexIterator
* SplDoublyLinkedList
* SplFixedArray
* SplHeap
* SplMaxHeap
* SplMinHeap
* SplPriorityQueue
* SplQueue
* SplStack
* SplTempFileObject
We are not yet promising that we are indeed going to start using
HipHop in WMF production, and we don't have any timetables. But HipHop
has evolved to the point where supporting it is almost trivial, at
least for test installations, so I think it makes sense to establish
policies which will avoid making migration to HipHop more difficult.
-- Tim Starling