Remove some incorrect restrictions in the grammar of constant expressions.

Summary: Right now, constant expressions can only contain unary negations of scalar values, when php 5.6 (and common sense) allows negations of any static expressions. Also, < and > require their second argument to be a static_scalar also, which is also silly and doesn't match php 5.6. (In fact, the whole notion of static_scalar doesn't seem to be useful.) Also add support for ** in constant exprs.

Reviewed By: @elgenie

Differential Revision: D1457346
Kill IRBuilder::blockIsIncompatible (try 2)

Summary: The only purpose of IRBuilder::blockIsIncompatible left was to prevent
loops when Eval.JitLoops is off.  This diff gets rid of that, and
translateRegion now properly follows the region description passed to
it.  If any region former doesn't want to expose loops, it should not
include backedge arcs in the produced region.

Reviewed By: @bertmaher

Differential Revision: D1457757
Unfortunate hhi partial revert

Summary: Partial revert of https://reviews.facebook.net/D20667 since it
causes too many errors in www, for `trim` and `date` specifically. Also
corrects the spelling of the filename and removes some `mixed`
annotations (`mixed` in an hhi is basically never what you want.)

See https://reviews.facebook.net/D20667 for discussion on how we can
deal with this better in an open-source world.

Reviewed By: @JoelMarcey

Differential Revision: D1461459
More properly support php 5.6 constant expressions.

Summary: Right now we allow arbitrary expressions for class constants and a restricted subset of expressions for global constants. (An incorrectly restricted one: it considers -foo() to be a constant.) This implements a more reasonable check and uses it for both global and class constants.

Reviewed By: @elgenie

Differential Revision: D1457074
VASM initial code drop

Summary: This is a squashed diff of just the new vasm code, without changes
to hhvm to use it (yet).

Reviewed By: @jasone

Differential Revision: D1452965
Import php tests from php 5.5.11

Summary: This diff re-imports all the tests from PHP 5.5.11.

Reviewed By: @ptarjan

Differential Revision: D1432267
Assert that we only get loops with Eval.JitLoops=1

Summary: In the title.

Reviewed By: @ottoni

Differential Revision: D1457680
Raise the logging level for 'after tracelet formation'

Summary: This stuff is largely the same as 'after initial translation', and seems
to me to be a little excessive for logging level 2. Raising it to 3.
(And changing some const to constexpr)

Reviewed By: @edwinsmith

Differential Revision: D1461826
Sanitize non-utf8 content in test output

Summary: Ran into this with a test which outputs cp1251 text
which json_encode (rightly) barfs on.  This results in the
test's diff output being reduced to null which is singularly
unhelpful in test output.

Use UConverter::transcode() to turn anything that isn't UTF-8
into the Unicode WTF character U+FFFD.

Hopefully we don't get too many of these kinds of tests.

Reviewed By: @ptarjan

Differential Revision: D1462059
Turn off JIT::Timer by default in OSS build

Summary: In the absence of our special __vdso_clock_gettime_ns syscall, it
falls back to getrusage. The former is fast enough that there's no reason to
not have it on by default but the same isn't true of the latter.

Reviewed By: @jdelong

Differential Revision: D1461996
reserve space in thrift compact reader for collections

Reviewed By: @elgenie

Differential Revision: D1460153
Changed signature of onNewConnection in Acceptor to take non-const TransportInfo

Summary: We need to modify TransportInfo in non open source code for
integrating SSL Fingerprinting.

Reviewed By: dcsommer

Differential Revision: D1462392
Belatedly update NEWS for Notorious

Reviewed By: @edwinsmith

Differential Revision: D1462813
add variadic function to fb_intercept test

Summary: ... to demonstrate an issue.

Reviewed By: @billf

Differential Revision: D1463572
fb_intercept now accounts for variadic functions

Summary: ... when determining the params of a call to an intercepted
 variadic function, the variadic capture param on the stack is an array
 that need to be iterated through, rather than passed along directly.

Reviewed By: @billf

Differential Revision: D1463583
D1462392 Breaks HHVM Open Source Build

Summary: This reverts commit ed18f617bfc4d809b7e3d3514ce40303d60361c9.

In the slew of test failues that were overriden was an important one...

```
Fail	hhvm cmake verification
build page No binary found.
```

No binary found means the compile failed.

Reviewed By: @LiraNuna

Differential Revision: D1463229