Skip to content

Commit ad675f6

Browse files
committed
Merge branch 'master' into str_size_and_int64
Conflicts: main/php_version.h
2 parents 7c5af38 + 43cb6ba commit ad675f6

File tree

155 files changed

+8073
-3548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+8073
-3548
lines changed

NEWS

+1-69
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,5 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3-
?? ??? 20??, PHP 5.6.0
4-
5-
- Core:
6-
. Improved IS_VAR operands fetching. (Laruence, Dmitry)
7-
. Implemented internal operator overloading
8-
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)
9-
. Made calls from incompatible context issue an E_DEPRECATED warning instead
10-
of E_STRICT (phase 1 of RFC: https://wiki.php.net/rfc/incompat_ctx).
11-
(Gustavo)
12-
. Uploads equal or greater than 2GB in size are now accepted.
13-
(Ralf Lang, Mike)
14-
. Reduced POST data memory usage by 200-300%. Removed INI setting
15-
always_populate_raw_post_data and the $HTTP_RAW_POST_DATA global
16-
variable. (Mike)
17-
. Implemented dedicated syntax for variadic functions
18-
(RFC: https://wiki.php.net/rfc/variadics). (Nikita)
19-
20-
- cURL:
21-
. Implemented FR #65646 (re-enable CURLOPT_FOLLOWLOCATION with open_basedir
22-
or safe_mode). (Adam)
23-
24-
- GMP:
25-
. Moved GMP to use object as the underlying structure and implemented various
26-
improvements based on this.
27-
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)
28-
29-
- Hash:
30-
. Added gost-crypto (CryptoPro S-box) GOST hash algo. (Manuel Mausz)
31-
32-
- mysqlnd:
33-
. Disabled flag for SP OUT variables for 5.5+ servers as they are not natively
34-
supported by the overlying APIs. (Andrey)
35-
36-
- OPcache:
37-
. Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL.
38-
(Laruence, Dmitry)
39-
. Added an optimization pass to merged identical constants (and related
40-
cache_slots) in op_array->literals table. (Laruence, Dmitry)
41-
. Added script level constant replacement optimization pass. (Dmitry)
42-
43-
- Openssl:
44-
. Added crypto_method option for the ssl stream context. (Martin Jansen)
45-
. Added certificate fingerprint support. (Tjerk Meesters)
46-
. Added explicit TLSv1.1 and TLSv1.2 stream transports. (Daniel Lowrey)
47-
. Fixed bug #65729 (CN_match gives false positive). (Tjerk Meesters)
48-
49-
- PDO_pgsql:
50-
. Fixed Bug #42614 (PDO_pgsql: add pg_get_notify support). (Matteo)
51-
. Fixed Bug #63657 (pgsqlCopyFromFile, pgsqlCopyToArray use Postgres < 7.3
52-
syntax). (Matteo)
53-
54-
- Session:
55-
. Fixed Bug #65315 (session.hash_function silently fallback to default md5)
56-
(Yasuo)
57-
. Implemented Request #54649 (Create session_serializer_name()). (Yasuo)
58-
. Implemented Request #17860 (Session write short circuit). (Yasuo)
59-
. Implemented Request #20421 (session_abort() and session_reset() function).
60-
(Yasuo)
61-
. Implemented Request #11100 (session_gc() function). (Yasuo)
62-
63-
- Standard:
64-
. Implemented FR #65634 (HTTP wrapper is very slow with protocol_version
65-
1.1). (Adam)
66-
. Implemented Change crypt() behavior w/o salt RFC. (Yasuo)
67-
https://wiki.php.net/rfc/crypt_function_salt
68-
69-
- XMLReader:
70-
. Fixed bug #55285 (XMLReader::getAttribute/No/Ns methods inconsistency).
71-
(Mike)
3+
?? ??? 20??, PHP 5.7.0
724

735
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>

TSRM/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## process this file with automake to produce Makefile.am
22
AUTOMAKE_OPTIONS=foreign
33
noinst_LTLIBRARIES=libtsrm.la
4-
libtsrm_la_SOURCES = TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c
4+
libtsrm_la_SOURCES = TSRM.c tsrm_strtok_r.c
55

66
depend:

TSRM/TSRM.dsp

-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

TSRM/config.w32

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// vim:ft=javascript
22
// $Id$
33

4-
ADD_SOURCES("TSRM", "TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c tsrm_win32.c");
4+
ADD_SOURCES("TSRM", "TSRM.c tsrm_strtok_r.c tsrm_win32.c");
55

TSRM/tsrm_win32.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
#ifdef TSRM_WIN32
3333
#include <Sddl.h>
3434
#include "tsrm_win32.h"
35-
#include "tsrm_virtual_cwd.h"
35+
#include "zend_virtual_cwd.h"
3636

