Put msarray/miarray warnings behind a runtime option

Reviewed By: @edwinsmith

Differential Revision: D1447713
class requirements: raise error if missing lookupClass

Summary: ... a bit more error resilient on the *second* use of a class with a missing requirement.

Reviewed By: @jdelong

Differential Revision: D1440884
Rename snappy methods

Summary: Renames sncompress to snappy_compress and snuncompress to snappy_uncompress to maintain code compatibility with PHP (when using php-snappy):

https://code.google.com/p/php-snappy/

Fixes compatibility specifically with:
https://github.com/colinmollenhour/Cm_Cache_Backend_Redis/blob/master/Cm/Cache/Backend/Redis.php#L857

Replaces old PR due to incorrect commit message

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

Reviewed By: ptarjan, joelm

Differential Revision: D1452331

Pulled By: svcscm
Implemented basic xdebug tracing

Summary: This diff implements xdebug tracing, but does not include support for
outputting HTML or computerized tracing formats. Those will come next.

Xdebug tracing is a feature that, after started, collects information
about function begin/end events and then writes the information to
a nicely formatted file. It can be started and stopped on demand.

An example is below:
    TRACE START [2014-07-25 04:21:58]
        0.0079     248240      +32       -> var_dump() /home/jlreyes/tests/xdebug_tracing/trace.php:4
        0.0080     248192      -48     -> xdebug_get_tracefile_name() /home/jlreyes/tests/xdebug_tracing/trace.php:7
        0.0080     248272      +80     -> var_dump() /home/jlreyes/tests/xdebug_tracing/trace.php:7
        0.0087     249792    +1520     -> require(/home/jlreyes/tests/xdebug_tracing/trace_helper.php) /home/jlreyes/tests/xdebug_tracing/trace.php:8
        0.0087     249792       +0       -> bee() /home/jlreyes/tests/xdebug_tracing/trace_helper.php:7
        0.0087     249160     -632     -> Foo->bar() /home/jlreyes/tests/xdebug_tracing/trace.php:25
        0.0088     249208      +48       -> Foo->bar() /home/jlreyes/tests/xdebug_tracing/trace.php:13
        0.0088     249256      +48         -> Foo->bar() /home/jlreyes/tests/xdebug_tracing/trace.php:13
        0.0088     249304      +48           -> Foo->bar() /home/jlreyes/tests/xdebug_tracing/trace.php:13
        0.0088     249344      +40             -> baz() /home/jlreyes/tests/xdebug_tracing/trace.php:12
        0.0089     249344       +0               -> boo() /home/jlreyes/tests/xdebug_tracing/trace.php:18
        0.0089     249344       +0               -> boo() /home/jlreyes/tests/xdebug_tracing/trace.php:18
        0.0089     249344       +0               -> boo() /home/jlreyes/tests/xdebug_tracing/trace.php:19
        0.0090     249056     -288     -> boo() /home/jlreyes/tests/xdebug_tracing/trace.php:26
        0.0090     249056       +0     -> bee() /home/jlreyes/tests/xdebug_tracing/trace.php:27
        0.0090     249104      +48     -> xdebug_stop_trace() /home/jlreyes/tests/xdebug_tracing/trace.php:29
        0.0090     249136
    TRACE END   [2014-07-25 04:21:58]

There are several small consistency changes that are included in this
diff, such as ensuring variables related to the frame buffer are the
same type (int64_t).

Reviewed By: @ptarjan

Differential Revision: D1457916
typo

Summary: Closes https://github.com/facebook/hhvm/pull/3287

Reviewed By: @JoelMarcey

Differential Revision: D1460695

Pulled By: svcscm
run usercode before ending the request

Currently, the following happens at the end of a request:
onSendEnd -> run postsend functions -> hphp_context_exit

However, hphp_context_exit can call destructors for objects that are
alive at the end of request. This usercode should be allowed to send
output. This causes a circular reference issue because postsend
functions might need to access those objects.

When we don't have a postsend function, preserve Zend compatibility by
delaying the execution of onSendEnd.