Implement some accidentally missing vasm ops in llvm backend

Summary: cmpqi, srem, and bindaddr are all easy to do, I just forgot about them
in D1686955. Also add arm instructions to the big switch statement to get us
closer to removing the default case.

Reviewed By: @jasone

Differential Revision: D1694328

Signature: t1:1694328:1416513227:90da6cb341309d5c533d7864b059e2840b622be4
Don't print anything for gc() in set-save-twice.php

Summary: GC sometimes runs now so just ignore it.

Reviewed By: @alexmalyshev

Differential Revision: D1694501
Decompress off the main thread.

Summary: I didn't use more than one thread because it made no difference
to the timing (i.e. we are IO-bound)

Reviewed By: @elgenie

Differential Revision: D1693167

Signature: t1:1693167:1416455121:b20b7af6e813ab5d0f674c2b9432f764655223d2
Better fix for generate-buildinfo.sh

Summary: I had been assuming that computing a full hash of
all the involved files would be too slow. It turns out
its not too bad unless the cache is cold; but most of the
files are going to be read during the build anyway, so this
just preseeds the cache anyway.

This method has the advantage that it produces the same repo-schema
for git and hg if you have the same rev checkout out (and even with
no source control, as long as there aren't any "stray" files lying
around).

Reviewed By: @jasone

Differential Revision: D1694904
HTMLEncode strings in wddx_serialize_value()

Summary: Strings returned through wddx_serialize_value should be HTMLEncode()'d during
serialization.

Fixes #4283

{sync, type="child", parent="internal", parentrevid="1691695", parentrevfbid="1537976659780590", parentdiffid="5726084"}

Reviewed By: @JoelMarcey

Differential Revision: D1691695

Signature: t1:1691695:1416530595:722bfcdaf7c0dbee379bea886cd4c43d997ca7dd
Allow "array" with type args to be used in XHP attribute declarations

Summary: This updates HHVM's parser to allow "array" with type args to be used in
XHP attribute declarations.

Reviewed By: @elgenie

Differential Revision: D1693455

Signature: t1:1693455:1416470523:0d308ca7567c7c95b9db45f3ae2d1843efad95d0
repo mode defer trait reqs enforcement until class creation

Summary: Followup to {D1690122}. When flattening traits, simply
 include the requirements in the preclass of the resulting using
 class, rather than attempting to do anything intelligent for repo
 mode. Then, when running in RepoAuthoritative mode, remove the
 assumption that only trait/interface preclasses are allowed to have
 requirements.

 If there's no significant perf impact, this probably makes more
 sense, given the possibility of non-unique (aka redeclaring)
 classes/interfaces that end up satisfying a requirement.

Reviewed By: @markw65

Differential Revision: D1693886

Signature: t1:1693886:1416530409:f40241dde10a1c8c077b2978f4d8e0438c777bdb
Log both the state loading time and the rechecking time.

Reviewed By: @jwatzman

Differential Revision: D1696195

Signature: t1:1696195:1416532498:84f831bfd2c95dba3482d820b97b25af44c23151
Print total time taken to recheck.

Summary: Math is hard. Make computers do it.

Reviewed By: @elgenie

Differential Revision: D1696218

Signature: t1:1696218:1416535925:e9e39f5c5d52dd00ebec86cf9b18ba65cf538f50
Allow static invocation of DOMDocument::load* methods

Summary: It should be possible to statically invoke these loaders to create new DOMDocument
objects.

Fixes #1955

{sync, type="child", parent="internal", parentrevid="1686673", parentrevfbid="1506117346322140", parentdiffid="5688837"}

Reviewed By: @JoelMarcey

Differential Revision: D1686673

Signature: t1:1686673:1416546346:27dadb68e89f406350add7994c14635dc590c26c
Pass list of changed files in a temp file.

Summary: There is a limit on how long command line invocations can be,
and a long list of files can easily exceed that limit.

Also remove the string truncation logic as we will no longer be
overflowing the screen with a single command.

Reviewed By: @​svcscm

Differential Revision: D1697045
fix broken scuba logging

Summary: Return back to ClientBuild when we're successful so we log CLIENT_BUILD_FINISH.
This isn't a disaster since we still have basically the same data spread out
in scuba table hh_build_steps, but might as well fix this.

Reviewed By: @paulcavallaro

Differential Revision: D1694667

Signature: t1:1694667:1416516191:54be6b1c677a9316acfcbad123e8672a6ea8b35b
point doc blocks for builtins to docs.hhvm.com

Summary: ... instead of php.net. This is quite useful for features
 that exist only in HHVM and not PHP5 (such as hack collections).

 Facebook: HipHopSpecific is really quite a misnomer at this point, as
 it seems to be applied only to stuff that isn't documented because
 it's not yet open sourced (and rather rarely internal to the VM).

Reviewed By: @JoelMarcey

Differential Revision: D1693767

Signature: t1:1693767:1416532376:acf87a1bf5dd361a1d1f9cfaa915c32823b973f4
Make BigNode parsable, extend HeapIter to visit BigNodes.

Summary: Now, clients of HeapIter will visit everything in the heap,
not just objects in slabs. Using the standard format isn't
strictly necessary for iterating, but it enables the HeapIter
client to inspect a standard header, to see it's kind.

Reviewed By: @jdelong

Differential Revision: D1687825
Merge remote-tracking branch 'upstream/master'
suppress certain pdo_exceptions from being thrown in the mysql driver