Add missed 'name' property for ReflectionFunction, resolves #2492

Summary: Closes #2497

Reviewed By: @fredemmott

Differential Revision: D1287050
Fix potential null pointer dereference.

Summary:
Closes #2392
Closes #2489

Reviewed By: @fredemmott

Differential Revision: D1287004
Eliminate hphp-only test runs in repo mode

Summary: Now that hhbbc is probably on for good, we can just run tests with
hhbbc.

Reviewed By: @jdelong

Differential Revision: D1287706
Better error when TC is full

Summary: It now shows the the size and remaining capacity of the block we're
overflowing. I'd like to show which block it is (a, astubs, ...) but that will
require a bunch more refactoring, at which point we should probably just fail
more gracefully.

Reviewed By: @ottoni

Differential Revision: D1287060
Refactor back ends into implementations of BackEnd.

Summary: Mechanically refactor explicit architecture-specific code branches into
implementations of a pure-virtual BackEnd class.  The initial BackEnd
API is intentionally uneven and incomplete; it serves as a foundation
for further refactoring and refinement.

Reviewed By: @jdelong

Differential Revision: D1233038
Allow replacing the file:// wrapper in a script

Summary: PHP5 started supporting this, so let's follow along.

Closes #2477

Reviewed By: @fredemmott

Differential Revision: D1287000
fix soap encoding on non-nillable empty properties

Summary: Issue 1: When having an existing SOAP class property that is not
initialized (private $prop), PHP encodes it into an empty element: even
if the WSDL does not set the "nillable" flag for the element. We must
check if the property exists, not just if the returned property isNull.
The following php-src file should make that clear:
https://github.com/php/php-src/blob/PHP-5.6/ext/soap/php_encoding.c#L1697

Issue 2: HHVM simply checks for an incorrect object type: String instead
of Object (and then grabbing its class name). Very obvious:
https://github.com/php/php-src/blob/PHP-5.6/ext/soap/php_encoding.c#L464

Not sure how to create a proper test for this:
- the majority of bad zend tests are currently being skipped
- all good zend tests pass
- HHVM itself only provides 3 tests that focus on SoapServer instead.
- I'd have to find a way to reduce my current setup (3rd-party SOAP
  server, abstracted client) into a small example.

Hopefully you can forgive the lack of a test this time, the 2 php-src
links above should convince you.
Closes #2505

Reviewed By: @fredemmott

Differential Revision: D1288053
Corrected error messages relating to array_column and default values

Summary: This diff is based on D1199090, with corrections to tests, it corrects the error messages given to the user when a method expects a minimum set of parameters but less are given.

Reviewed By: @sgolemon

Differential Revision: D1282695
Fix bug in xhp parsing

Summary: Previously the parser would look at
<foo><bar><baz>...</baz></bar></foo>
and return an Xhp consisting only of <foo></foo>
because it was confusing a child element's children
with child elements.

Reviewed By: @pikatchu

Differential Revision: D1277038
Make compress.zlib support wrapping other URIs

Summary: tl;dr: compress.zlib://foo.bar:///should/work/too

refs guzzle/guzzle#538

Reviewed By: @sgolemon

Differential Revision: D1285195
Fix passing null as an object param to builtins

Summary: fixes both explicit and default null (as opposed to null_object)

Closes #1399

Reviewed By: @swtaarrs

Differential Revision: D1123862
ignore_errors means ignore server errors, not all errors

Summary: refs guzzle/guzzle#538

Reviewed By: @sgolemon

Differential Revision: D1285439
Track decrefd locals state explicitly.

Summary: There is only one possible situation in which unwinder can see frame
with already decrefd locals -- when exit hook fails.

This can happen either because user profiler failed, or because exit
hook rethrows pending fatal (and who knows what in the future).

Let's add a flag to the ActRec indicating whether the locals were
already decrefd. This flag is set and checked only from slow paths, so
performance is not affected.

Allows introduction of opcodes that may throw before locals are decrefd.
Will be used by Await opcode.

Reviewed By: @edwinsmith

Differential Revision: D1288193
More ir guard relaxation cleanup

Summary: We were already mostly doing this, but this diff formalizes the fact
that AssertLoc|CheckLoc's typeParam is intersected with the input type of the
local to get the output type of the local. Now that all the Assert ops have
this behavior, we can trivially keep around apparently useless Assert ops that
could become useful after guard relaxation. This allowed me to eliminate the
not-quite-sound TypeConstraint::assertedType logic.

Reviewed By: @ottoni

Differential Revision: D1282956
Fix IR generation for InitThisLoc

Summary: We weren't decreffing the old value of the local, and doing
InterpOne(ThisInitLoc) would return a Gen instead of a Cell, tripping
asserts about locals not being Gens.

Reviewed By: @swtaarrs

Differential Revision: D1287682
Add CakePHP3: 96.67%

Summary: peanut-butter-jelly-time

Reviewed By: @JoelMarcey

Differential Revision: D1289291
Make GenReadApi covariant

Summary: GenReadApi is the API we expose for fetching multiple ids from a datastore. Currently we cannot type check hierarchies because GenReadApi is invariant. We need GenReadApi to be covariant so GenReadApi<token, Child> is a subtype of GenReadApi<token, Parent>.

Reviewed By: @elgenie

Differential Revision: D1287804
Strip namespace from OutlineView

Reviewed By: @jwatzman

Differential Revision: D1287462
Fix Autocomplete globals for namespaces

Summary: First, strip the slashes from the start of the results when we print them.

This is actually sufficient to keep things working for those who aren't using namespaces.

For those that are, they could either be trying to complete something in a namespace, but haven't gotten to the \ yet, or they could be trying to compete something that isn't in the namespace.

So for matching, we strip namespace on both the user input and on the class/fun name.

Reviewed By: @jwatzman

Differential Revision: D1287557
Fix identify function for namespaces

Reviewed By: @jwatzman

Differential Revision: D1287579