improve strpbrk path with search lists that contain null

Summary: ... we can use some tricks to use the nicely optimized
 strcspn for char lists with null. If the null byte is at the
 beginning or end of a string, we can avoid copying.

Reviewed By: @paroski

Differential Revision: D1350409
Add JIT support for File and Dir bytecode instructions

Summary: That's it.

Reviewed By: aravind

Differential Revision: D1355278
Be more efficient with empty_array

Summary: Create empty_array() and empty_array_ref which should skip as
many checks as possible on this codepath.

Reviewed By: @markw65

Differential Revision: D1355182
Use empty_string instead of return "" (base, 3/n)

Summary: Splitting this diff due to issues in perflab to identify the
root cause.

Reviewed By: @markw65

Differential Revision: D1354056
Add String(const StaticString&) constructor

Summary: Add short-circutiing constructor for constructing a String
from a const StaticString&.

Reviewed By: @markw65

Differential Revision: D1354924
hhi sync www => fbcode

Summary: hhi sync

Reviewed By: @elgenie

Differential Revision: D1354858
Use empty_string instead of return "" (base, 1/n)

Summary: More conversions from returning "" to using empty_string.

Reviewed By: @markw65

Differential Revision: D1351323
Server push APIs for Transport

Summary: SPDY and forthcoming HTTP/2.0 support pushing resources from server to client.  Add APIs to Transport with a default implementation of off/not supported.

Reviewed By: dcsommer

Differential Revision: D1334564
Pass ObjectData* instead of const Object& to HNI methods, remove null checks

Summary: The accesses to -> on Object will do a null check, and most
of the code also had explicit null checks and instanceof checks.  Also
at runtime this means passing a pointer to a pointer, which the
compiler may repeatedly have to reload if you make calls to other
translation units because it won't know that the ObjectData* in the
Object didn't change.

Reviewed By: @sgolemon

Differential Revision: D1347086
Animate spinner instead of spamming terminal

Reviewed By: @jwatzman

Differential Revision: D1356613
Functorize binaries

Summary: Functorizing hack binaries to make it easy to share code.

This is a big diff...sorry! I can split it up if reviewers like

Reviewed By: bhosmer

Differential Revision: D1353615
Changed Exception to UnexpectedValueException to match php

Summary: Fixes part of a zend test.
Closes #2809

Reviewed By: @ptarjan

Differential Revision: D1356526

Pulled By: @JoelMarcey
Exit immediately on SIGTERM in server mode

Summary: In server mode, the HHVM server will now always terminate immediately
if SIGTERM is received and a (default off) Server.KillOnSIGTERM
hdf configuration setting is on. Previously, SIGTERM signals would
initiate a graceful shutdown of the server, which runs against
precedent in unix servers. This previous behavior is maintained
when the Server.KillOnSIGTERM option is false, which is by default.
Closes #2779

Reviewed By: @ptarjan

Differential Revision: D1350911

Pulled By: @JoelMarcey
Implemented ParentIterator

Summary: Fixes a zend test.
Closes #2808

Reviewed By: @ptarjan

Differential Revision: D1356519

Pulled By: @JoelMarcey
NativeImpl inlining: some support for HNI methods, param casts, static methods

Reviewed By: @fredemmott

Differential Revision: D1347142
Clean up ActRec elision, partial implementation for Call as weak frame uses

Summary: This removes PassFP, PassSP, DefInlineSP, the list of frames
in ReDefSP's extra data, the old code that tried to eliminate frames
around calls, and simplifies the DecRef stack depth fixups to just
move it down to the known safe depth.  Also split optimizeActRecs into
a some subroutines.  I was planning to move this to a different file
than dce, but it kinda seems like it's actually nice for it to share
the normal marking and sweep steps for now, so we might as well keep
it here until/unless it grows bigger (or e.g. if we need it to iterate
to remove multiple frames in nested calls some day, which we might not
want to happen on every dce pass).

Reviewed By: @swtaarrs

Differential Revision: D1343427
Print ir before relocation at a higher trace level

Reviewed By: @markw65

Differential Revision: D1357224