Skip to content

Commit f4ce364

Browse files
committed
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
This is just an intial merge. It does not yet make generators and finally work together. Conflicts: Zend/zend_language_scanner.c Zend/zend_language_scanner_defs.h Zend/zend_vm_def.h Zend/zend_vm_execute.h Zend/zend_vm_execute.skl Zend/zend_vm_opcodes.h
2 parents 268740d + 80d5ae3 commit f4ce364

787 files changed

Lines changed: 20644 additions & 29388 deletions

File tree

Some content is hidden

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

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ ext/dba/libflatfile/flatfile.c ident
1515
ext/dba/libcdb/cdb_make.c ident
1616
ext/dba/libcdb/cdb.c ident
1717
ext/filter/filter.c ident
18+
ext/zip/php_zip.c ident
1819
README.input_filter ident
1920
run-tests.php ident
2021
sapi/nsapi/nsapi.c ident

.travis.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
language: php
2+
3+
php:
4+
# We only specify one version so we only get one worker
5+
- 5.4
6+
7+
notifications:
8+
email: false
9+
10+
env:
11+
- REPORT_EXIT_STATUS=1 TEST_PHP_EXECUTABLE=./sapi/cli/php
12+
13+
before_script:
14+
# Compile PHP
15+
- ./travis/compile.sh
16+
# Setup Extensions
17+
- . ./travis/ext/mysql/setup.sh
18+
- . ./travis/ext/mysqli/setup.sh
19+
- . ./travis/ext/pdo_mysql/setup.sh
20+
- . ./travis/ext/pgsql/setup.sh
21+
- . ./travis/ext/pdo_pgsql/setup.sh
22+
23+
# Run PHPs run-tests.php
24+
script: ./sapi/cli/php run-tests.php -g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP"

NEWS

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,22 @@ PHP NEWS
33
?? ??? 201?, PHP 5.5.0
44

55
- General improvements:
6+
. Implemented 'finally' keyword (https://wiki.php.net/rfc/finally). (Laruence)
67
. Drop Windows XP and 2003 support. (Pierre)
78
. World domination
89
. Improve set_exception_handler while doing reset.(Laruence)
910
. Support constant array/string dereferencing. (Laruence)
11+
. Add support for using empty() on the result of function calls and
12+
other expressions (https://wiki.php.net/rfc/empty_isset_exprs).
13+
(Nikita Popov)
14+
15+
- Calendar:
16+
. Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar)
17+
(Stas, Eitan Mosenkis).
1018

1119
- Core:
20+
. Added boolval(). (Jille Timmermans).
21+
. Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas)
1222
. Fixed bug #61681 (Malformed grammar). (Nikita Popov, Etienne, Laruence).
1323
. Fixed bug #61038 (unpack("a5", "str\0\0") does not work as expected).
1424
(srgoogleguy, Gustavo)
@@ -35,9 +45,16 @@ PHP NEWS
3545
CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL.
3646
(Pierrick)
3747
. Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant
38-
still exists for backward compatibility but is doing nothing). (Pierrick)
48+
still exists for backward compatibility but is doing nothing). (Pierrick)
3949
. Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support). (Pierrick)
4050

51+
- Datetime
52+
. Fixed bug #61642 (modify("+5 weekdays") returns Sunday).
53+
(Dmitri Iouchtchenko)
54+
55+
- Hash
56+
. Added support for PBKDF2 via hash_pbkdf2(). (Anthony Ferrara)
57+
4158
- MySQLi
4259
. Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql.
4360
Known for stability problems. (Andrey)
@@ -49,4 +66,7 @@ PHP NEWS
4966
- pgsql
5067
. Added pg_escape_literal() and pg_escape_identifier() (Yasuo)
5168

