Fix fastcgi build break on OS X

Summary: Disable fastcgi compilation on OS X due to missing dependencies
for the moment.

Reviewed By: @julk
Modify calculation formula and a bit of clean up

Modifying the calculation formula to take into account blacklisted tests as failures.

Reviewed By: @ptarjan

Differential Revision: D1048288
More improvements to the test framework for job queue

- simulate random arrival of events.
- keep track of request queue time and wall time for each request.
- keep track of the max queue time and max load.
- added ability to add a padding to the time to simulate random delays.
- compute various statistics for queuing time and wall time.

Reviewed By: rkroll

Differential Revision: D1044762
Fixing OSX build.

This is an internal part of the fix that allows HHVM to compile
under OS X.

Reviewed By: @scannell

Differential Revision: D1048727
correct undoing xhp name mangling in type_annotation

... this code should be the inverse of
 ScannerToken::xhpLabel.

Reviewed By: @dariorussi

Differential Revision: D1039358
Move back to a fgets model and clean up test analyzing a bit

Since we determined that fgetc didn't solve deadlocking, and we just blacklisted those tests instead, we go back to fgets.

Also, clean up the way we analyze tests and their statuses.

PEAR is flaky. I don't think it is any atomicity or overwrite problem with the script. I think it might be the fact that we are running these things with separate processes. Or the tests are flaky. Either way we need a serial mode.

Reviewed By: @ptarjan

Differential Revision: D1049044
reflection: better tests for xhp reflection

... and expect file built from correct branch this time.

Reviewed By: @scannell

Differential Revision: D1049263
Have ElemDObject treat ArrayObject like an array

Corrects the case when a SetM is performed on an ArrayObject
that holds an array with a ref count of 1.

Reviewed By: @ptarjan

Differential Revision: D1048713
Move warning in gc_collect_cycles() under HHSyntax

Was causing tests to fail in Magento2

Reviewed By: @scannell

Differential Revision: D1048980
Get rid of global register variable in function-entry-helpers

This rewrites some helpers to avoid using the global
rbx register. This is needed for lto support (or at least, we
would have to compile function-entry-helpers.cpp with lto
off). Its also needed if we want to compile with clang, and it
will help with the arm port.

This adds a few new arm failures, but also fixes some existing bugs.

Reviewed By: @jdelong

Differential Revision: D1045712
Clean up types of Block::back and Block::front

They returned IRInstruction*, while dereferencing a Block::iterator
gives IRInstruction&. This diff changes it to be consistent with every other
container. I also changed it so you can't get an IRInstruction& from a const
Block*. Luckily no code appeared to be depending on that.

Reviewed By: @jdelong

Differential Revision: D1049640
FPushCuf: Optimize the case where callable is an (obj, staticstr)

The pattern call_user_func(array($obj, "staticString"), ...)
is pretty common, and it's basically the same as FPushObjMethodD
except it warns instead of fataling when the method is not defined.
Catch this pattern and turn it into a similar IR sequence, and add a
template flag to methodCacheSlowPath to warn instead of fataling.

Reviewed By: @swtaarrs

Differential Revision: D1042143
Move o_properties out of ObjectData to side table

Pessimize dynamic properties in favor of smaller objects.
This goes with removing the vtable for ObjectData.

Reviewed By: @swtaarrs

Differential Revision: D1046746
Remove object data vtable

This is feasable now, after all the steps taken toward it
earlier.

Some subclasses still use vtables, so now we now have to take care to
do correct casts between ObjectData* and c_Foo*'s.  (HNI should
eventually let us change the c_Foos so they don't derive from
ObjectData at all.)  This diff changes things so that we have a custom
instance delete function (this replaces the late-bound ~ObjectData), a
bit in the object attributes that indicates whether it's got a native
subclass, and some additional metadata in PreClass telling us the
offset of the ObjectData subobject.  A variety of extension
destructors were also moved to headers so they could be inlined in the
appropriate delete_Foo functions (their only caller).

Reviewed By: @jano

Differential Revision: D1046763
Remove generic dtor helper stub

It appears this doesn't help us in HHIR.

Reviewed By: @ottoni

Differential Revision: D1047133
Fix reserialize() to properly handle the 'V' and 'K' serialization types

We hit an APC-related bug where reserialize() was being called on a
serialized collection during HHVM startup (when reading APC prime values
from a file), and this caused HHVM to fall over.

This diff fixes reserialize() and adds some test cases and comments.

Reviewed By: @markw65

Differential Revision: D1050281
Translate InstanceOf

Mostly can use opcodes we've made for InstanceOfD, with a few
other additions.

Reviewed By: @markw65

Differential Revision: D1050261
Remove CSE flag from LdClsCachedSafe

If this instruction returns null, it's not safe to CSE it if
something in between may have defined the class.

Reviewed By: @markw65

Differential Revision: D1050386
Accept paths without leading /, too

Paths without a leading / were being rejected by MakePathList.
This changes the code to match the original FileCache::writeDirectories
logic.  It also drops the "return the filename, too" scheme since the only
call site just throws it out anyway.

Reviewed By: @paroski

Differential Revision: D1050552
admin endpoint to change the log level

This is super useful for debugging ProxygenServer

Reviewed By: @jdelong

Differential Revision: D1049645