Embed HNI in runtime_test

Summary: runtime_test currently only contains systemlib. We need to also include all the HNI extensions. This is blocking DateTime + collection HNI conversion.

Reviewed By: @sgolemon

Differential Revision: D1668323
get_defined_functions are all lowercase

Summary: Increases symfony from 98.68 to 98.82
Closes https://github.com/facebook/hhvm/pull/4192

Reviewed By: @JoelMarcey

Differential Revision: D1669234

Signature: t1:1669234:1415643321:87e1629b58ab39076cfd1d316bca152466b3dcf0
change is_object() to gettype() === 'object' in spl for incomplete_class

Summary: PHP accepts __php_incompatible_class in spl. But objects from that class fail is_object.

This puts symfony from 98.68 to 98.8 percent.

I don't like to do this...
Can we run perf on this? I don't know how bad it is.

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

Reviewed By: @JoelMarcey

Differential Revision: D1669230

Signature: t1:1669230:1415643326:4fdf2dd7aae73ae07abd66bb0efa2becb2d22e75
Bump package_version

Summary: Set to 3.5 on the master branch
Closes https://github.com/facebook/hhvm/pull/4178

Reviewed By: @JoelMarcey

Differential Revision: D1669146

Signature: t1:1669146:1415649436:23c7e004b34cc525b29d9897834de48bc43a0eb7
Fix build with OCaml 3.12

Summary: The build fails with ocaml 3.12 because we pass arguments to gcc in the -l <library> style, and ocaml 3.12 puts all the file arguments first and all the -something ones last, so it mangles the command line.

This fixes that issue by changing those to single-argument versions: -l<library>, -I<dir>, -L<library path>.

Github issue #4184

Reviewed By: @pathsny

Differential Revision: D1669106

Signature: t1:1669106:1415643437:1a452f8f8e584f5c63cdf08156bebad6f95fcedd
Fix readline request locals

Summary: readline was storing request local values in
global variables, leading to bizarre crashes when used
across multiple requests.

Reviewed By: @edwinsmith

Differential Revision: D1669798

Signature: t1:1669798:1415638941:c520bacb8b349a88f33a4bb0af2ae1abceeb7a10
Use a static string for the function name in zend_register_internal_class

Summary: The table out-lives the request, and request-local strings are not
safe to share.

Reviewed By: @markw65

Differential Revision: D1669627
format namespace use

Summary: The hack formatter currently only supports use statements of the form use namespace; This extends
it to support statements of the form use namespace as x;

Reviewed By: @jwatzman

Differential Revision: D1669866

Signature: t1:1669866:1415659133:563d3f046f41919df5444b156292b36475df674a
parse pass by reference and represent it in the AST

Summary: parameters that are passed by reference are marked as such.

Reviewed By: @jwatzman

Differential Revision: D1669930
adding support for assignment refs

Summary: Represents a reference of an expression in the ast and parses it.

Reviewed By: @jwatzman

Differential Revision: D1669949
Begin conversion for AT

Summary: This includes the easy rules. `ATcomposite` comes later.

Reviewed By: @ptarjan

Differential Revision: D1658636

Signature: t1:1658636:1415665510:30162e52baff059abb8e87c82e9a0c80836496b5
Delete unused type definitions.

Reviewed By: @jwatzman

Differential Revision: D1668494

Signature: t1:1668494:1415665198:2078557bc6e6e607fb61a99bf9cda242f3e93e46
add support for functions return by reference

Summary: Parses functions that return by reference, this is dropped during naming.

Reviewed By: @jwatzman

Differential Revision: D1669963
Drop FrameState's ref prediction if type grows to Gen.

Summary: Was hitting this with fixed-point. A value was Arr in one path, and
BoxedArr in the other, and we ended up with a state of
type=Gen,predict=BoxedArr. This later broke upon hitting a CheckLoc<Arr>
as we refined Gen -> Arr, but kept around the BoxedArr prediction.

Add the invariant to the field's comment and checkInvariants.

Reviewed By: @ottoni, @jdelong

Differential Revision: D1668687

Signature: t1:1668687:1415415982:3e94da4b41306ba74bbfc6c50a8f77331593f2e7
fix build issue

Summary: hack code fix

Reviewed By: @bhosmer

Differential Revision: D1671942

Signature: t1:1671942:1415673107:e96b5f045b0ae77ba7d7ff00865b3000df796dad
hh_format: understand async lambdas

Summary: With async lambdas, 'function' is not the only thing that can come after
 'async'. For formatting purposes, we parse a standard expression
 after async + space ... it just so happens that we'd expect a lambda
 to be there.

Reviewed By: @pikatchu

Differential Revision: D1671582

Signature: t1:1671582:1415668945:9d488abb437fe56184f56e8be16001a7f2066011
modify build to support h2tp

Summary: Initial commit of h2tp.
Modifies the Makefile to build h2tp and provide the hacklib.

Reviewed By: @jwatzman

Differential Revision: D1666511
Support self parameter typehint

Summary: Allow self to be used as a parameter typehint to indicate the declaring class.

Fixes #3672

Reviewed By: @JoelMarcey

Differential Revision: D1666449

Signature: t1:1666449:1415682530:4bf230195a4834bd786974170ef4d8e1ac474150
Fix closure use var reflection for referenced vars

Summary: Referenced use variables should be returned as references by getStaticVariables

Fixes #3624

Reviewed By: @JoelMarcey

Differential Revision: D1671006

Signature: t1:1671006:1415682061:9d3e13cab2630f09871dd6affd0a7ca0ce0f08bf
Fix build with 3.12

Summary: `|>` is a builtin in ocaml 4, but you need utils for it in
3.12.

Reviewed By: @pathsny

Differential Revision: D1672196

Signature: t1:1672196:1415683487:cad26fca1479249b7d0521a40bd6b6a4db035802