69+
- Zip:
70+
. Upgraded libzip to 0.10.1 (Anatoliy)
71+
5272
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
The PHP Interpreter
2+
===================
3+
4+
This is the github mirror of the official PHP repository located at
5+
http://git.php.net.
6+
7+
[![Build Status](https://secure.travis-ci.org/php/php-src.png?branch=master)](http://travis-ci.org/php/php-src)
8+
9+
Pull Requests
10+
=============
11+
PHP accepts pull requests via github. Discussions are done on github, but
12+
depending on the topic can also be relayed to the official PHP developer
13+
mailinglist internals@lists.php.net.
14+
15+
New features require an RFC and must be accepted by the developers.
16+
See https://wiki.php.net/rfc and https://wiki.php.net/rfc/voting for more
17+
information on the process.
18+
19+
Bug fixes **do not** require an RFC, but require a bugtracker ticket. Always
20+
open a ticket at http://bugs.php.net and reference the bug id using #NNNNNN.
21+
22+
Fix #55371: get_magic_quotes_gpc() throws deprecation warning
23+
24+
After removing magic quotes, the get_magic_quotes_gpc function caused
25+
a deprecate warning. get_magic_quotes_gpc can be used to detected
26+
the magic_quotes behavior and therefore should not raise a warning at any
27+
time. The patch removes this warning
28+
29+
We do not merge pull requests directly on github. All PRs will be
30+
pulled and pushed through http://git.php.net.

UPGRADING

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,23 @@ PHP X.Y UPGRADE NOTES
2121
========================================
2222

2323
- Drop Windows XP and 2003 support. (Pierre)
24+
- All internal case insensitivity handling for class, function and constant
25+
names is done according to ASCII rules, current locale settings are ignored.
26+
- php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid() and
27+
zend_logo_guid() have been removed
28+
- Removal of Logo GUIDs
2429

2530
========================================
2631
2. New Features
2732
========================================
2833

34+
- Support finally keyword. (Laruence)
35+
(wiki.php.net/rfc/finally)
2936
- Support constant array/string dereferencing. (Laruence)
3037
(https://wiki.php.net/rfc/constdereference)
38+
- Add support for using empty() on the result of function calls and
39+
other expressions. Thus it is now possible to write empty(getArray()),
40+
for example. (https://wiki.php.net/rfc/empty_isset_exprs)
3141

3242
========================================
3343
2. Changes in SAPI modules
@@ -51,13 +61,63 @@ PHP X.Y UPGRADE NOTES
5161
- Implemented format character "Z": NUL-padded string
5262
- "a" now does not remove trailing NUL characters on unpack() anymore
5363
- "A" will now strip all trailing ASCII whitespace on unpack() (it used to
54-
remove only trailing spaces.
64+
remove only trailing spaces).
65+
- MessageFormatter::format() and related functions now accepted named arguments
66+
and mixed numeric/named arguments in ICU 4.8+.
67+
- MessageFormatter::format() and related functions now don't error out when
68+
an insufficient argument count is provided. Instead, the placeholders will
69+
remain unsubstituted.
70+
- MessageFormatter::parse() and MessageFormat::format() (and their static
71+
equivalents) now don't throw away better than second precision in the
72+
arguments.
73+
- IntlDateFormatter::__construct and datefmt_create() now accept for the
74+
$timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone
75+
objects and NULL. It used to accept only time zone identifiers and NULL.
76+
Invalid time zone identifiers are no longer accepted. Emptry strings are
77+
no longer accepted.
78+
- The default time zone used in IntlDateFormatter::__construct and
79+
datefmt_create() (when the corresponding argument is not passed or NULL is
80+
passed) is now the one given by date_default_timezone_get(), not the
81+
default ICU time zone.
82+
- The time zone passed to the IntlDateFormatter is ignored if it is NULL and if
83+
the calendar passed is an IntlCalendar object -- in this case, the
84+
IntlCalendar's time zone will be used instead. Otherwise, the time zone
85+
specified in the $timezone argument is used instead. This does not affect
86+
old code, as IntlCalendar was introduced in this version.
87+
- IntlDateFormatter::__construct and datefmt_create() now accept for the
88+
$calendar argument also IntlCalendar objects.
89+
- IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false
90+
if the IntlDateFormatter was set up with an IntlCalendar instead of the
91+
constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not
92+
exist before this version.
93+
- IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept
94+
an IntlCalendar object, in which case its time zone is taken. Passing a
95+
constant is still allowed, and still keeps the time zone.
96+
- IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are
97+
deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone()
98+
instead.
99+
- IntlDateFormatter::format() and datefmt_format() now also accept an
100+
IntlCalendar object for formatting.
101+
- Deprecated mcrypt_ecb() made to produce E_DEPRECATED.
102+
- php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid() and
103+
zend_logo_guid() have been removed
55104

56105
========================================
57106
5. New Functions
58107
========================================
59108

109+
- Core:
110+
- boolval()
111+
112+
- Hash:
113+
- hash_pbkdf2()
114+
60115
- Intl:
116+
- datefmt_format_object()
117+
- datefmt_get_calendar_object()
118+
- datefmt_get_timezone()
119+
- datefmt_set_timezone()
120+
- datefmt_get_calendar_object()
61121
- intlcal_create_instance()
62122
- intlcal_get_keyword_values_for_locale()
63123
- intlcal_get_now()
@@ -98,6 +158,8 @@ PHP X.Y UPGRADE NOTES
98158
- intlcal_get_skipped_wall_time_option()
99159
- intlcal_set_repeated_wall_time_option()
100160
- intlcal_set_skipped_wall_time_option()
161+
- intlcal_from_date_time()
162+
- intlcal_to_date_time()
101163
- intlcal_get_error_code()
102164
- intlcal_get_error_message()
103165
- intlgregcal_create_instance()
@@ -122,9 +184,16 @@ PHP X.Y UPGRADE NOTES
122184
- intltz_has_same_rules()
123185
- intltz_get_display_name()
124186
- intltz_get_dst_savings()
187+
- intltz_from_date_time_zone()
188+
- intltz_to_date_time_zone()
125189
- intltz_get_error_code()
126190
- intltz_get_error_message()
127191

192+
- IntlDateFormatter::formatObject()
193+
- IntlDateFormatter::getCalendarObject()
194+
- IntlDateFormatter::getTimeZone()
195+
- IntlDateFormatter::setTimeZone()
196+
128197
- SPL:
129198
- SplFixedArray::__wakeup()
130199

@@ -136,6 +205,9 @@ PHP X.Y UPGRADE NOTES
136205
- IntlCalendar
137206
- IntlGregorianCalendar
138207
- IntlTimeZone
208+
- IntlBreakIterator
209+
- IntlRuleBasedBreakIterator
210+
- IntlCodePointBreakIterator
139211

140212
========================================
141213
7. Removed Extensions
@@ -146,6 +218,10 @@ PHP X.Y UPGRADE NOTES
146218
8. Other Changes to Extensions
147219
========================================
148220

221+
- Intl:
222+
- This extension now requires ICU 4.0+.
223+
- Added intl.use_exceptions INI directive, which controls what happens when
224+
global errors are set together with intl.error_level.
149225

150226
========================================
151227
9. New Global Constants
@@ -160,3 +236,5 @@ PHP X.Y UPGRADE NOTES
160236
========================================
161237
11. Other Changes
162238
========================================
239+
240+
- Logo GUIDs will no longer work

UPGRADING.INTERNALS

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ UPGRADE NOTES - PHP X.Y
44

55
1. Internal API changes
66
a. Streams pooling API
7+
b. Lowercasing and locales
78

89
2. Build system changes
910
a. Unix build system changes
@@ -26,6 +27,32 @@ PHPAPI int php_stream_context_set_link(php_stream_context *context,
2627
PHPAPI int php_stream_context_del_link(php_stream_context *context,
2728
php_stream *stream);
2829

30+
b. Lowercasing and locales
31+
32+
The lowercasing functions in zend_operators.c were split into those that do
33+
lowercasing according to locale rules and those that do ASCII lowercasing.
34+
ASCII:
35+
36+
zend_str_tolower_copy
37+
zend_str_tolower_dup
38+
zend_str_tolower
39+
zend_binary_strcasecmp
40+
zend_binary_strncasecmp
41+
42+
Locale-based:
43+
zend_binary_strncasecmp_l
44+
zend_binary_strcasecmp_l
45+
zend_binary_zval_strcasecmp
46+
zend_binary_zval_strncasecmp
47+
string_compare_function_ex
48+
string_case_compare_function
49+
50+
Internal engine lowercasing will be using ASCII-only rules. User-facing functions,
51+
such as strcasecmp, will be using locale rules.
52+
53+
Two new functions - zend_binary_strncasecmp_l and zend_binary_strcasecmp_l - added as
54+
locale-based counterparts to zend_binary_strcasecmp and zend_binary_strncasecmp.
55+
2956
========================
3057
2. Build system changes
3158
========================
@@ -34,5 +61,5 @@ PHPAPI int php_stream_context_del_link(php_stream_context *context,
3461
-
3562

3663
b. Windows build system changes
37-
-
64+
- Drop Windows XP and 2003 support.
3865

0 commit comments

Comments
 (0)