Two things: (i) I'd really hope that subclassing would be very rare here. I don't think this will be much of an issue though. (ii) Also, it would be nice if developers could all have hiphop running on their test wikis, so that code that's broken on hiphop isn't committed in ignorance. The only problem is that, last time I checked, the dependency list for hiphop is very considerable...and isn't for Windows yet. However, I believe Domas didn't need *too* many patches to get MW working, which suggests that having to write code that compiles with hiphop won't be that difficult and error prone. If there can be a small yet complete list of "things that only work in regular PHP" then that might be an OK alternative to each dev running/testing hiphop.
Otherwise,
Tim Starling-2 wrote:
I think we should migrate MediaWiki to target HipHop [1] as its primary high-performance platform. I think we should continue to support Zend, for the benefit of small installations. But we should additionally support HipHop, use it on Wikimedia, and optimise our algorithms for it.
In cases where an algorithm optimised for HipHop would be excessively slow when running under Zend, we can split the implementations by subclassing.
I was skeptical about HipHop at first, since the road is littered with the bodies of dead PHP compilers. But it looks like Facebook is pretty well committed to this one, and they have the resources to maintain it. I waited and watched for a while, but I think the time has come to make a decision on this.
Facebook now write their PHP code to target HipHop exclusively, so by trying to write code that works on both platforms, we'll be in new territory, to some degree. Maybe that's scary, but I think it can work.
Who's with me?
-- Tim Starling
[1] https://github.com/facebook/hiphop-php/wiki/
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l