Initial coding conventions doc

Summary: This is mostly the uncontroversial stuff that we already agree on. I'd
like to go after the remaining stuff like switch statement formatting too but
that can come in later diffs after much discussion.

Reviewed By: @edwinsmith

Differential Revision: D1394638
Expand jit documentation a bit

Summary: I added more about the hhbc -> ir transformation, hhir itself, and
some optimizations.

Reviewed By: @edwinsmith

Differential Revision: D1397404
Enable HHIRBytecodeControlFlow by default

Summary: Bytecode controlflow is looking stable and perf-neutral, so let's turn it on and see how things go.

Reviewed By: @ottoni

Differential Revision: D1371626
re-enable mustache, mark the one failing test as flakey

Summary: No change to expect file as when I removed it from clownlylist and re-recorded, the file was still disabled on disk (needed blowing away, etst runner has now been modified)

Reviewed By: @bertmaher

Differential Revision: D1400141
Fixed 0e0 as a value on JSON_parser

Summary: We're using a heavily modified version of Dougles Crockford's JSON parsing library. That library has a bug that fails
to parse 0e0 as a value in an array or an object (as a value). This diff corrects the issue which also fixes a broken zend test

Reviewed By: @JoelMarcey

Differential Revision: D1393793
Fix preOptimize for CheckLoc and AssertLoc

Summary: In preOptimize, we convert CheckLoc/AssertLoc into CheckType/AssertType.
The return value of preOptimize should be the old FramePtr, not the
destination of the new instructions.

Reviewed By: @swtaarrs

Differential Revision: D1399908
Fix bug in insertLocalPhis()

Summary: We added a ldLoc but did not add the corresponding src-type constraint.

Reviewed By: @swtaarrs

Differential Revision: D1399896
Bug fix for JitLoop

Summary: We should add block id to region (instead of trans id).

Reviewed By: @ottoni

Differential Revision: D1399052
Introduce I/O wait enter/exit hooks

Summary: Introduce I/O wait enter/exit hooks, useful for profiling asynchronous
execution.

Reviewed By: @billf

Differential Revision: D1397075
Fix hhhbc for SetElem with non-array bases.

Summary: If the base is not an array or an object implementing ArrayAccess,
SetM pushes a null. This was not being handled correctly hhbbc, and
we were pushing the rhs on stack in these cases.

Reviewed By: @jdelong

Differential Revision: D1383973
Various fixes to access modifiers errors

Summary: HHVM would not error correctly for various error relating to multiple access modifiers on methods and functions. This diff matches the behavior of this to php.

Reviewed By: @ptarjan

Differential Revision: D1398889
Add missing removeKey for flakey option

Reviewed By: @JoelMarcey

Differential Revision: D1400965
Revert "[hack] don't recompute files with errors"

Summary: This reverts commit D1387289. There are cases when the
invariants listed don't actually hold, we need to think this through
more carefully.

Almost a clean revert -- one change to `serverTypeCheck` in D1390136
conflicted, pretty sure we can just nuke that change.

Reviewed By: @pikatchu

Differential Revision: D1401096
CallsNative flag on ir opcodes should imply MayRaiseError by default

Summary: We've been burned in the past by opcodes that can throw but weren't
marked as such. MayRaiseError is now opt-out on CallsNative opcodes, by using
NNE instead of N. I tried to audit each one that broke because of this and make
the right choise wrt NNE vs. adding a catch block.

Reviewed By: @bertmaher

Differential Revision: D1400014
Shut up jobserver warning

Summary: Yes, seriously, this is the fix. I'm going to go cry in a
corner now. I'm just so far past rage for the creators of `make` and
`cmake`.

somuchrage

Reviewed By: @JoelMarcey

Differential Revision: D1401502
Fix a JIT crash in unsupported NewElem dims

Summary: I got a sandbox crash in ExternalThreadEventWaitHandle---the strangest
part is that it seemed to be trying to abandon a wait handle from the minstr
translator at JIT time.  Apparently in an opt build if we get an MW that we
don't understand we load a function to call out of these tables with an invalid
index and somehow we called some random code (I'm not 100% sure I understand
how).  The inspecting the junk in the crash led me to trying an FPassM with an
MW.  Just PUNT instead of crashing.

Reviewed By: @swtaarrs

Differential Revision: D1400770
deal with BSD stty output

Summary: I'm going to be working on a plane, so I'm getting it compiled on my laptop. The test runner doesn't love BSD.

Reviewed By: @JoelMarcey

Differential Revision: D1399789