add at() to MysqlRow in hhi file

Summary: as subject

Reviewed By: @​anca

Differential Revision: D1677983

Signature: t1:1677983:1415840723:029c1dd8214a62e05edbb579c5d648255c34e5e1
unparse constants defined using define

Summary: The hack parser parses usage of "define" as a function call unless it happens to be using a String. This
unparses those correctly

Reviewed By: @jwatzman

Differential Revision: D1676521

Signature: t1:1676521:1415838137:32805e7539a9564f6e02785e7748c35e1f78fa61
merge lvalue and lvalue_foreach

Summary: A previous diff introduced lvalue_foreach inside GetLocals. This merges lvalue_foreach and lvalue
to capture lvalues. Any invalid representations that are possible should ideally be weeded out during the parsing phase.

Reviewed By: @elgenie

Differential Revision: D1678282

Signature: t1:1678282:1415846509:41c9055a003d372b0892078127896043f0870400
Pass absolute path from TranslatePath to TranslatePathRelative

Summary: When SafeFileAccess is on trying to access relative paths would always fail.
Additionally paths which failed the security check were being translated to be
the cwd, which could itself be outside the allowed directories.

Fixes #2774

Reviewed By: @JoelMarcey

Differential Revision: D1677651

Signature: t1:1677651:1415837620:50d0b15b04da5641f2f7c82a173c791e8478029f
Wait for clean shutdown on SIGHUP

Summary: HHVM is supposed to do a clean shutdown when it receives SIGHUP -
which it does when using LibEventServer - but with ProxygenServer, it spins off
an additional thread to shutdown queues, leaving the original thread to
re-raise the signal before the queues drain.  Fix this by waiting for the
servers to stop.

Reviewed By: @markw65

Differential Revision: D1675300

Signature: t1:1675300:1415808825:f77150b8cb0ea85eaf90d58095be4baeaea2d317
Fix use-after-free in the access logs

Summary: If a request put an apc string into the ServerNote
array, and then outlived all its peers, and the string was
replaced during the request, then the string could be freed
by the treadmill at the end of the request. We used to free
up the treadmill items prior to writing the access logs,
which could then fail.

Reviewed By: @ottoni

Differential Revision: D1674896
Add per kind ArrayFunc counters for ArrayTracer

Summary: Adds an array of std::atomic<uint64_t> to keep count of ArrayFunc per ArrayKind

Reviewed By: @edwinsmith

Differential Revision: D1623929
Fix duplicate unbound name errors

Summary: When naming a hint, we'd call `Env.class_name` on it twice
here, causing it to get looked up and canonicalized more than once --
and thus insert an error more than once if it was wrong, such as the
case in the github issue linked below. This is hard to test for --
`hh_server --check` will unique-ify errors, and `hh_single` will only
take the first one. Fixing the latter is beyond what I want to deal with
right now, so this manually tested fix it is.

Fixes https://github.com/facebook/hhvm/issues/3294

Reviewed By: @int3, @elgenie

Differential Revision: D1677992

Signature: t1:1677992:1415857065:675182d27592e614b5ee8864648b3367a2ef01e3
Remove main_js_comp.ml and main_hhbc_comp.ml.

Summary: Verified with@pikatchu@joelbeales and@jdelong that those files
were no longer necessary. The question arose because those files invoke
Pos.make, whose call signature I recently changed.

Reviewed By: @jdelong

Differential Revision: D1678179

Signature: t1:1678179:1415894809:ae35c4c1f6c2bc196096379e905d2faead5bb503
Require LLVM codegen when EvalJitLLVM >= 3

Summary: This will help ensure people don't accidentally regress the llvm
backend by introducing punts in code we already support.

Reviewed By: @jasone

Differential Revision: D1673489

Signature: t1:1673489:1415737138:2ea17521b6d3c917b92dd149102e5c693b7068d9
Add support for syncpoints and exceptions in the llvm backend

Summary: Both are fairly straightforward and mostly involve parsing information
out of the data sections emitted by LLVM. As far as I can tell, LLVM just emits
the exception tables into memory we give it and doesn't actually register any
of the exception information with the runtime. This means we can allocate all
data sections it asks for with malloc and free them once we extract the
information we need, rather than leaking them in globalData.

Reviewed By: @maksfb

Differential Revision: D1678102
Remove a comment that predates removing analyze()

Summary: This seems to be saying TransProfile + GuardRelaxation didn't work in
analyze().  Should we keep the EvalJitRegionSelector check or not?

Reviewed By: @swtaarrs

Differential Revision: D1651369

Signature: t1:1651369:1415219871:6c35b3497972db8290a9a1cdf98853db0ff59df4
Rename vasm's end instruction to fallthru

Summary: It conflicts with non-member use of end() on STL-style containers.

Reviewed By: @edwinsmith

Differential Revision: D1669397

Signature: t1:1669397:1415620123:5a835c9db286c4f752b75788202bc874265376dc
Simplify ArrayGet on constant arrays

Summary: I saw an IR snippet doing ArrayGets on an array we knew was static.
(Hhbbc also knew, but doesn't constant propagate anything out of minstrs, and
that'd be harder right now.)

Reviewed By: @markw65

Differential Revision: D1654328

Signature: t1:1654328:1414891382:4baf7e0dc880be238aa17b7d1eb43a5cf00f12bc
Fix some bugs in intersecting specialized types

Summary: If you intersect two arrays of different kinds you should always get
bottom, so it was being unnecessarily pessimistic.  If you intersect two
non-exact specialized classes that could be interfaces, you can't return bottom
unless you prove that there's no mutually derived classes.

Reviewed By: @swtaarrs

Differential Revision: D1669253
Record init time in log output.

Summary: Just as a convenience.

Reviewed By: @jwatzman

Differential Revision: D1679360

Signature: t1:1679360:1415908403:24729f009b26c52c902696f6b7f1740f34fced4d
Fixing Memcache::get() returns NULL for an empty string problem

Summary: Fixes #4175
Closes https://github.com/facebook/hhvm/pull/4232

Reviewed By: @JoelMarcey

Differential Revision: D1676834

Signature: t1:1676834:1415918294:5a1c59a5a478e9085cc4687475ae2c58944bbb14
Better error message for invalid array subscript

Summary: Both `[` and `{` are valid for array subscripting in PHP. Hack
only supports the former, but we can give a somewhat better error
message on the latter.

Fixes https://github.com/facebook/hhvm/issues/3407

Reviewed By: @int3, @elgenie

Differential Revision: D1679267

Signature: t1:1679267:1415912784:9726d5b7c9a36c57719ae230066d0da10d2bc705
Fix a couple of tests

Summary: One didn't work if you borrowed a machine that someone else
occasionally ran tests on (due to permission issues), another doesn't
work on internal FB build servers which have an older libxml.

Reviewed By: @paulbiss

Differential Revision: D1680048

Signature: t1:1680048:1415916748:8fbddd359d35672b03b697de4eb10e527e144143
Add loaded file name to Scuba.

Summary: This allows us to track how many people are loading which states +
how long it takes for them to do that compared to starting from a fresh state

Reviewed By: @jwatzman

Differential Revision: D1679348

Signature: t1:1679348:1415908364:a7f0c3a1982db5cb806f9e5c5221d1aa682493af