Add monolog to framework test runner

Adds monolog to framework test runner

Closes #1397

Reviewed By: @ptarjan

Differential Revision: D1108661

Pulled By: @scannell
Included ReactPHP and Ratchet to framework runner

Included ReactPHP and Ratchet to framework runner

Closes #1404

Reviewed By: @ptarjan

Differential Revision: D1108669

Pulled By: @scannell
Analyze systemlib.php in repo mode

This lets us analyze systemlib.php in wholeprogram mode. It also
analyzes the various extension php files in wholeprogram mode. Previously,
whole program mode was almost entierly unaware of the mini-systemlibs, and
things only really worked by luck, and bugs in the way they were processed.

Reviewed By: @jdelong

Differential Revision: D1099615
trait requires: add basic syntax [1/4]

traits should be able to state what they require of their
 subclasses:

  require implements SomeInterface
  require extends SuperClass

 This will aid hack in being able to typecheck trait bodies as well as
 allowing more disciplined trait coding (tying traits to class
 hierarchies, as happens in practice).

Reviewed By: @jdelong

Differential Revision: D1101619
Lambda syntax

Reviewed By: @jdelong

Differential Revision: D1108850
Fix a bug in FPI region recording for internal async function calls

The FPIRegionRecorder is notoriously easy to misuse.

Reviewed By: @dariorussi

Differential Revision: D1107441
Remove simplifySpillStack's attempted dead store elimination

It isn't aware of situations where autoload can clobber stack
slots.

Reviewed By: @ottoni

Differential Revision: D1107251
Update local types for the bytecode sequences CGetL; InstanceOfD; Jmp{N,}Z

Reviewed By: @dariorussi

Differential Revision: D1101639
Remove various subop static_casts in abstract-interp.cpp

These are no longer needed now that the opcode table knows
about subop types.

Reviewed By: @swtaarrs

Differential Revision: D1102943
Better type inference for collections

Let type inference know the actual type for T_COLLECTION
expressions. Also mark them "definitely not null".

Reviewed By: @jdelong

Differential Revision: D1109650
fix ini_get('memory_limit')

No information of input string was stored by ini_set. For e.g.
10K was converted to 10240 which ini_get('memory_limit') returned.
Solution was to store user passed in string and convert it to integer
whenever required

Reviewed By: @ptarjan

Differential Revision: D1109228
Fix names of a bunch of opcodes in ir.specification

It looks like someone renamed them in the source code but
forgot to update the spec.

Reviewed By: @jdelong

Differential Revision: D1109814
Fix an issue with empty async function closures---finishStatement off by one

Also remove a "useless non-terminal" warning (an old rule was
accidentally left in).  This only affected empty async function
closures, since the onClosure itself wasn't off by one, and all
finishStatement does is replace empty statement lists.

Reviewed By: @edwinsmith

Differential Revision: D1109810
Allow fastcgi to use the DOCUMENT_ROOT from the web server

We shouldn't use the current directory or the configured `SourceRoot` since the webserver could have many virtual hosts and always will send us a DOCUMENT_ROOT header.

The only scary part of the change is checking for `sourceRoot` instead of `getDocumentRoot` but I think it is right.

Reviewed By: @markw65

Differential Revision: D1108017
fix DOCUMENT_ROOT for fastcgi

We shouldn't have spcialized code in here for fastcgi, and it didn't even work.

Reviewed By: @markw65

Differential Revision: D1109072
Made paramater of newInstanceArgs method optional

PHP documentation requires it to be optional, passing no
argument would call the constructor taking no arguments.

Reviewed By: @ptarjan

Differential Revision: D1109795
Reestablished PHP 5.3 compatibility in test runner

Fix compat issues with Zend PHP 5.3

Closes #1420

Reviewed By: @ptarjan

Differential Revision: D1110759

Pulled By: @scannell
Fix test runner

Fix test runner

Reviewed By: @edwinsmith

Differential Revision: D1110872
fix ob_get_contents return value

ob_get_contents returns false if not currently buffering output

Closes #1429

Reviewed By: @alexmalyshev

Differential Revision: D1110757

Pulled By: @scannell
Zend compatibility - stripslashes

Zend's implementation of stripslashes removes a trailing
backslash in a string, except in the empty string it is replaced by a
NUL. Prior to this PR, HHVM's implementation always replaced the
trailing backslash with a NUL. The reason is, HHVM unconditionally
appended the character following a backslash. When the string ends in
backslash, the following character is the null-terminator of the
underlying C-string.

This was identified because of a failing test in the WordPress test
suite.

Closes #1423

Reviewed By: @alexmalyshev

Differential Revision: D1110135

Pulled By: @scannell