update third-party submodule commit
add rules to tag exit() as terminal (non-returning)

Summary: Added typechecker rules to tag exit() as non-returning and added a new exit_terminal_check.php test case.

Fixes #2916 (https://github.com/facebook/hhvm/issues/2916)

Reviewed By: @jwatzman

Differential Revision: D1381953
EZC: fix ref counts in _object_and_properties_init()

Summary: In _object_and_properties_init() a.k.a. object_init_ex(), the ObjectData was created and returned to userspace with a refcount of zero, despite being referred to by the RefData. Also, the RefData was inappropriately incref'd, making it unconditionally leak.

The two bugs cancelled out in a common case -- calling tvUnbox() on the RefData caused the ObjectData to be incref'd, leaving it with the correct refcount if you discount the leaked, unreachable RefData. Added a test case showing a less common case which previously failed.

Should fix https://bugzilla.wikimedia.org/show_bug.cgi?id=65796
Closes #2959

Reviewed By: @ptarjan

Differential Revision: D1387967

Pulled By: @sgolemon
Increase timeout for fetching OSS stuff in tests

Summary: Mediawiki is big, flakey at 2 minutes.

Reviewed By: @JoelMarcey

Differential Revision: D1393049
Implemented xdebug_memory_usage and xdebug_peak_memory_usage

Summary: This diff implements the xdebug functions xdebug_memory_usage and
xdebug_peak_memory_usage.

xdebug_memory_usage is to return the total amount of memory used
by the script. xdebug_peak_memory_usage is supposed to return
the maximum amount of memory used by the script since it was
started.

Note that the added test was taken directly from the xdebug source,
which is why there are lint errors. Should I fix them anyways?

Reviewed By: @sgolemon

Differential Revision: D1389052
Add class_elt field and fix require extends bug

Summary: Previously, the methods actually implemented by a trait were not distinguished
from the methods that a trait would necessarily have by virtue of a require
extends declaration. This caused a required method that lived in a superclass
to sometimes override an implementation in a subclass (!).

This diff puts an extra breadcrumb in class_elt so we can tell them apart,
and makes nonrequired (i.e. really, really implemented by the trait) methods
take precedence over merely required.

ran unit tests locally and they passed, and on contbuild are taking a long time, so

Reviewed By: @jwatzman

Differential Revision: D1371534
Update async functions doc in bytecode.specification

Summary: AsyncSuspend does not exist anymore. Describe behavior of the new
opcodes instead.

Reviewed By: @billf

Differential Revision: D1391937
Clownlist most Yii cache tests

Summary: These are unreliable - https://gist.github.com/fredemmott/cf169e952163a7effcbe

Reviewed By: @JoelMarcey

Differential Revision: D1393490
Clownlist silverstripe cache tests, re-record

Reviewed By: @JoelMarcey

Differential Revision: D1393634
Clownlist Laravel race-condition tests

Summary: sadpanda

I think I prefered the 'mutates fixed location on file system' ones :(

Found via https://gist.github.com/fredemmott/cf169e952163a7effcbe

Reviewed By: @JoelMarcey

Differential Revision: D1393668
Part 1 of refactor autocomplete

Summary: Adds Typing_hooks. Heavily inspired by ListenerManagers in Java.

Basically, if you're interested in something happening in typing, you register your function, type, and then unregister.
All the gross globals stuff being referenced in typing can use hooks like these instead.

In subsequent diffs, I will remove autocomplete.ml all together. Need to add naming hooks first. (will also remove find_refs.ml etc)

I used lists of functions instead of just a single function because in the IDE world, eventually I'd like get a bunch of different things from one typing of a file for perf reasons. Right now whenever a user types something in the editor, if we want to find out 5 different things, we type 5 the file 5 times, which is pretty wasteful. (This is a legit problem that I need to fix. As we get more and more stuff from hack, the current approach will not scale.)

Reviewed By: julienv, jwatzman

Differential Revision: D1392915
Consume response from memcached server.

Summary: This test is (sometimes?) failing on travis.
Consume the response when writing the key and make sure
it is 'STORED' as expected, output error if not.

Reviewed By: @JoelMarcey

Differential Revision: D1393317
Do not decode arbitrary numeric entities when (all == false)

Summary: htmlspecialchars_decode() should only decode numeric entities
for its supported entities and then only when requested.

Closes #2966

Reviewed By: @fredemmott

Differential Revision: D1388408
Clownlist reactphp test

Summary: found via https://gist.github.com/fredemmott/cf169e952163a7effcbe

Reviewed By: @JoelMarcey

Differential Revision: D1393750
handle trait requirements like interfaces for hoistability purposes

Summary: PHP hoistability behavior is a little arcane, but treating
 the presence of (trait) requirements the same as implementing
 interfaces in terms of forcing ##Mergeable## seems to be the way to go.

Reviewed By: @paroski

Differential Revision: D1387155
Disable flaky zend test

Reviewed By: @bertmaher
Parse tokens are not trivial in HHVM

Summary: CVE-2013-3735

Reviewed By: @LiraNuna

Differential Revision: D1384586
Document the clownlist better

Summary: Looks like I can unclownlist mustache in the near future, but not the others :'(

Reviewed By: @JoelMarcey

Differential Revision: D1394928
Clownlist a bad assetic test, re-record

Summary: Additionally, jpegtran has always been skipped as we don't have that binary available on our systems.

Reviewed By: @JoelMarcey

Differential Revision: D1394898
Unary `!` on unused awaitables is dangerous

Summary: Extend "dangerous awaitable" check to unary not.

Reviewed By: @pikatchu

Differential Revision: D1383362