Convert IRTrace::m_blocks from std::list to smart::vector

Use smart::vector instead of std::list in IRTrace

Reviewed By: @swtaarrs

Differential Revision: D1077237
blacklist bug36999

Broken on travis witha  SoapFault which I know nothing about.

Reviewed By: @scannell

Differential Revision: D1093510
use same PHP Object for the same xmlNode

Instead of using the `_private` like zend does, I'll just have a thread local map on the side. I'm a bit worried that `_private` is used by other places so this seems safer and easier to reason about.

Reviewed By: @alexmalyshev

Differential Revision: D1071499
Fix warning with tvSet(make_tv<KindOfNull>(), dst)

make_tv<KindOfNull>() creates a temporary TypedValue with uninitialized
m_data field. Using this temporary together with tvSet() results in a
warning, as the uninitialized value is assigned the destination's m_data
field.

Introduce tvSetNull() that avoids touching m_data.

Reviewed By: @jdelong

Differential Revision: D1090898
import skipif sections from zend tests

We've been working around various issues (the win32 tests, many of the blacklists) where the tests were actually telling us in what cases they shouldn't be run.

Very few tests actually pass now but I think this is the right thing to do

Reviewed By: @alexmalyshev

Differential Revision: D983880
Make FrozenSet a collection.

Flip the switch and make FrozenSet a full-blown collection.

This wires up support for literal syntax, casting to bool,
and materialization and magic methods.

Reviewed By: @elgenie

Differential Revision: D1060075
Handle 'encoding' argument for get_html_translation_table

We were ignoring it previously, and just using the default encoding.

Reviewed By: @ptarjan

Differential Revision: D1092741
Properly loosen refcount opts assert

My previous attempt at this solved the specific problem I was looking
at but accidentally tightened up the assert in a place it shouldn't be
checking. This diff fixes that and improves the stacktrace file for one of the
failure cases.

Reviewed By: @ptarjan

Differential Revision: D1093847
Call uninit_null() instead of using it as a fn pointer

This doesn't return an uninit null, it casts the function
pointer 'uninit_null' to a bool, which then gets cast
to a Variant "true". Don't you just love PHP I mean C++.

Reviewed By: @jdelong

Differential Revision: D1093730
Fix uninit variable

All in the title.

Reviewed By: @jdelong

Differential Revision: D1094123
Eliminate dead code from parser

The parser has a mechanism for creating a list of statements that are prepended to the next statement added to the main list of statements. This code is completely dead and serves only to confuse the reader.

Reviewed By: @jdelong

Differential Revision: D1093564
Fix unused variable

Actually use it instead.

Reviewed By: @jdelong

Differential Revision: D1094345
Update Map to use HphpArray-like data structure

This updates Map to use an HphpArray-like data structure instead of the old
data structure it was using. As a consequence Maps will now retain insertion
order.

With this change, Map performance stayed the same or improved on several
micro-benchmarks that test out different aspects of Map performance (such
as foreach, creating lots of small maps, building large maps, accessing
using "$c[$k]" syntax, etc).

Reviewed By: anietoro

Differential Revision: D1085607
Namespaces should complain on double use

Fixed the double use problem

Reviewed By: @ptarjan

Differential Revision: D1091074
Remove unused function.

There's a dupe of this function in ext_mysql.cpp, but that one
actually gets used.

Reviewed By: @ptarjan

Differential Revision: D1095189
Replace typeof with decltype

typeof is a GCC extension but decltype is part of the standard

Reviewed By: @jdelong

Differential Revision: D1095111
fix a bunch of output buffering things

phpmyadmin (ab)uses this quite a bit and we are grossly incompatible. Either PHP has changed a bunch since 5.2 or the original author didn't test it thoroughly.

Reviewed By: @alexmalyshev

Differential Revision: D1095350
empty product return 1

Changed the return from 0 to 1.

Reviewed By: @ptarjan

Differential Revision: D1079222
Fix errors reported by clang-3.4

Fix ArrayData's protected member m_kind being accessed incorrectly

Clang didn't like having a static_assert in an anonymous struct in
an anonymous union.

Seems like objects that use the new member initialization syntax are
required to have a user defined ctor, at least that's what the error
was...

Reviewed By: @jdelong

Differential Revision: D1093761
Reduce JitPGOThreshold to 4

This seems to avoid some of the overhead for profiling and
retranslating in perflab.  It's possible that we can benefit from
additional profiling data, but this lower threshold seems to be the
best for perflab right now.  We can revisit it once we can increase
perflab warmup.

Reviewed By: aravind

Differential Revision: D1093148