Some small changes for making valgrind clean when running hhvm with no args

We were reading uninitialized memory from tx64 member
variables and failing an assertion about the size of trampoline code.
(As far as I can tell, nothing really depends on the exact size of the
trampoline except for the guess about how many trampolines we can
fit.)

Differential Revision: D922916
Expose basic async stack in the debugger

Expose the async stack in the debugger. This is the stack of, say, generators driven from the ASIO extension. This is a modification to the where command. The new command type accounts for back compat between old servers/clients. I've added a shortcut, "wa", which is a bit faster to type.

I also modified the normal stack trace to not print bogus lines for functions with no file/line info.

Differential Revision: D920910
Pull apart DataBlock and X64Assembler

This is one of the major spurious couplings I identified in my attempt
to get some code running in the ARM simulator. Currently, anything that
cares about the frontier of any of the code slabs is necessarily coupled to
X64Assembler, which doesn't make sense.

The solution in this diff is to remove DataBlock as a member of
X64Assembler. DataBlock is now in its own file, and TranslatorX64 has a
DataBlock member for each X64Assembler member. X64Assembler has a
pointer-to-DataBlock member. (I tried having it be a reference but that
doesn't work; in TranslatorX64::TranslatorX64() we have to construct
X64Assemblers without having their DataBlocks ready yet.)

I also discovered that the original reason for having DataBlock be a POD
type and having CodeBlock as a separate type seems to be gone, so I
consolidated the two classes and cleaned up some dead code.

There is more to be done here, which is to actually reap the benefits
and stop calling frontier() on X64Assemblers in translator-x64.cpp and
elsewhere. I'll do that in a separate diff because this state is a good
intermediate point.

Differential Revision: D918496
Implement get_included_files()

PHPUnit self-test suite calls get_included_files(). Right now we return an empty array. That's not right. Implement correctly. Add and modify some tests as well.

Differential Revision: D922888
Rewrite PHP function names to change _ to - in docComments

php.net manual URLs transform the function names
to use hyphens insteaf of underscores.  The autogenerated
docComments should reflect this.

Differential Revision: D922807
Don't construct a new String/StringData for apc_unserialize

Every callsite of apc_unserialize constructed a String from a char*
and a length (involving at least one smart allocation, and a copy of the
data), passed it into apc_unserialize, which then extracted the char*
and length.

Just deal with the char*/length instead.

Differential Revision: D924015
Remove native call Dbl -> Int conversion

use cvttsd2si to do conversion

Differential Revision: D905238
Miscellaneous cleanup

This diff gets rid of some mostly dead code and cuts down on the number
of uses of tvAsCVarRef().

Differential Revision: D923035
Fix build breakage

Post-rebase commit race.

Differential Revision: D924303
Remove more deprecated collections APIs

Differential Revision: D923014
hphp: remove unused local typedefs

gcc-4.8 complains about these.

Differential Revision: D923894
initialize thread locals before static constants

initialize thread locals first since static constant
initialzation assumes the memory manager is initialized

Differential Revision: D924209

Blame Revision: D915702
Support for hhprof in client mode

A new runtime option will allow you to run in client
mode, but hang the execution thread until pprof collects the
heap dump or the HHProf thread timeout expires.

Differential Revision: D918754
hphp: fix bug in JSON parser

gcc-4.8 exposed this issue via the end-of-array-subcript warnings.
The issue is that the top pointer is incremented before that check
to see if the push should happen.  If the push failed, the top
pinter is left incremented.

Differential Revision: D923932
hphp/util/service_data.cpp: add missing histogram #include

This file uses the ##getPercentileEstimate## templated function
without including the apprpriate header which defines it.  I'm
not entirely sure why building with gcc-4.8 triggers this issue
but it appears legit regardless.

Differential Revision: D923985
Translate CnsE and CnsU

These seem to be the last bytecode instructions left
to be translated that deal with namespaces and lookups, so we
might be able to get an OSS perf win out of them.

Differential Revision: D922132
Adding OpAbs to codegen

fast absolute value computation and related optimizations

implemented Abs in interpreter

implemented Abs in codegen

added const folding for abs

updating docs

adding new test for abs()

Differential Revision: D896037
Add hhprof to news

The additon of hhprof, though under its own compilation flag, is worth mentioning

Differential Revision: D925547
Rename "no IR" stuff to reflect reality

This stuff all just punts to the interpreter, and there isn't such a
thing as a no-IR translation anymore, so let's clear this up.

I started thinking that maybe one of these steps isn't strictly
necessary. Currently, when we take a "slow" exit trace, we make a
RETRANSLATE_INTERPRET service request, which ends up creating a
"translation" that is nothing but an INTERPRET service request. This
feels like one more step than necessary; I think ideally we'd write out
an INTERPRET service request right in the exit-slow trace, but the
trouble right now is that at the point where we need to write it, we
don't know how many instructions should be interped.

Differential Revision: D925897
__get should be allowed for invalid properties

- Consistency with PHP, __get of an invalid property should
return an empty string instead of fatal

Closes #951

Differential Revision: D925220