Streamline a bit of code in AssignValHelper

The old code was constructing a Variant on the stack just to
decref it via the destructor.  Just call the decref directly and avoid
a few memory operations.

Differential Revision: D913228
Disable apparently broken dead store removal in hphpc

Hphp optimizes code like ($k += foo) into $k + $foo even if
$k is referenced again later in the function.

Differential Revision: D914064
(retry) Fix bug in mysql_next_result's return value that confused "done" with "error"

The MySQL documention states that mysql_next_result's return
values are:

0	Successful and there are more results
-1	Successful and there are no more results
>0	An error occurred

However, we were casting it to a bool, meaning errors and "all done"
were mixed into the same result.

This diff brings back the full error range.

This diff requires D912547, which fixes unit tests to accept both the
new and old return value types.

Differential Revision: D912553
Name next release

And also switch over to unambiguous date format.

Differential Revision: D914499
use f_php_uname() to replace hardcoded PHP_OS

- PHP_OS should return the real OS instead of Linux

Closes #933

Differential Revision: D914263
Implement a general purpose Systemlib SessionModule wrapper

To implement a session module in PHP, add a small C++ class
in runtime/ext/ext_session.cpp

  static class MySesionModule : public SystemlibSessionModule {
   public:
    MySessionModule() : SystemlibSessionModule('my', 'MySessionModuleImpl') {}
  } s_my_session_module;

Where 'my' is the name of the session handler (as known by the ini setting)
'MySessionModuleImpl' is the Systemlib PHP class implementing SessionHandlerInterface

Differential Revision: D872889
Fix SEGVs found by zend test bug35239.phpt

We dereferenced some potentially-freed memory only in order
to return something no one needed.  Remove the return value from
ObjectData::setProp.

Differential Revision: D909967
Fix a few SEGVs relating to cyclic data with SETOP_BODY

Test cases inspired by zend test bug35239.phpt.  I think
there are other cases where SETOP_BODY should be SETOP_BODY_CELL, but
I looked at them mainly to see if they would crash, not if they were
optimal.  (Except I changed SetOpL which seemed to be doing tvToCell
twice for no reason.)

Differential Revision: D910025
Fix a SEGV for zend's bug54265.phpt

Differential Revision: D910055
Remove another TypedValue -> boolean helper

Differential Revision: D910135
Something already fixed these ones

Differential Revision: D910062
Allow separate timeout for postsend

Add a new runtime option: Server.PspTimeoutSeconds.
If its zero, postsend gets the same timeout that the request was running under. If its less than zero, postsend will get min(time remaining for main thread, -Server.PspTimeoutSeconds), and if its greater than zero, it will get exactly Server.PspTimeoutSeconds.

In addition, fixed cli mode to respect Server.RequestTimeoutSeconds.

Differential Revision: D914478
Implement Redis session module

Translates session events into Redis commands

Differential Revision: D872896
Remove unused runtime option "StrictCollections"

This runtime option was removed from all config files a while ago and is
no longer used. Let's get rid of it.

Differential Revision: D909886
Fixing issue in instructionsAreSinkable

the function wasn't actually checking if all the instructions were safe to sink

Differential Revision: D915210
Implemented highlight_file and highlight_string

Differential Revision: D913227
Removed the Locale implementation

Symfony relies on class_exist('Locale') to check if the intl extension is
enabled. By removing this Locale class, we let Symfony use the stubs they
provide.

Differential Revision: D908679
Improve sort comparator warning message

Some developers were a little confused by the warning message printed when
a sort comparator returns a boolean. This updates the messages to be more
clear and more explicit.

Differential Revision: D909645
Rename rest of files in runtime/base

Differential Revision: D913884
Add vim temp files to .gitignore