-----Original Message-----
From: wikitech-l-bounces(a)lists.wikimedia.org
[mailto:wikitech-l-bounces@lists.wikimedia.org] On Behalf Of
Domas Mituzas
Sent: 01 March 2010 10:11
To: Wikimedia developers
Subject: [Wikitech-l] hiphop progress
Howdy,
Most of the code in MediaWiki works just fine
with it
(since most of
> it is mundane) but things like dynamically including certain
files,
declaring
classes, eval() and so on are all out.
There're two types of includes in MediaWiki, ones I fixed for
AutoLoader and ones I didn't - HPHP has all classes loaded,
so AutoLoader is redundant.
Generally, every include that just defines classes/functions
is fine with HPHP, it is just some of MediaWiki's startup
logic (Setup/WebStart) that depends on files included in
certain order, so we have to make sure HipHop understands
those includes.
There was some different behavior with file including - in
Zend you can say require("File.php"), and it will try current
script's directory, but if you do require("../File.php") - it will
We don't have any eval() at the moment, and actually there's
a mode when eval() works, people are just scared too much of it.
We had some double class definitions (depending on whether
certain components are available), as well as double function
definitions ( ProfilerStub vs Profiler )
One of major problems is simply still not complete function
set, that we'd need:
* session - though we could sure work around it by setting up
our own Session abstraction, team at facebook is already busy
implementing full support
* xdiff, mhash - the only two calls to it are from
DiffHistoryBlob - so getting the feature to work is mandatory
for production, not needed for testing :)
Mhash been obsoleted by the hash extension, and HipHop has the hash
extension (looking at the src).
I think mhash is implemented as a wrapper onto the hash extension for
a while. (
http://svn.php.net/viewvc?view=revision&revision=269961)
assert(hash('adler32', 'foo', true) === mhash(MHASH_ADLER32,
'foo'));
Jared