Hi!
- Continue requiring that MediaWiki uses a common set of HHVM and Zend
PHP. This, however, is a dead end and will make things progressively harder as the implementations will diverge and various Composer libraries we use will start requiring some Zend-specific features.
This will probably ultimately happen, but given the PHP version stats, e.g. here: https://seld.be/notes/php-versions-stats-2017-1-edition
I think we have several years at least before that starts becoming an issue. Realistically, if you write distributable PHP code now, targeting 7.1 gets you only 17% of the users, so you'd do either 7.0 (gets you about half) or more likely even 5.6. Extending this trend (I know, dangerous, but let's assume) if 7.2 is released somewhere around Dec 2017-Jan 2018, 7.3 would probably not happen before around 2019. If that would have features not supported in HHVM, that means we'd have to worry around 2021 when people would start releasing components targeting it. So we have about 3 years to get the solution - *if* 7.3 has features not supported by HHVM.
Note that this statistics is for Composer users, which means it is probably skewed towards modern versions, since people using PHP 5.3 probably don't use Composer too much in general. OTOH, since we do use Composer, that appears to be appropriate for our case.
- Declare our loyalty to HHVM. This will result in most of our current
users being unable to upgrade, eventually producing what amounts to a WMF-only product and lots of installations with outdated MediaWiki having security holes. At least we will be able to convert to Hack eventually. This is a very clean-cut case of vendor lock-in though, and if Facebook decides to switch their code base to something shinier, we'll be deep in trouble.
I don't think this is a good idea, for reasons that seem obvious to me (but I can elaborate if necessary).
- Revert WMF to Zend and forget about HHVM. This will result in
performance degradation, however it will not be that dramatic: when we upgraded, we switched to HHVM from PHP 5.3 which was really outdated, while 5.6 and 7 provided nice performance improvements.
I think we should evaluate 7.1 or 7.2 (provided we don't have any runtime issues with them) and see how performance looks like ASAP (with opcache, of course). Of there's some help needed, or there are some specific issues that are blockers, I think Zend team would be glad to talk to us. If needed, I could probably help with establishing the contacts.