Trivial improvements to hphp/test/frameworks/perf

Summary: - fix markdown formatting in 'Usage' section of README.md
- make Usage section say bin/php-cgi, not bin/php
- make Usage section say it will run as a regular user
- specify a log file (/dev/null) to siege in warmup mode
- add a timestmap to print_progress

refs facebook/hhvm#3664

Reviewed By: @JoelMarcey

Differential Revision: D1536535
Add sanity test system to OSS benchmarker

Summary: Check that we're getting an expected substring in the response.

Reviewed By: @JoelMarcey

Differential Revision: D1536933
Fix double deallocation of object in zend conversion of object to string

Summary: fixes #2844

runtime/ext_zend_compat/hhvm/zend-wrap-func.cpp line 80 - 102 deallocates the object twice.
The first time is when the object is parsed as a string, and the second time is in
frame_free_local_inl.

parse_arg_object_to_string is only called from one place, so I don't think it will have
side effects on other code.

Reviewed By: @ptarjan

Differential Revision: D1526334
Add manpages for conversion tools

Summary: Last two. These are very minimal -- their usage really requires
a holistic description of the conversion process, for which I heavily
encourage readers to look at the HHVM docs site instead.

Reviewed By: @elgenie

Differential Revision: D1537420
Makes <<__Memoize>> work with arbitrary args

Summary: This is the last piece needed to make <<__Memoize>> a full replacement for DynamicYield.

For serialization, I chose to extend fb_compact_serialize for a couple reasons. The main reason is that it's nearly ideal for this purpose. It runs in one pass with a StringBuffer (as opposed to two passes one for length, one for serialization with fb_serialize). It also correctly handles differentiating falsey types and produces shorter strings than either fb_serialize or json_encode for faster lookup. The only two parts that were not ideal were the fact that it doesn't throw on error, and can't handle objects. Those are the two things I modified. I think I extended an existing pattern, but let me know if I should move the implementation somewhere common.

By the way, IKeyableObjectUtils does a pass through input arrays to look for serializable objects, copying the input array in the process. Once this is in, it would be interesting to see if IKeyableObjectUtils::serialze() could be turned into a wrapper to HH\serialize_memoize_param(). There are other places than DynamicYield that use IKeyableObjectUtils::serialize(), and this is bound to be faster.

Reviewed By: @jano

Differential Revision: D1526762
OSS perf: add another MySQL grant, make instructions clearer

Summary: Feedback from joelp and rrh.

refs facebook/hhvm#3664

Reviewed By: @JoelMarcey

Differential Revision: D1539137
Change ports to less-frequently-used ones

Summary: :8080 is very commonly used - fbide grabs it, as does something on rrh's machine.

Reviewed By: @JoelMarcey

Differential Revision: D1539501
Fix some typos in manpages.

Summary: As subject.  Tyops are bad.

Reviewed By: @jwatzman

Differential Revision: D1539805
Make OSS perf runner complain if ports needed are in use

Reviewed By: @JoelMarcey

Differential Revision: D1539467
Added the PHP port of several of Google's Octane suite of benchmarks.

Summary: I've ported the Octane benchmark harness (see: https://developers.google.com/octane/benchmark) and several of the Octane benchmarks to PHP. This is handy for comparing the performance of HHVM to other PHP implementations as well as to other dynamic language implementations like V8/JavaScriptCore.

Reviewed By: @ottoni

Differential Revision: D1534471
Use raw troff encoding for official HHVM man page

Summary: So we don't have to require `ronn` to build the man page, just use the raw troff
format instead. That way it can be put into `/usr/share/man/man1` directly and just
work.

Reviewed By: @ptarjan

Differential Revision: D1536269
facebook::proxygen --> ::proxygen

Summary: See discussion here: https://www.facebook.com/groups/opensourceatfb/permalink/771563229554092/
After I get fbcode contbuild clean, I'll submit a diff for
hhvm-third-party. In the meantime, the cmake build will fail here.

Reviewed By: @ptarjan

Differential Revision: D1537217
Ignore __pycache__ left behind from python 3 embedded in gdb.

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

Reviewed By: @fredemmott

Differential Revision: D1539920

Pulled By: @JoelMarcey
Updated mockery to 0.9.2

Summary: There is one issue here:

```
1) Mockery\Generator\MockConfigurationBuilderTest::reservedWordsAreBlackListedByDefault

RUN TEST FILE:  cd /root/hhvm/hphp/test/frameworks/framework_downloads/mockery && /root/hhvm/hphp/test/frameworks/../../hhvm/hhvm -v Repo.Local.Mode=-- -v Repo.Central.Path=/tmp/framework-testgHoUxi --config /root/hhvm/hphp/test/frameworks/php.ini -c /root/hhvm/hphp/test/frameworks/framework_class_overrides/Mockery.ini /root/hhvm/hphp/test/frameworks/framework_class_overrides/../vendor/bin/phpunit --debug  -c /root/hhvm/hphp/test/frameworks/framework_downloads/mockery/phpunit.xml.dist --filter 'Mockery\\Generator\\MockConfigurationBuilderTest::reservedWordsAreBlackListedByDefault'

Need a builtin class with a method that is a reserved word

/root/hhvm/hphp/test/frameworks/framework_downloads/mockery/tests/Mockery/Test/Generator/MockConfigurationBuilderTest.php:19
/root/hhvm/hphp/test/frameworks/vendor/phpunit/phpunit/src/TextUI/Command.php:186
/root/hhvm/hphp/test/frameworks/vendor
Closes https://github.com/facebook/hhvm/pull/3676

Reviewed By: @fredemmott, @JoelMarcey

Differential Revision: D1539922
Ban running oss perf as root

Summary: unneccessary; while it can't directly cause problems, it can make things harder to debug - eg instead of getting a permission error, a required log file silently goes to the wrong place.

Reviewed By: @JoelMarcey

Differential Revision: D1540031
Add --php options to HHVM man page

Summary: Have a separate section with the options we support when emulating PHP 5.x with the `--php` flag.

Reviewed By: @ptarjan

Differential Revision: D1540586
Fix case for parent classes in autoload

Summary: The case of the name passed to autoload should match
the case in the extends/implements/use clause, not the
case of the class/interface/trait declaration.

Closes #3146

Reviewed By: @jdelong

Differential Revision: D1540544
Turn off ControlFlow by default in WholeProgram mode

Summary: Its no longer doing anything useful, and its 85% of the
postoptimize time. I'll turn it off first, and if no issues turn
up, I'll get rid of the code.

Reviewed By: @jdelong

Differential Revision: D1540059
Fix refcounting in arReturn() and stop leaking static strings.

Summary: Change arReturn() to take Variant&& and move the value
to the return slot in ActRec.

Reviewed By: @markw65

Differential Revision: D1541349
Fix GMP tests/crashes

Summary: This should fix some crashes and all bad tests other than 014, and 028.

I marked test 014 as flakey, as it is checking for wrong return values due to a bug in PHP.  It appears as though PHP is using the resource number as the factorial rather than the resource's value, giving unpridictable results (depends on how many resources have been used thus far)

Test 028 still fails as gmp_random is not implemented.
Closes https://github.com/facebook/hhvm/pull/3639

Reviewed By: @sgolemon

Differential Revision: D1530781