Disable flaky zend test

Reviewed By: @jdelong

Differential Revision: D1099379
Fix a bug in return type inference: ctors can be inherited from abstract classes

I think I was thinking that since interfaces can't declare
__construct methods, abstract classes probably couldn't either.
Actually not true.

Reviewed By: @dariorussi

Differential Revision: D1092876
Make IterRange work with range-based for

Give it a begin() and end() function.

Reviewed By: @edwinsmith

Differential Revision: D1093982
Minor const correctness fix in hhbc.{h,cpp}

Reviewed By: @alexmalyshev

Differential Revision: D1094436
Improve c_Map::reserve

This diff tightens up the logic in c_Map::reserve to be more careful when
mixing signed and unsigned integers and when mixing 32-bit and 64-bit
integers.

This diff also removes a bogus assert, adds some more (non-bogus) asserts,
and adds some comments.

Reviewed By: anietoro

Differential Revision: D1097684
Fix how the bytecode emitter handles foreach loops inside fault funclets

The bytecode emitter had a bug where it wasn't properly keeping track of
which iterators were live at a fault funclet's entry point. When emitting
a foreach loop inside the body of a fault funclet, the bytecode emitter in
some cases would erroneously use an iterator variable ID that was already
live.

This diff fixes the bug by updating the bytecode emitter to keep track of
which iterators were live at a fault funclet's entry point, and by updating
the logic for allocating iterator variable IDs to correctly handle foreach
loops inside fault funclets.

Reviewed By: @jdelong

Differential Revision: D1099508
Fold HPHP::Transl's contents into HPHP::JIT

Reviewed By: @ptarjan

Differential Revision: D1099088
fastcgi headers need unmangling

Headers as mangled in the FastCGI protocol, but the `getHeader()` method on `Transport` assumed the header was the original value.

Closes #1359

Reviewed By: @alexmalyshev

Differential Revision: D1098954
Fixes to parse_ini_(file|string)

Do a bunch of fixes in the parse_ini lexer and parser

Closes: #1320
Closes: #825
Closes: #838

Reviewed By: @ptarjan

Differential Revision: D970513
Disable flaky zend test

Reviewed By: @bertmaher

Differential Revision: D1100222
Fix RegSet::size() so it counts all the bits

builtin_popcount() silently truncated to int.

Reviewed By: @oyamauchi

Differential Revision: D1100154
make valgrind work

It doesn't always give us 4 bit aligned memory

Reviewed By: @edwinsmith

Differential Revision: D1060964
Add INI generator and generated files

Differential Revision: D1100639
Don't put null/false in the json we pass to the test runner

It doesn't like that. It's going to be fixed to not barf on None, but
this will make things strictly better.

Reviewed By: @ptarjan

Differential Revision: D1100177
Remove a couple 'using namespace' declarations from headers

Reviewed By: @ptarjan

Differential Revision: D1100100
collections: unify collection object data flags

... the flags should all be the same. Fixes an inline issue
where FrozenSet was not marked as having a Clone function,
and *Vector and *Set were not marked as `IsCppBuiltin`.

Reviewed By: @jdelong

Differential Revision: D1100505
Update NEWS file for the "Burrito" release

Reviewed By: @ptarjan

Differential Revision: D1100955
Refactor bytecode emitter support for try/finally

This diff refactors the bytecode emitter support for try/finally. I re-
worked the algorithms to be written in an iterative manner (before they
were recursive) and fixed two small bugs, but aside from that I tried to
preserve the existing algorithms for now and mainly focus on moving the
code around and simplifying the structure a bit.

A lot of the emission logic for supporting try/finally was in separate
classes instead of EmitterVisitor which made things a bit unwieldy. This
diff takes most of the logic from FinallyRouter and FinallyRouterEntry and
moves it to EmitterVisitor, which helped simplify things and better fits
the style of the rest of the emitter. I got rid of the FinallyRouter class
and moved its fields to EmitterVisitor, and I renamed FinallyRouterEntry
and Action to "Region" and "ControlTarget" respectively. I also refactored
things a bit to reduce the amount of code that needs to deal with Regions.
Finally, I fixed a small bug where Region::getCaseCount() was double
counting the number of continue cases, and I improved the emitter to avoid
emitting a jump after the body of a try block when its not needed.

Ideas for future improvements: (1) simplify the algorithms and data
structures, (2) clean up how regions are created, entered, and left,
(3) merge the "Region" abstraction together with other region-like
concepts ("ForeachIterGuard", "FPIRegion", etc).

Reviewed By: @hermanventer

Differential Revision: D1099687
Revisit how we handle post test information

All of our current local cronjob problems (not sure about chronos) are coming from corrupted .stat files. This is because the way we handled the gathering and printing of post test error information and stats were not 100% correct.

This diff hopefully helps fix this such that our local cronjob won't fail any longer.

Reviewed By: @ptarjan

Differential Revision: D1100647
Changing some identifiers to make more sense.

Some trivial cleanup; it's pretty confusing to have a Value
named "state" when there is also a "struct State" in this file.

Reviewed By: @swtaarrs

Differential Revision: D1091303