Don't build folly/experimental/exception_tracer/StackTrace.c

Closes #1219
Implement PhpFileExtensions runtime option

Implement file extensions set that should be treated like PHP
files in the webserver

Closes #1207

Reviewed By: @markw65

Differential Revision: D1021819

Pulled By: @scannell
Implement missing forward compat constants

Implement unused FILE_BINARY and FILE_TEXT because PHP does
even though they have no effect in PHP 5.

Closes #1215

Reviewed By: @JoelMarcey

Differential Revision: D1027907
Remove 'using namespace JIT::X64' from tx64; implement fallback interp

Removing the using-directive exposed most of the remaining bits of
x64-specificness in tx64. I just added explicit namespace qualification
to most of them and will deal with them properly later. (I actually find
it kind of suspect that we haven't hit problems with, for example,
bindJmpccFirst yet.)

The one place where I made actual changes is in the code that handles
emitting a fallback request to interp in the event of total codegen
failure for a tracelet. Previously it was handy to keep this
unimplemented (I've been testing with an assert(false) in the
X64Assembler ctor) because it exposed places where we were getting
spurious failures because not enough IR opcodes were implemented. The
remaining places where we're hitting this failure mode are legitimate:
polymorphic tracelet explosion and running out of spill space.

Reviewed By: @ottoni

Differential Revision: D1027996
Change the return type of map() et al

map(), filter() and their family members should return FVs, instead of vectors.

Reviewed By: @paroski

Differential Revision: D1022281
Revert "Use a separate field to keep track of allocations for the purpose of out of memory checking."

: This reverts commit 93009b15c5c09549425a264dc17d24cff6cb1e14.

Conflicts:
	hphp/NEWS

Reviewed By: @hermanventer
Integrate into hphpd info command

Modified info command in debugger to display type information for a
specified function

Reviewed By: @hermanventer

Differential Revision: D887484
Fix a race in retranslateOpt

retranslateOpt called retranslate, which could end up
returning nullptr if another thread got the source-key lock, and
then got blocked on the write lease.

Call translate instead, and don't generate optimized translations
if the debugger is attached.

Reviewed By: @ottoni

Differential Revision: D1027892
Add an --allexcept option and fix some bugs

Add an --allexcept option that allows us to run all tests but those listed.

Fix a weird bug that happens with an HipHop warning occurs on the same line as a status. Had to fix the regex for that.

A few other fixes

Next up:
  Each test of each framework in own process
  Create per framework shell script to run only those tests that had a different status than expected

Reviewed By: @ptarjan

Differential Revision: D1028292
Implement SleepWaitHandle

Allows us to sleep asynchronously.

Reviewed By: @jano

Differential Revision: D984340
Fix the variable command so that it does not fail totally when one variable is too large.

The variable command, along with its clients the global command and the = command, obtained variable names and values from the server by asking for an map of variable name to variable values in a single request. If one or more of these variables have really large values, the serialization of the map exceeds the serialization limit and the entire command fails. This makes it difficult pin-point which variable causes the trouble and breaks the client commands in unexpected ways.

This diff changes the protocol of the variable command so that it first gets an array of variable names only and then separately gets the value of each variable. If such a separate get fails because of a serialization limit, the variable's value is printed as "...omitted".

Reviewed By: @mikemag

Differential Revision: D1021035
Make array_intersect and array_intersect_key work with collections

Rewrote the algorithms for array_intersect() and array_intersect_key() to
work with collections and to achieve better performance (particularly for
array_intersect()).

Reviewed By: @dariorussi

Differential Revision: D1025142
Use <= instead of subtypeOf in a bunch of JIT code

This is mechanical and I think it improves the code.

Reviewed By: @swtaarrs

Differential Revision: D1026129
Rename code-gen.cpp/h to code-gen-x64.cpp/h

Reviewed By: @oyamauchi

Differential Revision: D1027811
Introduce Shuffle instruction

Linear scan inserts Shuffle to resolve copies of Jmp instructions,
removed shuffle code from cgJmp.

Reviewed By: @swtaarrs

Differential Revision: D1023716
Rename RegisterInfo to PhysLoc

RegisterInfo either represents registers or spill locations for
an SSATmp; Looking at the way we use it, the name PhysLoc makes
more sense.

Reviewed By: @ottoni

Differential Revision: D1025818
Fix build breaks in various configurations

Apparently #error isn't the best thing. This fixes a couple build
blockers: building vixl natively on ARM, and building in non-fast-TLS
mode.

Reviewed By: @scannell

Differential Revision: D1029917
Implement ARM::emitCallArrayPrologue

The x64 version of this distinguishes the case where dvs.size() == 1
because then it can use a compare with mem and immediate operands. ARM
can't do that.

Reviewed By: @edwinsmith

Differential Revision: D1028069
Fix type_profiler test

The test output depended on the sort order of equally-likely
types; we don't care about their order, but we do care about frequency
ordering, so bias the output towards integer.

Reviewed By: @scannell

Differential Revision: D1030488
stop yii from see-sawing

yii leaves this file around which is a duplicate of its test. So the autoloader loads it twice. Kill it between runs.

Reviewed By: @JoelMarcey

Differential Revision: D1030682