3737
#ifdef ZTS
3838
static ts_rsrc_id win32_globals_id;

UPGRADING

-66
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,11 @@ PHP X.Y UPGRADE NOTES
2020
1. Backward Incompatible Changes
2121
========================================
2222

23-
- Core:
24-
Removed $HTTP_RAW_POST_DATA global variable. Restore backwards compatibility
25-
by:
26-
<?php
27-
global $HTTP_RAW_POST_DATA;
28-
if (!isset($HTTP_RAW_POST_DATA)) {
29-
$HTTP_RAW_POST_DATA = file_get_contents("php://input");
30-
}
31-
?>
3223

3324
========================================
3425
2. New Features
3526
========================================
3627

37-
- Added dedicated syntax for variadic functions.
38-
(https://wiki.php.net/rfc/variadics)
39-
40-
- The php://input stream is now re-usable and can be used concurrently with
41-
enable_post_data_reading=0.
42-
43-
- Added gost-crypto (CryptoPro S-box) hash algo.
44-
45-
- Added openssl certificate fingerprint support (inclusive stream context
46-
option).
47-
48-
- Added openssl crypto method stream context option.
4928

5029
========================================
5130
2. Changes in SAPI modules
@@ -56,35 +35,16 @@ PHP X.Y UPGRADE NOTES
5635
3. Deprecated Functionality
5736
========================================
5837

59-
- Incompatible context calls:
60-
Instance calls from an incompatible context are now deprecated and issue
61-
E_DEPRECATED instead of E_STRICT. See https://wiki.php.net/rfc/incompat_ctx
6238

6339
========================================
6440
4. Changed Functions
6541
========================================
6642

67-
- cURL:
68-
CURLOPT_SAFE_UPLOAD is now turned on by default and uploads with @file
69-
do not work unless it is explicitly set to false.
70-
71-
- Crypt:
72-
crypt() will now raise an E_NOTICE error if the salt parameter is omitted.
73-
See: https://wiki.php.net/rfc/crypt_function_salt
74-
75-
- XMLReader:
76-
XMLReader::getAttributeNs and XMLReader::getAttributeNo now return NULL if
77-
the attribute could not be found, just like XMLReader::getAttribute.
7843

7944
========================================
8045
5. New Functions
8146
========================================
8247

83-
- Openssl:
84-
Added string openssl_x509_fingerprint($x509, $type, $binary).
85-
86-
- LDAP:
87-
Added ldap_escape($value, $ignore = "", $flags = 0).
8848

8949
========================================
9050
6. New Classes and Interfaces
@@ -100,44 +60,18 @@ PHP X.Y UPGRADE NOTES
10060
8. Other Changes to Extensions
10161
========================================
10262

103-
- GMP:
104-
The GMP extension now uses objects as the underlying data structure, rather
105-
than resources. GMP instances now support dumping, serialization, cloning,
106-
casts to primitive types and have overloaded operators.
107-
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp)
108-
109-
- OCI8:
110-
- Added Implicit Result Set support for Oracle Database 12c with a
111-
new oci_get_implicit_resultset() function.
112-
- Using 'oci_execute($s, OCI_NO_AUTO_COMMIT)' for a SELECT no longer
113-
unnecessarily initiates an internal ROLLBACK during connection
114-
close.
115-
- Added DTrace probes enabled with PHP's generic --enable-dtrace
116-
- The oci_internal_debug() function is now a no-op.
117-
- The phpinfo() output format for OCI8 has changed.
11863

11964
========================================
12065
9. New Global Constants
12166
========================================
12267

123-
- LDAP:
124-
LDAP_ESCAPE_FILTER int(1)
125-
LDAP_ESCAPE_DN int(2)
12668

12769
========================================
12870
10. Changes to INI File Handling
12971
========================================
13072

131-
- Core:
132-
Removed always_populate_raw_post_data.
13373

13474
========================================
13575
11. Other Changes
13676
========================================
13777

138-
- File upload:
139-
Uploads equal or greater than 2GB in size are now accepted.
140-
141-
- HTTP stream wrapper:
142-
HTTP 1.1 requests now include a Connection: close header unless explicitly
143-
overridden by setting a Connection header via the header context option.

UPGRADING.INTERNALS

-99
Original file line numberDiff line numberDiff line change
@@ -17,108 +17,9 @@ UPGRADE NOTES - PHP X.Y
1717
1. Internal API changes
1818
========================
1919

