A fun hackathon project-level test to see what would be required.
NB: This is not a first step in a proposal to switch us wholly over to Hack.
A fun hackathon project-level test to see what would be required.
NB: This is not a first step in a proposal to switch us wholly over to Hack.
Did someone work on this project during Wikimedia-Hackathon-2015? If so, please update the task with the results. If not, please remove the label.
Don't want to lick this cookie too hard, haven't had time to play with it. We'll have to change some settings in HHVM (forgot which one) and scap & co will need updates to reflect the proper linter.
(Should we be linting with hhvm anyway? Hmm....)
We can't even consider this until the entire production MW server fleet is running on HHVM. This includes the misc servers such as tin and turbium. As Tim has pointed out before, it would be embarrassing if we couldn't run our own software. :)
Beyond that blocker, I guess I would be fine with the attempt but I'm not sure what concrete benefits we would hope to achieve beyond an "it didn't break" proof of concept. As far as I understand it, the primary benefits of Hack are the ability to provide stronger type hints for the JIT compiler and access to various async constructs developed uniquely for Facebook. Neither of these sounds like things that would be highly beneficial at the wiki farm config level but maybe I'm missing something.
Once tin is upgraded to trusty php will point to hhvm and we'd be linting with HHVM. But until 5.3 is dead we should be linting with the lowest requirement.
Also HHVM's linter is significantly slower than PHP5: https://github.com/JakubOnderka/PHP-Parallel-Lint/issues/47
This is a general consequence of HHVM and its JIT. HHVM will always be slower than PHP5 for short lived tasks due to the startup time costs of setting up the JIT system and recording bytecode in the sqlite bytecode cache.
Do we really want to vendor-lock us into HHVM? For what gain?
Do we really, really have a compelling reason to use hack in mediawiki-config? A performance gain?
I indirectly replied by editing the description to make it clear this isn't meant to be a backdoor to us using Hack. This is a fun hackathon idea (for Lyon) that didn't happen. Lowest priority for a reason :)
Maybe we should just close this task until we open up the discussion to migrate to Hack? Meanwhile, that is yet another opened bug adding overhead :(