[git] web/php.git branch master updated. cd90620
| From: | dsp@php.net | Date: | Thu, 01 Mar 2012 19:34:11 +0000 |
| Subject: | [git] web/php.git branch master updated. cd90620 | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-13140@lists.php.net to get a copy of this message | ||
The branch, master on web/php.git has been updated
via cd90620ea440c0c3f7181da08aa44fa037255ba0 (commit)
via c3f0c4a8701f5169b2c745bb486122ed36dab730 (commit)
via 276cc67751680cecbb4318a61e06e734a3563112 (commit)
from 53accfe3c2ea7b7c9515e63682ba9a45ef2a31e0 (commit)
http://git.php.net/?p=web/php.git;a=log;h=cd90620ea440c0c3f7181da08aa44fa037255ba0;hp=53accfe3c2ea7b7c9515e63682ba9a45ef2a31e0
Summary of changes:
ChangeLog-5.php | 628 ++++++++++++++++++++++++++++++++++++++++++++++++++++
distributions | 2 +-
releases/5_4_0.php | 65 ++++++
3 files changed, 694 insertions(+), 1 deletions(-)
create mode 100644 releases/5_4_0.php
-- Log ----------------------------------------
commit cd90620ea440c0c3f7181da08aa44fa037255ba0
Author: David Soria Parra <dsp@php.net>
Date: Thu Mar 1 20:22:18 2012 +0100
PHP 5.4.0 release announcement
diff --git a/releases/5_4_0.php b/releases/5_4_0.php
new file mode 100644
index 0000000..4c5e038
--- /dev/null
+++ b/releases/5_4_0.php
@@ -0,0 +1,65 @@
+<?php
+// $Id: 5_2_0.php,v 1.4 2007/01/16 16:04:05 bjori Exp $
+$_SERVER['BASE_PAGE'] = 'releases/5_4_0.php';
+include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc';
+site_header("PHP 5.4.0 Release Announcement");
+?>
+
+<h1>PHP 5.4.0 Release Announcement</h1>
+<p>
+The PHP development team is proud to announce the immediate availability
+of PHP <a href="http://php.net/downloads.php#v5.4.0">5.4.0</a>.
+This release is a major leap forward in the 5.x series,
+which includes a large number of new features and bug fixes.
+</p>
+
+<p>
+<b>The key features of PHP 5.4.0 include:</b>
+</p>
+<ul>
+ <li>New language syntax including <a href="http://php.net/traits">Traits</a>,
+ <a href="http://docs.php.net/manual/en/language.types.array.php">shortened
array syntax</a>
+ and <a href="http://docs.php.net/manual/en/migration54.new-features.php">more</a></li>
+ <li>Improved performance and reduced memory consumption</li>
+ <li>Support for multibyte languages now available in all builds of PHP at the flip of a
runtime switch</li>
+ <li><a href="http://php.net/manual/en/features.commandline.webserver.php">
+ Built-in webserver</a> in CLI mode to simplify development workflows and
testing</li>
+ <li>Cleaner code base thanks to the removal of multiple deprecated language
features</li>
+ <li>Many more improvements and fixes</li>
+</ul>
+
+<p>
+<b>Changes that affect compatibility:</b>
+</p>
+<ul>
+ <li><a href="http://www.php.net/manual/en/security.globals.php">Register
globals</a>, <a href="http://www.php.net/manual/en/security.magicquotes.php">magic
quotes</a> and <a href="http://www.php.net/manual/en/features.safe-mode.php">safe
mode</a> were removed</li>
+ <li>The <a href="http://php.net/manual/en/control-structures.break.php">break</a>/<a
href="http://php.net/manual/en/control-structures.continue.php">continue</a>
$var syntax was removed</li>
+ <li>The ini option <a href=""http://www.php.net/manual/en/ini.core.php#ini.allow-call-time-pass-reference>allow_call_time_pass_reference</a>
was removed</li>
+ <li>The PHP <a href="http://www.php.net/manual/en/ini.core.php#ini.default-charset">default_charset</a>
is now "UTF-8"</li>
+</ul>
+
+<p>
+<b>Extensions moved to <a href="http://pecl.php.net">PECL</a>:</b>
+</p>
+<ul>
+ <li><a href="http://www.php.net/manual/en/ref.sqlite.php">ext/sqlite</a>
(<a href="http://www.php.net/manual/en/book.sqlite3.php">ext/sqlite3</a>
and <a href="http://www.php.net/manual/en/ref.pdo-sqlite.php">ext/pdo_sqlite</a>
are not affected)</li>
+</ul>
+
+<p>
+PHP 5.4 series will be the last versions to support Windows XP and
+Windows 2003. We will not provide binary packages for these Windows
+versions anymore after PHP 5.4.
+</p>
+
+<p>
+For users upgrading from PHP 5.3 there is a migration guide available
+<a href="http://php.net/migration54">here</a>,
detailing the changes between
+those releases and PHP 5.4.0.
+</p>
+
+<p>
+ For a full list of changes in PHP 5.4.0, see the
+ <a href="/ChangeLog-5.php#5.4.0">ChangeLog</a>.
+</p>
+
+<?php site_footer(); ?>
commit c3f0c4a8701f5169b2c745bb486122ed36dab730
Author: David Soria Parra <dsp@php.net>
Date: Thu Mar 1 19:56:08 2012 +0100
Update distributions submodule
diff --git a/distributions b/distributions
index 483968f..9840dd0 160000
--- a/distributions
+++ b/distributions
@@ -1 +1 @@
-Subproject commit 483968fd35676f02e2cfbe01108afe2f4510e4ab
+Subproject commit 9840dd018d0921f355a2f67ac470d0c7d62eda95
commit 276cc67751680cecbb4318a61e06e734a3563112
Author: David Soria Parra <dsp@php.net>
Date: Thu Mar 1 18:37:45 2012 +0100
Changelog entries for PHP 5.4.0
diff --git a/ChangeLog-5.php b/ChangeLog-5.php
index 76e1ef0..e49d22c 100644
--- a/ChangeLog-5.php
+++ b/ChangeLog-5.php
@@ -11,6 +11,634 @@ function peclbugl($number) { echo "<a href=\"http://pecl.php.net/bugs/bug.php?
<h1>PHP 5 ChangeLog</h1>
+<a name="5.4.0"></a><!-- {{{ 5.3.10 -->
+<h3>Version 5.4.0</h3>
+<b>01-Mar-2012</b>
+
+<ul>
+<li>autoconf 2.59+ is now supported (and required) for generating the
+ configure script with ./buildconf. Autoconf 2.60+ is desirable
+ otherwise the configure help order may be incorrect.</li>
+</ul>
+<ul>
+<li>Removed legacy features</li>
+<ul>
+ <li>break/continue $var syntax.</li>
+ <li>Safe mode and all related ini options.</li>
+ <li>register_globals and register_long_arrays ini options.</li>
+ <li>import_request_variables().</li>
+ <li>allow_call_time_pass_reference.</li>
+ <li>define_syslog_variables ini option and its associated function.</li>
+ <li>highlight.bg ini option.</li>
+ <li>Session bug compatibility mode (session.bug_compat_42 and
+ session.bug_compat_warn ini options).</li>
+ <li>session_is_registered(), session_register() and session_unregister()
+ functions.</li>
+ <li>y2k_compliance ini option.</li>
+ <li>magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase
+ ini options. get_magic_quotes_gpc, get_magic_quotes_runtime are kept
+ but always return false, set_magic_quotes_runtime raises an
+ E_CORE_ERROR.</li>
+ <li>Removed support for putenv("TZ=..") for setting the timezone.</li>
+ <li>Removed the timezone guessing algorithm in case the timezone isn't set with
+ date.timezone or date_default_timezone_set(). Instead of a guessed
+ timezone, "UTC" is now used instead.</li>
+</ul>
+</ul>
+<ul>
+<li>Moved extensions to PECL</li>
+<ul>
+ <li>ext/sqlite. (Note: the ext/sqlite3 and ext/pdo_sqlite extensions are
+ not affected)</li>
+</ul>
+</ul>
+<ul>
+<li>General improvements</li>
+<ul>
+ <li>Added short array syntax support ([1,2,3]), see UPGRADING guide for full
+ details.</li>
+ <li>Added binary numbers format (0b001010).</li>
+ <li>Added support for Class::{expr}() syntax.</li>
+ <li>Added multibyte support by default. Previously php had to be compiled
+ with --enable-zend-multibyte. Now it can be enabled or disabled through
+ zend.multibyte directive in php.ini.</li>
+ <li>Removed compile time dependency from ext/mbstring.</li>
+ <li>Added support for Traits.</li>
+ <li>Added closure $this support back.</li>
+ <li>Added array dereferencing support.</li>
+ <li>Added callable typehint.</li>
+ <li>Added indirect method call through array. <?php bugl(47160); ?>.</li>
+ <li>Added DTrace support.</li>
+ <li>Added class member access on instantiation (e.g. (new foo)->bar())
support.</li>
+ <li><?= is now always available regardless of the short_open_tag setting.</li>
+ <li>Implemented Zend Signal Handling (configurable option --enable-zend-signals,
+ off by default).</li>
+ <li>Improved output layer, see README.NEW-OUTPUT-API for internals.</li>
+ <li>Improved unix build system to allow building multiple PHP binary SAPIs and
+ one SAPI module the same time. <?php bugl(53271); ?>, <?php bugl(52419);
?>.</li>
+ <li>Implemented closure rebinding as parameter to bindTo.</li>
+ <li>Improved the warning message of incompatible arguments.</li>
+ <li>Improved ternary operator performance when returning arrays.
+ <li>Changed error handlers to only generate docref links when the docref_root
+ INI setting is not empty.</li>
+ <li>Changed silent conversion of array to string to produce a notice.</li>
+ <li>Changed default value of "default_charset" php.ini option from ISO-8859-1 to
+ UTF-8.</li>
+ <li>Changed silent casting of null/''/false into an Object when adding
+ a property into a warning.</li>
+ <li>Changed E_ALL to include E_STRICT.</li>
+ <li>Disabled windows CRT warning by default, can be enabled again using the ini
+ directive windows_show_crt_warnings.</li>
+ <li><?php bugfix(55378); ?>: Binary number literal returns float number though its
+ value is small enough.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Zend Engine memory usage</li>
+<ul>
+ <li>Improved parse error messages.</li>
+ <li>Replaced zend_function.pass_rest_by_reference by
+ ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags.</li>
+ <li>Replaced zend_function.return_reference by ZEND_ACC_RETURN_REFERENCE
+ in zend_function.fn_flags.</li>
+ <li>Removed zend_arg_info.required_num_args as it was only needed for internal
+ functions. Now the first arg_info for internal functions (which has special
+ meaning) is represented by zend_internal_function_info structure.</li>
+ <li>Moved zend_op_array.size, size_var, size_literal, current_brk_cont,
+ backpatch_count into CG(context) as they are used only during compilation.</li>
+ <li>Moved zend_op_array.start_op into EG(start_op) as it's used only for
+ 'interactive' execution of single top-level op-array.</li>
+ <li>Replaced zend_op_array.done_pass_two by ZEND_ACC_DONE_PASS_TWO in
+ zend_op_array.fn_flags.</li>
+ <li>op_array.vars array is trimmed (reallocated) during pass_two.
+ <li>Replaced zend_class_entry.constants_updated by ZEND_ACC_CONSTANTS_UPDATED
+ in zend_class_entry.ce_flags.</li>
+ <li>Reduced the size of zend_class_entry by sharing the same memory space
+ by different information for internal and user classes.
+ See zend_class_entry.info union.</li>
+ <li>Reduced size of temp_variable.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Zend Engine, performance tweaks and optimizations</li>
+<ul>
+ <li>Inlined most probable code-paths for arithmetic operations directly into
+ executor.</li>
+ <li>Eliminated unnecessary iterations during request startup/shutdown.</li>
+ <li>Changed $GLOBALS into a JIT autoglobal, so it's initialized only if used.
+ (this may affect opcode caches!)</li>
+ <li>Improved performance of @ (silence) operator.</li>
+ <li>Simplified string offset reading. $str[1][0] is now a legal construct.</li>
+ <li>Added caches to eliminate repeatable run-time bindings of functions,
+ classes, constants, methods and properties.</li>
+ <li>Added concept of interned strings. All strings constants known at compile
+ time are allocated in a single copy and never changed.</li>
+ <li>ZEND_RECV now always has IS_CV as its result.</li>
+ <li>ZEND_CATCH now has to be used only with constant class names.</li>
+ <li>ZEND_FETCH_DIM_? may fetch array and dimension operands in different order.</li>
+ <li>Simplified ZEND_FETCH_*_R operations. They can't be used with the
+ EXT_TYPE_UNUSED flag any more. This is a very rare and useless case.
+ ZEND_FREE might be required after them instead.</li>
+ <li>Split ZEND_RETURN into two new instructions ZEND_RETURN and
+ ZEND_RETURN_BY_REF.</li>
+ <li>Optimized access to global constants using values with pre-calculated
+ hash_values from the literals table.</li>
+ <li>Optimized access to static properties using executor specialization.
+ A constant class name may be used as a direct operand of ZEND_FETCH_*
+ instruction without previous ZEND_FETCH_CLASS.</li>
+ <li>zend_stack and zend_ptr_stack allocation is delayed until actual usage.</li>
+</ul>
+</ul>
+<ul>
+<li>Other improvements to Zend Engine</li>
+<ul>
+ <li>Added an optimization which saves memory and emalloc/efree calls for empty
+ HashTables.</li>
+ <li>Added ability to reset user opcode handlers.</li>
+ <li>Changed the structure of op_array.opcodes. The constant values are moved from
+ opcode operands into a separate literal table.</li>
+ <li>Fixed (disabled) inline-caching for ZEND_OVERLOADED_FUNCTION methods.</li>
+ <li><?php bugfix(43200); ?> (Interface implementation / inheritence not possible in
+ abstract classes).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved core functions</li>
+<ul>
+ <li>Added optional argument to debug_backtrace() and debug_print_backtrace()
+ to limit the amount of stack frames returned.</li>
+ <li>Added hex2bin() function.</li>
+ <li>number_format() no longer truncates multibyte decimal points and thousand
+ separators to the first byte. <?php bugl(53457); ?>.</li>
+ <li>Added support for object references in recursive serialize() calls.
+ <?php bugl(36424); ?>.</li>
+ <li>Added support for SORT_NATURAL and SORT_FLAG_CASE in array
+ sort functions (sort, rsort, ksort, krsort, asort, arsort and
+ array_multisort). <?php bugl(55158); ?>.</li>
+ <li>Added stream metadata API support and stream_metadata() stream class
+ handler.</li>
+ <li>User wrappers can now define a stream_truncate() method that responds
+ to truncation, e.g. through ftruncate(). <?php bugl(53888); ?>.</li>
+ <li>Improved unserialize() performance.</li>
+ <li>Changed array_combine() to return empty array instead of FALSE when both
+ parameter arrays are empty. <?php bugl(34857); ?>.</li>
+ <li>Fixed invalid free in call_user_method() function.</li>
+ <li>Fixed crypt_blowfish handling of 8-bit characters. (CVE-2011-2483).</li>
+ <li><?php bugfix(61095); ?> (Incorect lexing of
0x00*+<NUM>).</li>
+ <li><?php bugfix(60965); ?> (Buffer overflow on htmlspecialchars/entities with
+ $double=false).</li>
+ <li><?php bugfix(60895); ?> (Possible invalid handler usage in windows random
+ functions).</li>
+ <li><?php bugfix(60879); ?> (unserialize() Does not invoke __wakeup() on
object).</li>
+ <li><?php bugfix(60825); ?> (Segfault when running symfony 2 tests).</li>
+ <li><?php bugfix(60809); ?> (TRAITS - PHPDoc Comment Style Bug).</li>
+ <li><?php bugfix(60627); ?> (httpd.worker segfault on startup with
php_value).</li>
+ <li><?php bugfix(60613); ?> (Segmentation fault with $cls->{expr}()
syntax).</li>
+ <li><?php bugfix(60611); ?> (Segmentation fault with Cls::{expr}()
syntax).</li>
+ <li><?php bugfix(60558); ?> (Invalid read and writes).</li>
+ <li><?php bugfix(60536); ?> (Traits Segfault).</li>
+ <li><?php bugfix(60444); ?> (Segmentation fault with include & class
extending).</li>
+ <li><?php bugfix(60362); ?> (non-existent sub-sub keys should not have
values).</li>
+ <li><?php bugfix(60350); ?> (No string escape code for ESC (ascii 27), normally
\e).</li>
+ <li><?php bugfix(60321); ?> (ob_get_status(true) no longer returns an array when
+ buffer is empty).</li>
+ <li><?php bugfix(60282); ?> (Segfault when using ob_gzhandler() with open
buffers).</li>
+ <li><?php bugfix(60240); ?> (invalid read/writes when unserializing specially crafted
+ strings).</li>
+ <li><?php bugfix(60227); ?> (header() cannot detect the multi-line header with
+ CR(0x0D)).</li>
+ <li><?php bugfix(60174); ?> (Notice when array in method prototype error).</li>
+ <li><?php bugfix(60169); ?> (Conjunction of ternary and list crashes PHP).</li>
+ <li><?php bugfix(60120); ?> (proc_open's streams may hang with stdin/out/err
when</li>
+ the data exceeds or is equal to 2048 bytes).
+ <li><?php bugfix(60099); ?> (__halt_compiler() works in braced
namespaces).</li>
+ <li><?php bugfix(60038); ?> (SIGALRM cause segfault in php_error_cb).</li>
+ <li><?php bugfix(55874); ?> (GCC does not provide __sync_fetch_and_add on some
archs).</li>
+ <li><?php bugfix(55871); ?> (Interruption in substr_replace()).</li>
+ <li><?php bugfix(55825); ?> (Missing initial value of static locals in trait
methods).</li>
+ <li><?php bugfix(55801); ?> (Behavior of unserialize has changed).</li>
+ <li><?php bugfix(55622); ?> (memory corruption in parse_ini_string).</li>
+ <li><?php bugfix(55758); ?> (Digest Authenticate missed in 5.4) .</li>
+ <li><?php bugfix(55748); ?> (multiple NULL Pointer Dereference with zend_strndup())
+ (CVE-2011-4153).</li>
+ <li><?php bugfix(55749); ?> (TOCTOU issue in getenv() on Windows builds).</li>
+ <li><?php bugfix(55707); ?> (undefined reference to `__sync_fetch_and_add_4' on
Linux
+ parisc).</li>
+ <li><?php bugfix(55705); ?> (Omitting a callable typehinted argument causes a
segfault).</li>
+ <li><?php bugfix(55475); ?> (is_a() triggers autoloader, new optional 3rd argument to
+ is_a and is_subclass_of).</li>
+ <li><?php bugfix(55471); ?> (ZTS build broken with dtrace).</li>
+ <li><?php bugfix(55124); ?> (recursive mkdir fails with current (dot) directory in
path).</li>
+ <li><?php bugfix(55084); ?> (Function registered by header_register_callback is
+ called only once per process).</li>
+ <li>Implement <?php bugl(54514); ?> (Get php binary path during script
execution).</li>
+ <li><?php bugfix(52624); ?> (tempnam() by-pass open_basedir with nonexistent
+ directory).</li>
+ <li><?php bugfix(52211); ?> (iconv() returns part of string on error).</li>
+ <li><?php bugfix(51860); ?> (Include fails with toplevel symlink to /).</li>
+</ul>
+
+<li>Improved generic SAPI support</li>
+<ul>
+ <li>Added $_SERVER['REQUEST_TIME_FLOAT'] to include microsecond
precision.</li>
+ <li>Added max_input_vars directive to prevent attacks based on hash collisions.</li>
+ <li>Added header_register_callback() which is invoked immediately
+ prior to the sending of headers and after default headers have
+ been added.</li>
+ <li>Added http_response_code() function. <?php bugl(52555); ?>.</li>
+ <li><?php bugfix(55500); ?> (Corrupted $_FILES indices lead to security
concern).</li>
+ <li><?php bugfix(54374); ?> (Insufficient validating of upload name leading to
+ corrupted $_FILES indices).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Apache SAPI</li>
+<ul>
+ <li><?php bugfix(60205); ?> (possible integer overflow in content_length).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved CLI SAPI</li>
+<ul>
+ <li>Added friendly log messages. <?php bugl(55109); ?>.</li>
+ <li>Added built-in web server that is intended for testing purpose.</li>
+ <li>Added command line option --rz <name> which shows information of the
+ named Zend extension.</li>
+ <li>Interactive readline shell improvements</li>
+ <ul>
+ <li>Added "cli.pager" php.ini setting to set a pager for output.
+ <li>Added "cli.prompt" php.ini setting to configure the shell prompt.
+ <li>Added shortcut #inisetting=value to change ini settings at run-time.
+ <li>Changed shell not to terminate on fatal errors.
+ <li>Interactive shell works with shared readline extension. <?php bugl(53878); ?>.
+ </ul>
+ <li><?php bugfix(60591); ?> (Memory leak when access a non-exists file).</li>
+ <li><?php bugfix(60523); ?> (PHP Errors are not reported in browsers using built-in
+ SAPI).</li>
+ <li><?php bugfix(60477); ?> (Segfault after two multipart/form-data POST requests,
+ one 200 RQ and one 404).</li>
+ <li>Implement <?php bugl(60390); ?> (Missing
$_SERVER['SERVER_PORT']).</li>
+ <li><?php bugfix(60180); ?> ($_SERVER["PHP_SELF"] incorrect).</li>
+ <li><?php bugfix(60159); ?> (Router returns false, but POST is not passed to
requested
+ resource).</li>
+ <li><?php bugfix(60146); ?> (Last 2 lines of page not being output).</li>
+ <li><?php bugfix(60115); ?> (memory definitely lost in cli server).</li>
+ <li><?php bugfix(60112); ?> (If URI does not contain a file, index.php is not
served).</li>
+ <li><?php bugfix(55759); ?> (memory leak when using built-in server).</li>
+ <li><?php bugfix(55755); ?> (SegFault when outputting header
WWW-Authenticate).</li>
+ <li><?php bugfix(55747); ?> (request headers missed in $_SERVER).</li>
+ <li><?php bugfix(55726); ?> (Changing the working directory makes router script
+ inaccessible).</li>
+ <li><?php bugfix(55463); ?> (cli-server missing _SERVER[REMOTE_ADDR]).</li>
+ <li><?php bugfix(55450); ?> (Built in web server not accepting file
uploads).</li>
+ <li><?php bugfix(55423); ?> (cli-server could not output correctly in some
case).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved CGI/FastCGI SAPI</li>
+<ul>
+ <li>Added apache compatible functions: apache_child_terminate(),
+ getallheaders(), apache_request_headers() and apache_response_headers().</li>
+ <li>Improved performance of FastCGI request parsing.</li>
+ <li>Fixed reinitialization of SAPI callbacks after php_module_startup().</li>
+</ul>
+</ul>
+<ul>
+<li>Improved PHP-FPM SAPI</li>
+<ul>
+ <li>Added partial syslog support (on error_log only). <?php bugl(52052);
?>.</li>
+ <li>Added .phar to default authorized extensions.</li>
+ <li>Added process.max to control the number of process FPM can fork. <?php bugl(55166);
?>.</li>
+ <li>Dropped restriction of not setting the same value multiple times, the last
+ one holds.</li>
+ <li>Lowered default value for Process Manager. <?php bugl(54098); ?>.</li>
+ <li>Enhanced security by limiting access to user defined extensions.
+ <?php bugl(55181); ?>.</li>
+ <li>Enhanced error log when the primary script can't be open. <?php bugl(60199);
?>.</li>
+ <li>Removed EXPERIMENTAL flag.</li>
+ <li><?php bugfix(60659); ?> (FPM does not clear auth_user on request
accept).</li>
+ <li><?php bugfix(60629); ?> (memory corruption when web server closed the fcgi
fd).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Litespeed SAPI</li>
+<ul>
+ <li><?php bugfix(55769); ?> (Make Fails with "Missing Separator"
error).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved BCmath extension</li>
+<ul>
+ <li><?php bugfix(60377); ?> (bcscale related crashes on 64bits
platforms).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved CURL extension</li>
+<ul>
+ <li>Added support for CURLOPT_MAX_RECV_SPEED_LARGE and
+ CURLOPT_MAX_SEND_SPEED_LARGE. <?php bugl(51815); ?>.</li>
+ <li><?php bugfix(60439); ?> (curl_copy_handle segfault when used with
+ CURLOPT_PROGRESSFUNCTION).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Date extension</li>
+<ul>
+ <li>Added the + modifier to parseFromFormat to allow trailing text in the
+ string to parse without throwing an error.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved DBA extension</li>
+<ul>
+ <li>Added Tokyo Cabinet abstract DB support.</li>
+ <li>Added Berkeley DB 5 support.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved DOM extension</li>
+<ul>
+ <li>Added the ability to pass options to loadHTML.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved filesystem functions</li>
+<ul>
+ <li>scandir() now accepts SCANDIR_SORT_NONE as a possible sorting_order value.
+ <?php bugl(53407); ?>.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved fileinfo extension</li>
+<ul>
+ <li>Fixed possible memory leak in finfo_open().</li>
+ <li>Fixed memory leak when calling the Finfo constructor twice.</li>
+ <li><?php bugfix(60094); ?> (C++ comment fails in c89).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved HASH extension</li>
+<ul>
+ <li>Added Jenkins's one-at-a-time hash support.</li>
+ <li>Added FNV-1 hash support.</li>
+ <li>Made Adler32 algorithm faster. <?php bugl(53213); ?>.</li>
+ <li>Removed Salsa10/Salsa20, which are actually stream ciphers.</li>
+ <li><?php bugfix(60221); ?> (Tiger hash output byte order).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved intl extension</li>
+<ul>
+ <li>Added Spoofchecker class, allows checking for visibly confusable characters and
+ other security issues.</li>
+ <li>Added Transliterator class, allowing transliteration of strings. </li>
+ <li>Added support for UTS #46.</li>
+ <li>Fixed memory leak in several Intl locale functions.</li>
+ <li>Fixed build on Fedora 15 / Ubuntu 11.</li>
+ <li><?php bugfix(55562); ?> (grapheme_substr() returns false on big
length).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved JSON extension</li>
+<ul>
+ <li>Added new json_encode() option JSON_UNESCAPED_UNICODE. <?php bugl(53946);
?>.</li>
+ <li>Added JsonSerializable interface.</li>
+ <li>Added JSON_BIGINT_AS_STRING, extended json_decode() sig with $options.</li>
+ <li>Added support for JSON_NUMERIC_CHECK option in json_encode() that converts
+ numeric strings to integers.</li>
+ <li>Added new json_encode() option JSON_UNESCAPED_SLASHES. <?php bugl(49366);
?>.</li>
+ <li>Added new json_encode() option JSON_PRETTY_PRINT. <?php bugl(44331);
?>.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved LDAP extension</li>
+<ul>
+ <li>Added paged results support. <?php bugl(42060); ?>.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved mbstring extension</li>
+<ul>
+ <li>Added Shift_JIS/UTF-8 Emoji (pictograms) support.</li>
+ <li>Added JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004)
+ support.</li>
+ <li>Ill-formed UTF-8 check for security enhancements.</li>
+ <li>Added MacJapanese (Shift_JIS) and gb18030 encoding support.</li>
+ <li>Added encode/decode in hex format to mb_[en|de]code_numericentity().</li>
+ <li>Added user JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004)
+ support.</li>
+ <li>Added the user defined area for CP936 and CP950.</li>
+ <li>Fixed possible crash in mb_ereg_search_init() using empty pattern.</li>
+ <li><?php bugfix(60306); ?> (Characters lost while converting from cp936 to
utf8).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved MS SQL extension</li>
+<ul>
+ <li><?php bugfix(60267); ?> (Compile failure with freetds 0.91).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved MySQL extensions</li>
+<ul>
+ <li>MySQL: Deprecated mysql_list_dbs(). <?php bugl(50667); ?>.</li>
+ <li>mysqlnd: Added named pipes support. <?php bugl(48082); ?>.</li>
+ <li>MySQLi: Added iterator support in MySQLi. mysqli_result implements
+ Traversable.</li>
+ <li>PDO_mysql: Removed support for linking with MySQL client libraries older
+ than 4.1.</li>
+ <li>ext/mysql, mysqli and pdo_mysql now use mysqlnd by default.</li>
+ <li><?php bugfix(55473); ?> (mysql_pconnect leaks file descriptors on reconnect).
</li>
+ <li><?php bugfix(55653); ?> (PS crash with libmysql when binding same variable as
+ param and out).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved OpenSSL extension</li>
+<ul>
+ <li>Added AES support. <?php bugl(48632); ?>.</li>
+ <li>Added a "no_ticket" SSL context option to disable the SessionTicket TLS
+ extension. <?php bugl(53447); ?>.</li>
+ <li>Added no padding option to openssl_encrypt()/openssl_decrypt().</li>
+ <li>Use php's implementation for Windows Crypto API in
+ openssl_random_pseudo_bytes.</li>
+ <li>On error in openssl_random_pseudo_bytes() made sure we set strong result
+ to false.</li>
+ <li>Fixed segfault with older versions of OpenSSL.</li>
+ <li>Fixed possible attack in SSL sockets with SSL 3.0 / TLS 1.0.
+ CVE-2011-3389.</li>
+ <li><?php bugfix(61124); ?> (Crash when decoding an invalid base64 encoded
string).</li>
+ <li><?php bugfix(60279); ?> (Fixed NULL pointer dereference in
+ stream_socket_enable_crypto, case when ssl_handle of session_stream is not
+ initialized.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Oracle Database extension (OCI8)</li>
+<ul>
+ <li>Increased maximum Oracle error message buffer length for new 11.2.0.3 size.</li>
+ <li>Improved internal initalization failure error messages.</li>
+ <li><?php bugfix(59985); ?> (show normal warning text for OCI_NO_DATA).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved PDO</li>
+<ul>
+ <li>Fixed PDO objects binary incompatibility.</li>
+</ul>
+</ul>
+<ul>
+<li>PDO DBlib driver</li>
+<ul>
+ <li>Added nextRowset support.</li>
+ <li><?php bugfix(60033); ?> (Incorrectly merged PDO dblib patches break
+ uniqueidentifier column type).</li>
+ <li><?php bugfix(50755); ?> (PDO DBLIB Fails with OOM).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Pdo Firebird driver</li>
+<ul>
+ <li><?php bugfix(53280); ?> (segfaults if query column count less than param count).
</li>
+ <li><?php bugfix(48877); ?> ("bindValue" and "bindParam" do not
work for PDO Firebird).</li>
+ <li><?php bugfix(47415); ?> (segfaults when passing lowercased column name to
+ bindColumn).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved PostgreSQL extension</li>
+<ul>
+ <li>Added support for "extra" parameter for PGNotify().</li>
+</ul>
+</ul>
+<ul>
+<li>Improved preg extension</li>
+<ul>
+ <li>Changed third parameter of preg_match_all() to optional. <?php bugl(53238);
?>.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved readline extension</li>
+<ul>
+ <li><?php bugfix(54450); ?> (Enable callback support when built against
libedit).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Reflection extension</li>
+<ul>
+ <li>Added ReflectionClass::newInstanceWithoutConstructor() to create a new
+ instance of a class without invoking its constructor. <?php bugl(55490); ?>.</li>
+ <li>Added ReflectionExtension::isTemporary() and
+ ReflectionExtension::isPersistent() methods.</li>
+ <li>Added ReflectionZendExtension class.</li>
+ <li>Added ReflectionClass::isCloneable().</li>
+ <li><?php bugfix(60367); ?> (Reflection and Late Static Binding).</li>
+ <li><?php bugfix(60357); ?> (__toString() method triggers E_NOTICE "Array to
string
+ conversion").</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Session extension</li>
+<ul>
+ <li>Expose session status via new function, session_status. <?php bugl(52982);
?>.</li>
+ <li>Added support for object-oriented session handlers.</li>
+ <li>Added support for storing upload progress feedback in session data.</li>
+ <li>Changed session.entropy_file to default to /dev/urandom or /dev/arandom if
+ either is present at compile time.</li>
+ <li><?php bugfix(60860); ?> (session.save_handler=user without defined function core
+ dumps).</li>
+ <li>Implement <?php bugl(60551); ?> (session_set_save_handler should support a
core's
+ session handler interface).</li>
+ <li><?php bugfix(60640); ?> (invalid return values).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved SNMP extension</li>
+<ul>
+ <li>Added OO API. <?php bugl(53594); ?> (php-snmp rewrite).</li>
+ <li>Sanitized return values of existing functions. Now it returns FALSE on
+ failure.</li>
+ <li>Allow ~infinite OIDs in GET/GETNEXT/SET queries. Autochunk them to max_oids
+ upon request.</li>
+ <li>Introducing unit tests for extension with ~full coverage.
+ IPv6 support. (<?php bugl(42918); ?>)</li>
+ <li>Way of representing OID value can now be changed when SNMP_VALUE_OBJECT
+ is used for value output mode. Use or'ed SNMP_VALUE_LIBRARY(default if
+ not specified) or SNMP_VALUE_PLAIN. (<?php bugl(54502); ?>)</li>
+ <li><?php bugfix(60749); ?> (SNMP module should not strip non-standard SNMP port
+ from hostname).</li>
+ <li><?php bugfix(60585); ?> (php build fails with USE flag snmp when IPv6 support
+ is disabled).</li>
+ <li><?php bugfix(53862); ?> (snmp_set_oid_output_format does not allow returning to
default).</li>
+ <li><?php bugfix(51336); ?> (snmprealwalk (snmp v1) does not handle end of OID tree
correctly).</li>
+ <li><?php bugfix(46065); ?> (snmp_set_quick_print() persists between
requests).</li>
+ <li><?php bugfix(45893); ?> (Snmp buffer limited to 2048 char).</li>
+ <li><?php bugfix(44193); ?> (snmp v3 noAuthNoPriv doesn't work).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved SOAP extension</li>
+<ul>
+ <li>Added new SoapClient option "keep_alive". <?php bugl(60329);
?>.</li>
+ <li>Fixed basic HTTP authentication for WSDL sub requests.</li>
+</ul>
+</ul>
+<ul>
+<li>Improved SPL extension</li>
+<ul>
+ <li>Added RegexIterator::getRegex() method.</li>
+ <li>Added SplObjectStorage::getHash() hook.</li>
+ <li>Added CallbackFilterIterator and RecursiveCallbackFilterIterator.</li>
+ <li>Added missing class_uses(..) as pointed out by #55266.</li>
+ <li>Immediately reject wrong usages of directories under Spl(Temp)FileObject
+ and friends.</li>
+ <li>FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use
+ the default stream context.</li>
+ <li><?php bugfix(60201); ?> (SplFileObject::setCsvControl does not expose third
+ argument via Reflection).</li>
+ <li><?php bugfix(55807); ?> (Wrong value for splFileObject::SKIP_EMPTY).</li>
+ <li><?php bugfix(55287); ?> (spl_classes() not includes CallbackFilter
classes)</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Sysvshm extension</li>
+<ul>
+ <li><?php bugfix(55750); ?> (memory copy issue in sysvshm extension).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Tidy extension</li>
+<ul>
+ <li><?php bugfix(54682); ?> (Tidy::diagnose() NULL pointer dereference).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved Tokenizer extension</li>
+<ul>
+ <li><?php bugfix(54089); ?> (token_get_all with regards to __halt_compiler is
+ not binary safe).</li>
+</ul>
+</ul>
+<ul>
+<li>Improved XSL extension</li>
+<ul>
+ <li>Added XsltProcessor::setSecurityPrefs($options) and getSecurityPrefs() to
+ define forbidden operations within XSLT stylesheets, default is not to
+ enable write operations from XSLT. <?php bugfix(54446); ?>.</li>
+ <li>XSL doesn't stop transformation anymore, if a PHP function can't be
called</li>
+</ul>
+</ul>
+<ul>
+<li>Improved ZLIB extension</li>
+<ul>
+ <li>Re-implemented non-file related functionality.</li>
+ <li><?php bugfix(55544); ?> (ob_gzhandler always conflicts with
zlib.output_compression).</li>
+</ul>
+</ul>
+
+</hr>
+<!-- }}} -->
+
<a name="5.3.10"></a><!-- {{{ 5.3.10 -->
<h3>Version 5.3.10</h3>
<b>02-Feb-2012</b>
Thank you for your contribution.