* PHP-5.5: (276 commits)
Patch for Bug #64544. The process title change module keeps track of the locally allocated environ, so it doesn't need to worry about when environ changes underneath it, for example by putenv()/setenv()
Fix "passing NULL to non-pointer argument" warnings in intl
Remove support for cloning generators
Removed deprecated check
Fix whitespace issue in the SOAP test
Fix SOAP test
Forgot to fix the test on 5.4
Exclude Travis build for 5.3 and 5.4
Fix tests after addition of ^ (xor) operator to ini
Fix Bug #64545: PHP Error in ef93a93ee2
Attempt to fix SKIP
This will PHP 5.3.25
Typo fix (greater then => greater than)
don't optimize script if it's not going to be cached
Reimplemented OPcache restart trigger. Now, if memory or hash are full the restart is scheduled only in case the amount of wasted memory is above opcache.max_wasted_percentage. Otherwise OPcahce continue serving the following requests using already cached files, but doesn't try to add new files (the cache is full anyway).
With pkgconfig < 0.28 output is a single space With pkgconfig = 0.28 output is an empty string, This breaks the test on the 2 vars
Fixed issue #78 (incorrect file path validation)
Fix test on Mac (\D shows up)
Add test for #64529
will be 5.4.15
...
PHP should preserve the least significant bits when casting from double
to long. Zend.m4 contains this:
AC_DEFINE([ZEND_DVAL_TO_LVAL_CAST_OK], 1, [Define if double cast to long preserves least significant bits])
If ZEND_DVAL_TO_LVAL_CAST_OK is not defined, zend_operators.h had an
inline implementation of zend_dval_to_lval() that would do a cast to an
int64_t (when sizeof(long) == 4), then a cast to unsigned long and
finally the cast to long.
While this works well for doubles inside the range of values of the type
used in the first cast (int64_t in the 32-bit version and unsigned long
in the 64-bit version), if outside the range, it is undefined behavior
that WILL give varying and not particularly useful results.
This commit uses fmod() to first put the double in a range that can
safely be cast to unsigned long and then casts this unsigned long to
long. This last cast is implementation defined, but it's very likely
that this gives the expected result (i.e. the internal 2's complement
representation is unchanged) on all platforms that PHP supports. In any
case, the previous implementationa already had this assumption.
This alternative code path is indeed significantly slower than simply
casting the double (almost an order of magnitude), but that should not
matter because casting doubles with a very high absolute value is a
rare event.
As we discussed with stefan, we think previous of allowing use with
classes is a bug, should be forbided, anyway, the error message should
be improved.