Remove retired options from CMake/Options.cmake

ENABLE_LATE_STATIC_BINDING
INFINITE_LOOP_DETECTION
REQUEST_TIMEOUT_DETECTION
HOTPROFILER_NO_BUILTIN
INFINITE_RECURSION_DETECTION
WANT_FB_LIBMCC
Dump aprof code into separate file and teach tc-print about it

This avoids dumping a tc_dump_a file of more than 512MB.
Kill comment about completed task

I forgot to take this out with D900055.
Separate resources from objects, part 2

In HHVM we've been piggybacking resources on the KindOfObject machinery.
At the language level, resource is considered to be a different type than
object, and there are a number of differences in behavior between objects
and resources (ex. resources don't allow for dynamic properties, resources
don't work with the clone operator, the "(object)" cast behaves differently
for resources vs. objects, etc).

Piggybacking resources on the KindOfObject machinery has some downsides.
Code that deals with KindOfObject values often needs to check if the value
is a resource and go down a different code path. This makes things harder
to maintain and harder to keep parity with Zend. Also, these extra branches
hurt performance a little, and they make it harder for the JIT to do a good
job in some cases when its generating machine code that operates on objects.

This diff introduces a new DataType called "KindOfResource", it separates
ResourceData from ObjectData's inheritance hierarchy, introduces a new
smart pointer types called "Resource" and "SmartResource", updates the
runtime as appropriate, and kills some more dead code in ObjectData and
ResourceData. I've tried to keep behavior the same for the most part and
resisted the urge to fix existing bugs with resources.
implement stream_is_local

needed for composer installation
fix asCResRef

I wrote this before the resource diff landed.
Clean up StaticString declarations

We've used a couple different styles, this consolidates on a single
style and moves a few declarations out of function bodies to global
scope.
Fix segv when class_alias is called with zero args

m_params is a null pointer when there's no arguments.
Fix an issue with CGetM on objects with an integer property keys

The implementation was trying to look up a specialization for
ints, but there isn't one, so it would hit an assertion on opFunc in
debug and call to a null address in release.
Remove hphp/util/parser/test

I added this in hopes it would make it easier to do parser
development faster---in practice I find myself preferring to just wait
on the build times for compiler/parser instead.  Changes to the parser
too often involve the need to fix the crazy callback interface over
there, and it's not worthwhile to maintain it in two places.  Oh well.

Making the parser more modular to develop on is probably worthwhile
but I'm calling this a failed attempt.

In case it scares anyone that I'm deleting tests: this test suite
wasn't really intended to find bugs, but I think it's unlikely it
would (the normal tests have to parse everything anyway).
Fix how "$obj -> class" is lexed

At present, "$obj -> class" (with spaces) causes a parse error under HHVM
but it parses okay on Zend. The problem is that HHVM's lexer treats "class"
as a keyword when there are spaces after the "->". This diff fixes HHVM's
lexer appropriately.

Closes #833

This fixes https://github.com/facebook/hiphop-php/issues/833 .
Use StaticStrings in getDataTypeString()

Doing some profiling of litstr creation, I noticed f_gettype() being
called a lot, but not using static strings.
Add support for capturing stack samples, then counting them later.

StackTraceProfiler.count() captures a stack trace at the point you call
it.  It's also useful to create a stacktrace, then add it to a profiler
later on.  For example, create a stacktrace when you allocate an array,
then count it when the array reaches some state (destruction, growing,
changing shape, etc).
Remove some deprecated collection APIs that are no longer used

There are a number of deprecated collection APIs that are no longer used
(all uses of them were removed over a week ago). Let's get rid of these.
Add priority to hphp's job queue

Add priority to hphp's job queue. Basically internally we keep multiple
queues. Whenever a worker gets notified of a job, it'll look at each queue in
order from highest pri to the lowest pri. This is inefficient if we have a large
number of priorities. But in reality we'll only have a handful of priorities. So
this should be faster than a heap implementation.

Add a runtime option to be able to specify a set of end points to be prioritized
over regular requests.

In practice, we'll only have 2 priorities, high and normal. For high, we only
plan to put status.php there. This is so the web server can respond to health
check even under high load.
don't return bad json

If there was an error during parsing, we shouldn't return anything.
add phpunit test

I was having trouble gettig the binary into phabricator so the test wouldn't pass, so I committed the phar anyways. Now that the phar is in, a test should see it.
implement undocumented feature of RecursiveIteratorIterator

So this works in zend and composer relies on it, so I guess we should make it too...
don't run phpunit test in repo mode

phars don't work in repos
parallelize test runner on non-Linux platforms

parallelize test runner on non-Linux platforms

Closes #903

Differential Revision: D904203