Sam Reed [Mon, 11 Apr 2011 18:46:35 +0000 (18:46 +0000)]
Revert r85785
Sam Reed [Mon, 11 Apr 2011 18:37:29 +0000 (18:37 +0000)]
Revert r85799
Sam Reed [Mon, 11 Apr 2011 18:29:18 +0000 (18:29 +0000)]
Revert r85783, it seems to brake random stuff in random places #fail
Sam Reed [Mon, 11 Apr 2011 17:37:09 +0000 (17:37 +0000)]
Add MWInit to AutoLoader, see if we unbreak doxygen
Max Semenik [Mon, 11 Apr 2011 17:16:41 +0000 (17:16 +0000)]
Bug 28478: database error in DatabaseSqlite::getFulltextSearchModule().
It was caused by a weird bug in SQLite: virtual table using a non-existent module still gets created somehow, and it is completely undeletable.
Alexandre Emsenhuber [Mon, 11 Apr 2011 16:52:51 +0000 (16:52 +0000)]
No need to call wfSuppressWarnings() and wfRestoreWarnings(); wfDl() already does this
Paul Copperman [Mon, 11 Apr 2011 16:49:36 +0000 (16:49 +0000)]
Fix some Notices:
* LanguageKaa.php: Fix ucfirst and lcfirst for empty strings.
* SkinTemplate.php: Fix undefined array access.
* ProxyTools.php: When running hiphop in cli mode, apache_request_headers() returns null. Fix wfGetForwardedFor() to account for that.
Sam Reed [Mon, 11 Apr 2011 16:42:23 +0000 (16:42 +0000)]
commons.wikimedia: (SQL Query hidden) from within function "LinksUpdate::incrTableUpdate". Database returned error "1205: Lock wait timeout exceeded; try restarting transaction (10.0.6.41)".
Per Krinkle on IRC
Paul Copperman [Mon, 11 Apr 2011 16:41:23 +0000 (16:41 +0000)]
Follow-Up r85618:
* UploadFromUrlTest.php: Remove another instance of stray ini_set statements.
* Makefile: Also exclude group Stub from tests when running 'make noparser' etc.
Sam Reed [Mon, 11 Apr 2011 13:53:57 +0000 (13:53 +0000)]
Remove unused globals
Jure Kajzer [Mon, 11 Apr 2011 13:50:21 +0000 (13:50 +0000)]
* fix as per brion's comment on r85669
Sam Reed [Mon, 11 Apr 2011 13:07:55 +0000 (13:07 +0000)]
* (bug 13921) deadlocks mass-deleting media files in categories
Sam Reed [Mon, 11 Apr 2011 13:02:55 +0000 (13:02 +0000)]
* (bug 27639) Transaction timeout when trying to OldLocalFile::upgradeRow()
Sam Reed [Mon, 11 Apr 2011 12:56:23 +0000 (12:56 +0000)]
* (bug 20468) User::invalidateCache throws 1205: Lock wait timeout exceeded
Sam Reed [Mon, 11 Apr 2011 12:48:59 +0000 (12:48 +0000)]
Followup r85776, per Aaron, add documentation showing reason why explicit creation of a new LB was added
Sam Reed [Mon, 11 Apr 2011 12:47:55 +0000 (12:47 +0000)]
Code comments, few braces
Sam Reed [Mon, 11 Apr 2011 00:29:42 +0000 (00:29 +0000)]
* (bug 28485) Block::purgeExpired Database returned error "1205: Lock wait timeout exceeded;"
Commit changes per Tims suggestion on the ubg
Neil Kandalgaonkar [Sun, 10 Apr 2011 22:27:52 +0000 (22:27 +0000)]
followup to r85654, move global declarations
Sam Reed [Sun, 10 Apr 2011 21:52:34 +0000 (21:52 +0000)]
* (bug 26873) API: Add 'toponly' filter in usercontribs module
Sam Reed [Sun, 10 Apr 2011 21:42:20 +0000 (21:42 +0000)]
* (bug 28455) Add 'toponly' to recentchanges API module
Sam Reed [Sun, 10 Apr 2011 21:11:39 +0000 (21:11 +0000)]
* (bug 27712) add parent_id to list=deletedrevs
Platonides [Sun, 10 Apr 2011 16:42:29 +0000 (16:42 +0000)]
Follow up r85566. Add the helper classes to test autoloader.
Platonides [Sun, 10 Apr 2011 15:54:11 +0000 (15:54 +0000)]
Remove double ; from r84971
Make explicit that the previous values of $wgAutoloadClasses are not preserved and make happy the 'unused global' detector.
Alexandre Emsenhuber [Sun, 10 Apr 2011 14:21:37 +0000 (14:21 +0000)]
dl() -> wfDl()
Sam Reed [Sun, 10 Apr 2011 13:01:47 +0000 (13:01 +0000)]
* (bug 28254) action=paraminfo: Extract type from PARAM_DFLT if PARAM_TYPE is not set
Patch by Umherirrender
Sam Reed [Sun, 10 Apr 2011 12:27:32 +0000 (12:27 +0000)]
* (bug 28364) add registration date to meta=userinfo
Sam Reed [Sun, 10 Apr 2011 12:15:03 +0000 (12:15 +0000)]
* (bug 28368) add hint for multipart/form-data to api information of action=import&xml=
Add RELEASE-NOTES for r85585 too
Max Semenik [Sun, 10 Apr 2011 08:44:06 +0000 (08:44 +0000)]
SQLite is picky about the position of AUTOINCREMENT in field definition, handle it when converting from MySQL syntax
Aaron Schulz [Sun, 10 Apr 2011 06:46:02 +0000 (06:46 +0000)]
Quick fix to categoriesHtml() given new skin changes
Aaron Schulz [Sun, 10 Apr 2011 06:32:50 +0000 (06:32 +0000)]
* Removed some of the duplicated latest revision attribute fields (using mLastRevision instead)
* Added access level (raw/public/user) options to user, text, and comment accessors for latest revision
* Fixed minor related FIXME in FlaggedArticleView
Aaron Schulz [Sun, 10 Apr 2011 06:07:34 +0000 (06:07 +0000)]
Made revText() give deprecated notice
Brion Vibber [Sat, 9 Apr 2011 19:57:35 +0000 (19:57 +0000)]
Followup to r85706 and friends: now that Math messages have been moved to extension, move out the settings list and constants.
* MW_MATH_* constants are now defined in Math extension
* Language::getMathNames() is removed
* mathNames section in message files is removed
* A hardcoded preference override in refreshLinks moved to MaintenanceRefreshLinksInit hook
Siebrand Mazeland [Sat, 9 Apr 2011 17:21:31 +0000 (17:21 +0000)]
Follow-up r85724: update messages.inc and rebuild all language files.
Jack Phoenix [Sat, 9 Apr 2011 15:18:15 +0000 (15:18 +0000)]
...and remove the math-related messages from MessagesEn.php; follow-up to r85723
Bryan Tong Minh [Sat, 9 Apr 2011 14:43:12 +0000 (14:43 +0000)]
Revert r85644. Multipart sucks because it is hard to parse and because you need to seek into the stream. I'll follow up with a solution that allows embeding data in the stream.
Brion Vibber [Sat, 9 Apr 2011 00:39:40 +0000 (00:39 +0000)]
Initial stab at breaking math/texvc out to Math extension.
* (bug 14202) $wgUseTeX has been superseded by the Math extension. To re-enable
math conversion after upgrading, obtain the Math extension from SVN or from
http://www.mediawiki.org/wiki/Extension:Math and add to LocalSettings.php:
require_once "$IP/extensions/Math/Math.php";
This is an initial stab, and a few things remain to be cleaned up:
* messages need to be moved from core to extension
* MW_MATH_* constants should be moved to the extension from core
* old back-compat math names interfaces using those constants should be removed from message files
* classic edit toolbar's math button should be added from the extension (or else dropped) -- currently there's not a clean hook, but could do it by JS
* couple of things like the 'armourMath' function on Language & LanguageConverter may want to be redone just as an unconditional, if that's simpler.
Setting $wgUseTeX alone will no longer have any affect. The var's still there for the moment as a few bits still need to be fully moved out from core.
Sam Reed [Fri, 8 Apr 2011 23:53:59 +0000 (23:53 +0000)]
Cleaning up my w/c again. Add documentation
Brion Vibber [Fri, 8 Apr 2011 23:06:56 +0000 (23:06 +0000)]
Quick fix for bug 15892: intermittent SQL-based cache failures during parser test runs.
Sam Reed [Fri, 8 Apr 2011 22:07:19 +0000 (22:07 +0000)]
MFB (or MTT?) 1.17wmf1 r85698, r85700
Sam Reed [Fri, 8 Apr 2011 21:59:47 +0000 (21:59 +0000)]
Move api RELEASE-NOTES to api section
Raimond Spekking [Fri, 8 Apr 2011 19:53:47 +0000 (19:53 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-04-08 19:35:00 UTC)
OverlordQ [Fri, 8 Apr 2011 16:17:54 +0000 (16:17 +0000)]
Followup to r85464, correct parser test
Jure Kajzer [Fri, 8 Apr 2011 12:45:19 +0000 (12:45 +0000)]
* r81084 added prefix to index name and as this index gets synced directly it has to use the same prefix
Alexandre Emsenhuber [Fri, 8 Apr 2011 07:19:26 +0000 (07:19 +0000)]
No need to force inclusion of Namespace.php since r85327
Alexandre Emsenhuber [Fri, 8 Apr 2011 07:14:42 +0000 (07:14 +0000)]
Use MWNamespace::getCanonicalNamespaces() instead of $wgCanonicalNamespaceNames
Chad Horohoe [Fri, 8 Apr 2011 05:50:05 +0000 (05:50 +0000)]
Dont allow $procs to be 0
Chad Horohoe [Fri, 8 Apr 2011 05:28:44 +0000 (05:28 +0000)]
Add quick sanity check before before trying to use the $outDir
Neil Kandalgaonkar [Thu, 7 Apr 2011 23:32:36 +0000 (23:32 +0000)]
also generate random SVG files
Bryan Tong Minh [Thu, 7 Apr 2011 21:44:44 +0000 (21:44 +0000)]
Second part of bug bug 22881: Allow exporting files along with the XML as mimepart/related file. The patch attached to that bug was unfortunately not up to coding standards, so I rewrote this part myself.
Bryan Tong Minh [Thu, 7 Apr 2011 21:04:16 +0000 (21:04 +0000)]
Stylize Export.php
Bryan Tong Minh [Thu, 7 Apr 2011 20:19:44 +0000 (20:19 +0000)]
First part of bug 22881: Allow uploading directly into the archive to support importing files. Based on a patch by Vitaliy Filippov with some major rewrites by me.
* LocalFile::publish() supports an extra parameter to support publishing into the archive
* Added OldLocalFile::uploadOld(), which is the OldImage equivalent to LocalFile::upload(), but does not override it because it has an entirely different function signature.
Raimond Spekking [Thu, 7 Apr 2011 20:18:13 +0000 (20:18 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-04-07 19:58:00 UTC)
Alexandre Emsenhuber [Thu, 7 Apr 2011 16:04:08 +0000 (16:04 +0000)]
Moved rateLimited() and showLagWarning() near other similar functions
Paul Copperman [Thu, 7 Apr 2011 14:54:38 +0000 (14:54 +0000)]
Various fixes for PHPUnit tests:
* Block.php: Set mExpiry to the value we store in the database, so that Block::equals() returns true. Fixes BlockTest::testInitializerFunctionsReturnCorrectBlock.
* In Title::checkUserBlock(): Convert message parameters to plain strings to make strict comparisons work. Fixes TitlePermissionTest::testUserBlock().
* ApiBlock.php: Follow-Up r85166, add 'Confirm' parameter to data array. Fixes ApiBlockTest::testMakeNormalBlock().
* ApiQueryTest.php: Use $wgMetaNamespace instead of $wgSitename to account for customizations.
* RandomImageGenerator.php: Use default value for constructor param to prevent fatals.
* ApiTestCaseUpload.php:
** Fix undefined variable $fileName.
** Remove stray ini_set statements, they don't belong there. Especially ini_set( 'error_reporting', 1 ) will effectively disable all reporting, which makes errors hard to track.
* ArticleTablesTest.php: Put testbug14404() in group Broken, as the fix for the bug has been reverted in r83868.
Roan Kattouw [Thu, 7 Apr 2011 13:14:33 +0000 (13:14 +0000)]
Fix copypaste fail in r85616
Roan Kattouw [Thu, 7 Apr 2011 12:07:25 +0000 (12:07 +0000)]
For bug 27488: move the startup script, jquery+mediawiki and the mw.config.set() call for configuration variables back to the <head> . Let modules control whether they're loaded in the <head> ('top') or at the bottom of the <body> ('bottom') through the position parameter/property
Also rearranges the loading order a little bit such that only=messages comes before only=scripts, and config comes before everything except startup and jquery+mediawiki
Neil Kandalgaonkar [Thu, 7 Apr 2011 08:58:16 +0000 (08:58 +0000)]
join() appears to be inadequate for some production errors
Brion Vibber [Wed, 6 Apr 2011 22:16:38 +0000 (22:16 +0000)]
* (bug 28368) add hint for multipart/form-data to api information of action=import&xml=
Happy-melon [Wed, 6 Apr 2011 21:59:49 +0000 (21:59 +0000)]
Follow-up r85302: new MediaWiki() constructor format in phpunit test declaration.
Brion Vibber [Wed, 6 Apr 2011 21:58:10 +0000 (21:58 +0000)]
* (bug 28444) Fix regression: edit-on-doubleclick retains revision id again
Regression in 61071 caused by dropping $title->getLocalUrl($skin->getEditUrlOptions())
for the less informational $title->getEditUrl(), thus losing oldid view information.
Switching back nicely resolves it.
Platonides [Wed, 6 Apr 2011 21:46:47 +0000 (21:46 +0000)]
Revert unintended change to this parserTest in r85481
Platonides [Wed, 6 Apr 2011 21:36:07 +0000 (21:36 +0000)]
r85553 fixup. When there are variants involved, the line
$GLOBALS['wgContLang'] = $context->lang;
is not assigning $wgContLang the same $langObj instantiated a couple of lines above, but a different object obtained from the user code, breaking variant parsertestsw..
Brion Vibber [Wed, 6 Apr 2011 21:11:49 +0000 (21:11 +0000)]
* (bug 27473) Fix regression: bold, italic no longer interfere with linktrail for ca, kaa
Patch to ca, kaa linktrails to exclude multiple apostrophes by Platonides: https://bugzilla.wikimedia.org/attachment.cgi?id=8337
Added parser test cases to confirm that the linktrail apostrophe works on those languages, and to confirm that the bug where a link is surrounded by bold or italics is resolved.
Tweaked Linker::splitTrail() to keep it from permanently caching $wgContLang's linktrail; when we change content languages during a script run as we do with parser tests, that was leaving us stuck forever on English's linktrail.
This may slightly slow down that path, since it'll have to make a couple brief function calls into the Language object and its data cache.
Mark A. Hershberger [Wed, 6 Apr 2011 19:50:54 +0000 (19:50 +0000)]
Apply modification of mdale's patch from Bug #28420: “Re-factor upload tests to support extensions extending upload test case”
Raimond Spekking [Wed, 6 Apr 2011 19:50:00 +0000 (19:50 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-04-06 19:28:00 UTC)
Brion Vibber [Wed, 6 Apr 2011 18:45:27 +0000 (18:45 +0000)]
* (bug 28372) Fix bogus link to suppressed file versions in ForeignDBRepo
Based on patch by Umherirrender: https://bugzilla.wikimedia.org/attachment.cgi?id=8361&action=edit
If file is not local, we can't make a link so don't.
Alexandre Emsenhuber [Wed, 6 Apr 2011 18:38:48 +0000 (18:38 +0000)]
And I forgot to commit this file in r85557
Alexandre Emsenhuber [Wed, 6 Apr 2011 18:37:09 +0000 (18:37 +0000)]
* Added possibility to set short options aliases to long long options, added -h alias to --help and -q to --quiet for all scripts
* Converted edit.php, people using short option version (with only one dash) won't have to change anything, but the ones using long options that were only one character (--u, --s, --m, --b and --a) will either need to change to short options or use full name
Brion Vibber [Wed, 6 Apr 2011 18:27:20 +0000 (18:27 +0000)]
Fix regression from r81558: fatal error in ForeignFileRepo thumb fetching when thumb caching is disabled.
Addition of optional parameters lead to passing default 'null' straight through on a reference parameter, which PHP 5.3 really disapproves of. Sticking in a temp variable resolves this easily.
Brion Vibber [Wed, 6 Apr 2011 18:23:07 +0000 (18:23 +0000)]
* (bug 28306) Fix exposure of suppressed usernames in ForeignDBRepo
Patch by Umherirrender: https://bugzilla.wikimedia.org/attachment.cgi?id=8360&action=diff
Happy-melon [Wed, 6 Apr 2011 17:39:18 +0000 (17:39 +0000)]
Follow-up r85403: fix fatal in parser tests.
Max Semenik [Wed, 6 Apr 2011 16:45:46 +0000 (16:45 +0000)]
Made Special:ListFiles transcludable
Krinkle [Wed, 6 Apr 2011 16:34:03 +0000 (16:34 +0000)]
notes for r85546
Krinkle [Wed, 6 Apr 2011 16:31:46 +0000 (16:31 +0000)]
Remove color:black from table {} in skins (bug 28422) + small fixes
* Remove color:black from table {} in skins (bug 28422)
* Add color:black to .wikitable (since it has a background-color)
* Update comment about CSS3 'word-wrap:break-word' support in Gecko
* Remove line-break in mediawiki.js (it's ~ 90 chars, acceptable)
Chad Horohoe [Wed, 6 Apr 2011 13:50:45 +0000 (13:50 +0000)]
Merge from 1.17wmf1: r84259
Mark A. Hershberger [Wed, 6 Apr 2011 00:56:22 +0000 (00:56 +0000)]
Patch from Bug #28406:
# the digitClass join versions were inverted: for a maxLength > 1 it should be
(|||), not []
# the regexp escape for digits in the ts_number_transform_table was a bit, er,
strange. Although it worked, I think my version is more common.
# most important: As recommended in http://en.wikipedia.org/wiki/Percent_sign,
there may be some whitespaces between the number and the
"%". See also Bug #15422 for that, I'm not sure wheter it's
included there.
I didn't include the “non-breaking space is part of \s” bit since I didn't want to mess up browser bug work-arounds
Aaron Schulz [Tue, 5 Apr 2011 23:28:39 +0000 (23:28 +0000)]
Follow up r85467: changed some countRevisionsBetween/countAuthorsBetween callers to pass in objects, which avoids queries
Platonides [Tue, 5 Apr 2011 22:38:37 +0000 (22:38 +0000)]
Revert r68358. Causes bug 27474.
Added parser test. Added another parser test for what it seems to try to account for
but that in fact doesn't change when trying to achieve, since ids don't seem to be
affected when flipping $wgHtml5 and $wgExperimentalHtmlIds (so r68358 seems useless).
Raimond Spekking [Tue, 5 Apr 2011 20:55:44 +0000 (20:55 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-04-05 20:23:00 UTC)
Aaron Schulz [Tue, 5 Apr 2011 20:42:45 +0000 (20:42 +0000)]
* Cleanups to getFirstRevision and getEarliestTime
* Rewrote countRevisionsBetween/countAuthorsBetween to avoid assuming rev_id is in chronological order
* Made countAuthorsBetween use $limit+1 automatically for convenience; updated callers
Brian Wolff [Tue, 5 Apr 2011 19:51:22 +0000 (19:51 +0000)]
(bug 28430) Make HTML and TeX output of <math> tags be LTR always
The PNG output of <math> is always LTR regardless of content language,
and since we switch back and forth between PNG/html depending on
how complicated the formula is, we should be consistent. Also according to
the bug always doing LTR even on RTL langs is appearently correct behaviour.
Also change for plain TeX output to be LTR, as otherwise the TeX commands
don't really make sense if $ ^{355} $ gets turned into $ {355}^ $
Alexandre Emsenhuber [Tue, 5 Apr 2011 16:28:38 +0000 (16:28 +0000)]
Seems I forgot this file in r85442
Alexandre Emsenhuber [Tue, 5 Apr 2011 16:17:39 +0000 (16:17 +0000)]
* (bug 28365) Added description for uiprop=preferencestoken in meta=userinfo
Happy-melon [Tue, 5 Apr 2011 10:44:07 +0000 (10:44 +0000)]
Follow-up r85403: rm debugging code and a defunct method call.
Tim Starling [Tue, 5 Apr 2011 04:43:54 +0000 (04:43 +0000)]
HipHop fixes:
* Fixed preg_replace /e usage in Sanitizer and UserMailer. This was already against policy.
* Removed the __get()-based lazy initialisation of $this->xpath in PPNode_DOM. This caused a notice in HipHop, and is also inefficient due to the need for dynamic properties.
* Fixed the assertion in PPNode_DOM::splitHeading(), flagged by Inez Korczynski. It was obviously completely broken, converting a non-existent property to boolean, and it only appeared to work in Zend by accident.
Tim Starling [Tue, 5 Apr 2011 04:25:10 +0000 (04:25 +0000)]
In the HipHop server:
* Serve static content.
* Less verbose logging, we don't really need a notice for every SQL query.
Brion Vibber [Tue, 5 Apr 2011 01:18:40 +0000 (01:18 +0000)]
* (bug 24755) AuthPlugin auto-creation of local accounts can now be aborted by
other extensions by handling the 'AbortAutoAccount' hook, similar to the
'AbortNewAccount' triggered by explicit account creations. (They are separate
to avoid loops and confusion; auth plugins like CentralAuth need to handle
AbortNewAccount separately.
Happy-melon [Tue, 5 Apr 2011 00:06:47 +0000 (00:06 +0000)]
Follow-up r85302: update OutputPage constructors in core.
Happy-melon [Mon, 4 Apr 2011 23:09:21 +0000 (23:09 +0000)]
Fix for catchable fatals thrown on invalid titles, follow-up to miscellaneous Context commit pulled out of a hat (let's go for r85252). We must always have a Title object, even on invalid titles, for the purposes of not melting the Skin. The previous method was to make that a barely-existent half-title from SpecialPage::getTitleFor( 'Badtitle' ), where that is a special page which is not actually defined, but exists in the localisation alias lists. Instead, subclass Title as an explicit BadTitle which we can test for. The badtitle error page, which has empty string for its name in all forms, would probably be quite a good test of our JavaScript error checking.
Sam Reed [Mon, 4 Apr 2011 22:34:32 +0000 (22:34 +0000)]
Fix $$ from r85379
Sam Reed [Mon, 4 Apr 2011 21:23:22 +0000 (21:23 +0000)]
Documentation, fix indenting
Sam Reed [Mon, 4 Apr 2011 21:13:34 +0000 (21:13 +0000)]
Fixup a few undefined variables and alike while checking REL1_17
Brion Vibber [Mon, 4 Apr 2011 20:59:04 +0000 (20:59 +0000)]
Workaround for bug 28146: running out of memory during Unicode validation/normalization when uploading DjVu file with lots of embedded page text
This provisional workaround runs a page at a time through UtfNormal::cleanUp() instead of running the entire file's dumped text at once. This avoids exploding memory too much during the preg_match_all() used to divide up ASCII and non-ASCII runs for validation, which is very wasteful for long texts in Latin languages with many mixed-in non-ASCII characters (like French and German text).
Won't fix legit cases of huge texts, such as realllllllllly long page text, which would still be subject to getting run through at web input time in a giant chunk.
Krinkle [Mon, 4 Apr 2011 20:51:41 +0000 (20:51 +0000)]
Set forgotten api parameters types
* (bug 28394) Set forgotten parameters types in ApiUnblock
* (bug 28395) Set forgotten parameters types in ApiParse
Brion Vibber [Mon, 4 Apr 2011 19:06:01 +0000 (19:06 +0000)]
* (bug 28417) Fix PHP notice when importing revision without a listed id
Mark A. Hershberger [Mon, 4 Apr 2011 18:47:28 +0000 (18:47 +0000)]
revert r85177 since a lot of people don't set their $wgLocaltimezone
Mark A. Hershberger [Mon, 4 Apr 2011 18:45:03 +0000 (18:45 +0000)]
minor w/s cleanup
Tim Starling [Mon, 4 Apr 2011 14:40:36 +0000 (14:40 +0000)]
Added missing file from r85327.
Raimond Spekking [Mon, 4 Apr 2011 13:21:39 +0000 (13:21 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-04-04 12:51:00 UTC)
Tim Starling [Mon, 4 Apr 2011 12:59:55 +0000 (12:59 +0000)]
The beginnings of HipHop compiled mode support. It works now for parser cache hits.
* Work around HipHop issue 314 (volatile broken) and issue 308 (no compilation detection) by adding some large and ugly compilation detection code to WebStart.php and doMaintenance.php.
* Provide an MW_COMPILED constant which can be used to detect compiled mode throughout the codebase.
* Introduced wfIsHipHop(), which detects either compiled or interpreted mode. Used this to work around unusual eval() return value in eval.php.
* Work around lack of ini_get() in Maintenance.php, by duplicating wfIsHipHop().
* In Maintenance::shouldExecute(), accept "include" as an inclusion function name, since all kinds of inclusion give this string in HipHop.
* Introduced new class MWInit, which provides some static functions in the pre-autoloader environment.
* Introduced MWInit::compiledPath(), which provides a relative path for invoking a compiled file, and MWInit::interpretedPath(), which provides an absolute path for interpreting a PHP file. Used these new functions in the appropriate places.
* When we are running compiled code, don't include files which would generate duplicate class, function or constant definitions. Documented the new requirements on the contents of Defines.php and UtfNormalDefines.php.
* In HipHop compiled mode, it's not possible to have executable code in the same file as a class definition.
** Moved MimeMagic initialisation to the constructor.
** Moved Namespace.php global variable initialisation to Setup.php.
** Moved MemcachedSessions.php initialisation to the caller in GlobalFunctions.php.
** Moved Sanitizer.php constants and global variables to static class members. Introduced an accessor function for the attribs regex, as a new place to put code formerly at file level.
** Moved Language.php initialisation of $wgLanguageNames to Language::getLanguageNames(). Removed the global variable, marked "private" since forever.
* In two places: don't use error_log() with type=3 to append to a file, HipHop doesn't support it. Use file_put_contents() with FILE_APPEND instead.
* Work around the terrible breakage of class_exists() by using MWInit::classExists() instead in various places. In WebInstaller::getPageByName(), the class_exists() was marked with a fixme comment already, so I replaced it with an autoloader solution.