20-
a. Addition of do_operation and compare object handlers
21-
22-
Two new object handlers have been added:
23-
24-
do_operation:
25-
typedef int (*zend_object_do_operation_t)(
26-
zend_uchar opcode, zval *result, zval *op1, zval *op2 TSRMLS_DC
27-
);
28-
29-
compare:
30-
typedef int (*zend_object_compare_zvals_t)(
31-
zval *result, zval *op1, zval *op2 TSRMLS_DC
32-
);
33-
34-
The first handler is used to overload arithmetic operations. The first
35-
argument specifies the opcode of the operator, result is the target zval,
36-
op1 the first operand and op2 the second operand. For unary operations
37-
op2 is NULL. If the handler returns FAILURE PHP falls back to the default
38-
behavior for the operation.
39-
40-
The second handler is used to perform comparison operations with
41-
non-objects. The value written into result must be an IS_LONG with value
42-
-1 (smaller), 0 (equal) or 1 (greater). The return value is a SUCCESS/FAILURE
43-
return code. The difference between this handler and compare_objects is
44-
that it will be triggered for comparisons with non-objects and objects of
45-
different types. It takes precedence over compare_objects.
46-
47-
Further docs in the RFC: https://wiki.php.net/rfc/operator_overloading_gmp
48-
49-
b. return_value_ptr now always available, RETVAL_ZVAL_FAST macros
50-
51-
The return_value_ptr argument to internal functions is now always set.
52-
Previously it was only available for functions returning by-reference.
53-
return_value_ptr can now be used to return zvals without copying them.
54-
For this purpose two new macros are provided:
55-
56-
RETVAL_ZVAL_FAST(zv); /* analog to RETVAL_ZVAL(zv, 1, 0) */
57-
RETURN_ZVAL_FAST(zv); /* analog to RETURN_ZVAL(zv, 1, 0) */
58-
59-
The macros behave similarly to the non-FAST variants with copy=1 and
60-
dtor=0, but will try to return the zval without making a copy by utilizing
61-
return_value_ptr.
62-
63-
c. POST data handling
64-
65-
The sapi_request_info's members post_data, post_data_len and raw_post_data as
66-
well as raw_post_data_len have been replaced with a temp PHP stream
67-
request_body.
68-
69-
The recommended way to access raw POST data is to open and use a php://input
70-
stream wrapper. It is safe to be used concurrently and more than once.
71-
72-
d. Arginfo changes
73-
74-
The pass_rest_by_reference argument of the ZEND_BEGIN_ARG_INFO and
75-
ZEND_BEGIN_ARG_INFO_EX() is no longer used. The value passed to it is ignored.
76-
77-
Instead a variadic argument is created using ZEND_ARG_VARIADIC_INFO():
78-
79-
ZEND_ARG_VARIADIC_INFO(0, name) /* pass rest by value */
80-
ZEND_ARG_VARIADIC_INFO(1, name) /* pass rest by reference */
81-
ZEND_ARG_VARIADIC_INFO(ZEND_SEND_PREFER_REF, name)
82-
/* pass rest by prefer-ref */
83-
84-
ZEND_ARG_VARIADIC_INFO() should only be used for the last argument.
85-
86-
The following changes were applied to the zend_arg_info struct:
87-
88-
typedef struct _zend_arg_info {
89-
const char *class_name;
90-
zend_uint class_name_len;
91-
zend_uchar type_hint;
92-
+ zend_uchar pass_by_reference;
93-
zend_bool allow_null;
94-
- zend_bool pass_by_reference;
95-
+ zend_bool is_variadic;
96-
} zend_arg_info;
97-
98-
The following changes were applied to the zend_internal_function_info struct:
99-
100-
typedef struct _zend_internal_function_info {
101-
zend_uint required_num_args;
102-
zend_uchar _type_hint;
103-
zend_bool return_reference;
104-
- zend_bool pass_rest_by_reference;
105-
+ zend_bool _allow_null;
106-
+ zend_bool _is_variadic;
107-
} zend_internal_function_info;
108-
109-
The CHECK_ARG_SEND_TYPE(), ARG_MUST_BE_SENT_BY_REF(),
110-
ARG_SHOULD_BE_SENT_BY_REF() and ARG_MAY_BE_SENT_BY_REF() macros now assume
111-
that the argument passed to them is a zend_function* and that it is non-NULL.
11220

11321
========================
11422
2. Build system changes
11523
========================
11624

117-
a. Unix build system changes
118-
- The bison version check is now a blacklist instead of a whitelist.
119-
- The bison binary can be specified through the YACC environment/configure
120-
variable. Previously `bison` was assumed to be in $PATH.
121-
122-
b. Windows build system changes
123-
-
12425

Zend/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ libZend_la_SOURCES=\
1818
zend_default_classes.c \
1919
zend_iterators.c zend_interfaces.c zend_exceptions.c \
2020
zend_strtod.c zend_closures.c zend_float.c zend_string.c zend_signal.c \
21-
zend_generators.c
21+
zend_generators.c zend_virtual_cwd.c
2222

2323
libZend_la_LDFLAGS =
2424
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@

Zend/Zend.dsp

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)