Have hh build handle out-of-date server better

Summary: Handle version skew a little better.

Reviewed By: @aryx

Differential Revision: D1419020
Unbreak make bin on darwin

Summary: I broke the code that copies hh_server to ../bin on OS X. This fixes
it.

Reviewed By: @jwatzman

Differential Revision: D1407388
Casting Closure to Array

Summary: When casting an object of type Closure to an Array, the result should be an array containing the closure.

Reviewed By: @fredemmott

Differential Revision: D1411182
Update gdb/hhvm.py for conversion of PreClass::m_name to LowStringPtr

Summary: PreClass::m_name was converted from StringData* to LowStringPtr in
ab9494c3c. Also add fixme for the removal of IndexedStringMap::m_vec,
which broke the ObjectData printer, and add a workaround to avoid an
exception.
Closes #3075

Reviewed By: @ptarjan

Differential Revision: D1413647

Pulled By: @LiraNuna
Improved Zend compatibility in the reflection API.

Summary: * `inNamespace()`, `getNamespaceName()`, and `getShortName()` should not be
   `final`. This was causing issues in phpspec which mocks these methods.
 * Added missing `ReflectionFunctionAbstract::getClosureScopeClass()` and
   `ReflectionFunctionAbstract::__clone()`.
 * Removed abstract `ReflectionFunctionAbstract::getClosure()` as it's not in
   the Zend API meaning userland classes extending `ReflectionFunctionAbstract`
   are unlikely to implement it.
 * Made `ReflectionFunctionAbstract::isClosure()` non-abstract as it's not
   abstract in the Zend API.

Added tests for mocking `inNamespace()`, `getNamespaceName()` and `getShortName()`.

Closes #3070

Reviewed By: @fredemmott

Differential Revision: D1411359

Pulled By: @LiraNuna
Fix breakage of DSO loading on all platforms

Summary: bc00a9937 fixed a spelling error, but failed to fix the accidentally inverted logic, meaning that instead of underscores being unconditionally omitted, they would instead be added when they are not needed, and omitted when they are needed.

Exit statuses are hard. Used EXIT_SUCCESS/EXIT_FAILURE in the hopes of making the code readable.
Closes #3104

Reviewed By: @paroski

Differential Revision: D1419880

Pulled By: @jwatzman
Use default syntax in _php_mb_regex_ereg_search_exec

Summary: `_php_mb_regex_ereg_search_exec` was using an invalid syntax (`NULL`) and that ended up with a segfault whenever it was used.
Fixes #3111

Reviewed By: @ptarjan

Differential Revision: D1420000
Link libzip from where it's found, not from unspecified

Summary: Passing the full path to the target lib ensures the
right linker flag is set.

Reviewed By: @ptarjan

Differential Revision: D1418348
Expose APC info to admin port and via apc_cache_info() to give open source too a visibility over APC

Summary: expose APC info via apc_cache_info and admin port

Reviewed By: @markw65

Differential Revision: D1405003
Get rid of HPHP::JIT::tx

Summary: Its just a global variable pointing at &mcg->m_tx, so rewrite to
use that instead.

Reviewed By: @bertmaher

Differential Revision: D1418725
Fix hhvmquickinterp tests in framework runner

Summary: '../' includes don't work the way they previously did :/ old code also doesn't work in php5.

Reviewed By: @ptarjan

Differential Revision: D1420816
Added \e escape code

Summary: Added \e escape code for ESC (27), see [PHP #60350](https://bugs.php.net/bug.php?id=60350) for details.

There may be some other tests that are fixed by this (for example (k|r|kr)sort_variation5), but there were some strange behaviors so I'm not quite sure about the results in my environment.
Closes #3077

Reviewed By: @ptarjan

Differential Revision: D1413752

Pulled By: @LiraNuna
Can't alias built-in classes

Summary: PHP does not allow to alias built in classes. Found via bad zend test

Reviewed By: @ptarjan

Differential Revision: D1399035
Allow MixedArray::MakeReserveLike to work on arrays with virtual size

Summary: Previously this would try to create an array with 2^32 elements, causing
an assertion or crash. array_map.hhas calls NewLikeArrayL on arbitrary
input, which in turn calls MixedArray::MakeReserveLike. So any array
originating from EZC would crash when fed into array_map().

Added two test cases which previously crashed.
Closes #3065

Reviewed By: @ptarjan

Differential Revision: D1411457

Pulled By: @LiraNuna
Fix declaration of apc_cache_info. Apparently everything worked just fine even with the wrong decalaration...

Reviewed By: @ptarjan

Differential Revision: D1421183
Only print clear-line escape sequence if necessary

Summary: I thought it would be okay to unconditionally print it in the non-json
output, but apparently people *are* using non-json output to drive
editor integration.

Reviewed By: @aryx

Differential Revision: D1421410
Change g_array_funcs to dispatch to proper IntMap functions

Summary: Change g_array_funcs to dispatch to kIntMapKind templated versions of functions
so that warnings are raised appropriately for:

 * Looking up, inserting, or removing a string key
 * Appending to, dequeuing from, or popping from the array
 * Inserting a value that is a reference
 * Renumbering array keys

Reviewed By: @paroski

Differential Revision: D1413912
Introduce Dbl-specific relational IR opcodes

Summary: Relational comparisons between doubles are common in microbenchmarks, so
I'm implementing proper codegen for them here.

We had an attempt at codegen for this stuff already in the code, but it
didn't work quite right, and would have been very hard to bring up to
date with my recent fix to how NAN comparisons work. This new
implementation also eliminates the need to check the parity flag to
detect the unordered case.

This doesn't add fused jump opcodes corresponding to these; I could do
that, but I'd like to get this in first, and I'd actually much rather
come up with a general solution for IR jump fusion (i.e. instead of
having all these semi-duplicated opcodes, add a notion of condition
flags into the IR).

Reviewed By: @swtaarrs

Differential Revision: D1386084
fixed a security vulnerability in php where session encodings could have data injected into them

Summary: When sessions were encoded there was no check to ensure keys did not contain undef markers.

fixes CVE-2010-3065

Relevant links:

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-3065

http://php-security.org/2010/05/31/mops-2010-060-php-session-serializer-session-data-injection-vulnerability/index.html

Reviewed By: @JoelMarcey

Differential Revision: D1376056
Move inProgressTailJumps out of SrcRec

Summary: Its a temporary vector and belongs in CodeGenFixups

Reviewed By: @edwinsmith

Differential Revision: D1419821