Increase minimum GCC version to 4.7.0

If you absolutely can't upgrade past gcc 4.6.x,
checkout tag gcc-4.6 or follow branch HHVM-2.2
Revert temporary gcc 4.6 hacks.

I modded the OSS version of the repo last week to keep it
building on gcc 4.6.  After much discussion we're setting the
minimum version at 4.7 and rather than sync these hacks internally
we'll be reverting them from the OSS side.
rename HPHP_VERSION to HHVM_VERSION

People keep asking me how to verify their upgrade worked and I tell them to print this constant. Then they always ask why is it still named HPHP. Good question.

I left the old one. Maybe we can kill it in 6 months?

Reviewed By: @sgolemon

Differential Revision: D1019640
ArrayInit constructor ssize_t -> size_t

In ArrayInit constructor, n is defined as ssize_t, but negative values
are not handled in any way. We should point that out to callers by
making n of type size_t.

Reviewed By: @edwinsmith

Differential Revision: D1017631
Fix ICU compliation when not using 51.x

'brew update' to a newer icu4c on OS X exposed that we aren't
being consistent in how we include it resulting in linker errors due to
confusion regarding what the icu namespace is.

Reviewed By: @sgolemon

Differential Revision: D1019529
Add two more functions to FBUnserializer API

This diff adds two functions to the FBUnserializer API, which I need to use.
1. done(), check whether the whole string is unserialized (I need it to make sure the fbobject/assoc range unserialize consumes all the input and didn't leave anything undecoded (and lost parts of the data).
2. getSerializedMap. I ran into a case that the map (structure data) comes first in the result, but the needed info (structure data fbtype) comes after that. I need to record the serialized map somewhere and then redecode the map with the fbtype.

Reviewed By: andrii

Differential Revision: D1018331
Jump opt for side-exiting jcc's

In the region compiler we can create side exits due to
user-level control flow, and we'd like the side exit to not go through
Astubs after it's been chained, if possible.  This optimization is
almost like what we already have for CheckStk and CheckLoc, but we
need it for Jcc's too.

Reviewed By: @jdelong

Differential Revision: D1019242
Fix template explosion in TransRec::print

folly::format explodes and exceeds a sane template depth so
break up the calls.

Reviewed By: @swtaarrs

Differential Revision: D1019754
Import php-src pull #479

Fix clowny error in zend-strtod.cpp on ARM platforms that passed through the PHP internals mailing list

Reviewed By: @JoelMarcey

Differential Revision: D1019758
Fix Buffer Overrun messages for tiff files

While processing tiff tags, the end pointer was not updated
after a realloc. Also, while processing IFD tag, end and begin pointers
were switched.

Closes #1154
Closes #1193

Reviewed By: @ptarjan

Differential Revision: D1019738

Pulled By: @scannell
Fixed step to skip generated functions

Changed cmd_step to check at onBeginInterrupt if the file line is empty i.e. returns as ":0"
In this case continue stepping

Reviewed By: @mikemag

Differential Revision: D1017420
Fix list command so that it finds the right start line and it can find systemlib.php

The list command was using the the string "line2", cunningly disguised as the static string variable 'line1' to look for the line where a func/class/method starts. Also, the file name it got for systemlib.php was expected to always be exactly "systemlib.php" but it turns out this is no longer the case, or at least not always.

Reviewed By: @mikemag

Differential Revision: D1018535
change to https://

I want to be able to run these headless, and with the `git@` urls it tries my public key first.

Reviewed By: @JoelMarcey

Differential Revision: D1020293
Refactoring JobDispatcher for greater type safety

Removed a superflous template argument for the Dispatcher,
replaced void* m_opaque for typed m_context.

Reviewed By: @jdelong

Differential Revision: D988558
Skip function exit events after side exiting in an inlined call

This is slightly less optimal than running the function enter event in
the exit trace, but it's significantly simpler and safer. I might investigate a
better solution some time in the future.

Reviewed By: @mikemag

Differential Revision: D1020793
Remove Block::m_func and un-plumb it through the JIT.

I think the need for m_func has been subsumed by every instruction
having a BCMarker.  This is a mechanical change; m_func was dead.

Reviewed By: @ottoni

Differential Revision: D1019715
Print and toString for Blocks

These are nice to have when poking around in gdb

Reviewed By: @edwinsmith

Differential Revision: D1021633
Provide an API to store an APC key without the TTL adjustment applied.

Why do I need that?
On devservers I need to be able to store certain APC keys without them
being automatically evicted when the TTLLimit expires, i.e. to simulate
the "primed" behavior in sandboxes, which don't have apc_prime.so.
The  cost of rebuilding these keys can negatively impact the sandbox
performance.

The function name is intentionally scary do discourage the unintentional
use (which mimics the www conventions).

Reviewed By: @dariorussi

Differential Revision: D1016718
Revert "[hphp] make 'abstract async' syntax error only behind !(whole program)"

We're still not ready for this.

Reviewed By: @elgenie
Create file cache as 0664, not 0600

Match mode for file cache relative to original code

Reviewed By: @emiraga

Differential Revision: D1022126