typechecker add PREG_* constants to hhi

Summary: Predefined preg constants as listed on http://docs.hhvm.com/manual/en/pcre.constants.php

 Closes https://github.com/facebook/hhvm/pull/4281

Reviewed By: @paulbiss

Differential Revision: D1693307

Signature: t1:1693307:1416460125:d69a7740e75fdf672d9de26c7b1cef9b258b9b6e
Use a MemBlock pod struct instead of std::pair in MemoryManager

Summary: I considered a typedef, or using folly::Range, or Slice, but
went with this in the end. Might change it to Range or Slice
later.

Reviewed By: @jdelong

Differential Revision: D1690997

Signature: t1:1690997:1416420124:787e811fea7bb68128545ae697ca47062c0b906d
DateTimeImmutable::createFromFormat returns false on failure

Summary: Fixes #3224

I want falseable types...

Closes https://github.com/facebook/hhvm/pull/4271

Reviewed By: @paulbiss

Differential Revision: D1688002

Signature: t1:1688002:1416500930:ed9ca7ec2b9aa730b36bbd6f45f9379986368d90
Kill GlobalNameValueTableWrapper, do size-tracked allocation.

Summary: GNVTW is the only way we ever instantiate an NVTW, so flatten
them together. Also, allocate the one-instance-per-request
using the size-tracked api, since a) we know it's size, and
b) this exposes it to the heap parser so its not hidden in
behind a smart_malloc header.

I will rename NVTW to GlobalsArray in a followon diff.

Reviewed By: @jdelong

Differential Revision: D1691188
Add possibility to create a DateTime object with timezone

Summary: or the class will first initialize an object with a timezone, issue the strict warning and the timezone could be changed later
We don't want the warning.

The slow test didn't match php before but does now.
The zend test is clowny in my opinion. It tests for error position, that should have wildcards.
We mathc php7 in this case.

Closes #3650

Closes https://github.com/facebook/hhvm/pull/4212

Reviewed By: @paulbiss

Differential Revision: D1673795

Signature: t1:1673795:1416502867:dd4c4279f2d533b52685b9ee65557fb0628288df
Fix call to fetchObject without class name

Summary: Without this fix, an error is triggered:
 SQLSTATE[HY000]: General error: Could not find user-supplied class

In fact, it's a regression and drupal cannot run without this fix.
Closes https://github.com/facebook/hhvm/pull/4256

Reviewed By: @paulbiss

Differential Revision: D1684526

Signature: t1:1684526:1416502980:f56cff36b14fd1153b405b113244ed80979264bf
Streamline NEWS for Vanilla Ice

Summary: Streamline NEWS a bit for Vanilla Ice re: Hack stuff a bit more.

Reviewed By: @jwatzman

Differential Revision: D1694132

Signature: t1:1694132:1416507669:542b474a480cfd1c1fff904c79a0eee2b0d68a12
Fix typo in sparse_id_map

Summary: I just happened to be building with ASAN :).

Reviewed By: @jdelong

Differential Revision: D1692957

Signature: t1:1692957:1416448256:9e78d0bc88c19494d4812fc37178cabf7d09d5af
Rename NameValueTableWrapper to GlobalsArray

Summary: Thats the only thing we use it for.

Reviewed By: @jdelong

Differential Revision: D1691544

Signature: t1:1691544:1416430932:e05908cf00bf3362f9c2b379c66292e130c36467
Truncate the display of the command invocation

Summary: It can become quite a long invocation due to the list of changed files. We
don't want to be clogging up people's screens.

Reviewed By: @elgenie

Differential Revision: D1692248

Signature: t1:1692248:1416448121:15216fbc7b607974c6b9241e3c2630b195045e0a
Support Authorization header in apache_request_headers()

Summary: Authorization is processed separately and not-mangled so special-cased like
CONTENT_LENGTH and CONTENT_TYPE which don't get prefixed with HTTP_

{sync, type="child", parent="internal", parentrevid="1689097", parentrevfbid="749762991738970", parentdiffid="5715023"}

Reviewed By: @JoelMarcey

Differential Revision: D1689097

Signature: t1:1689097:1416515552:4f8a11613ac6beb10cb911f2fcec0e6f2d88b1fb
Add version number to imagick extension

Summary: fixes facebook/hhvm#3969

Went for '3.2.0b2' based on http://pecl.php.net/package-changelog.php?package=imagick:

- we have all those constants (3.2.0b2)
- Imagick implements Countable (3.2.0b1)
- we implement __clone, not clone() (deprecated in 3.1, removed in 3.2)

Reviewed By: @JoelMarcey

Differential Revision: D1694086

Signature: t1:1694086:1416504185:9b07e213bfa49e22dd196970e8ec0474c8a56d39
Docblock parser for AT

Summary: Some obnoxious regex stuff.

Reviewed By: @elgenie

Differential Revision: D1691746

Signature: t1:1691746:1416484124:59952412946da18bd1106bfd479d155b7138ac2b
Have hh_server take the list of files to recheck as relative paths

Reviewed By: @jwatzman, @elgenie

Differential Revision: D1690037

Signature: t1:1690037:1416451135:4dda91e120000c477a8ecdb8170190748c4b3627
Make dependency on lz4 optional for OSS build.

Summary: Flow pulls in Hack, but it shouldn't have to require lz4.

Also copied over@jwatzman's fix for the C option handling in pre-4.00
ocamlbuild (c.f. D1692564)

Reviewed By: @jwatzman

Differential Revision: D1693464

Signature: t1:1693464:1416520127:5508177943e51420cce3606a64e340413f54e06e
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