Commit Graph

126802 Commits

Author SHA1 Message Date
Nikita Popov
d5b97362bb Always initialize iterator_funcs_ptr
The behavior here depending on the order in which the class entry
was initialized: If get_iterator was set first and Iterator or
IteratorAggregate implemented later, we would not initialize
iterator_funcs_ptr. If Iterator/IteratorAggregate were implemented
first, we would initialize it. After the migration to stub-based
class declarations, we always follow the latter order, but 3rd-party
extension may not. To ensure that behavior is order-independent,
always initialize iterator_funcs_ptr, as we have code (at least the
MultipleIterator implementation) that depends on it being
initialized for iterators with custom get_iterator as well.
2021-11-04 10:46:43 +01:00
Nikita Popov
8a7f9a5c38 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fixed bug #81587
2021-11-04 10:38:59 +01:00
Nikita Popov
d7ad32649a Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed bug #81587
2021-11-04 10:38:08 +01:00
Nikita Popov
4b9fbc6627 Fixed bug #81587
iterator_funcs_ptr may be null for Iterators with custom
get_iterator. Ideally MultipleIterator would make use of get_iterator,
but this would require a large implementation change.
2021-11-04 10:34:52 +01:00
David CARLIER
1de405907d
fpm allow process tracing/core dump on solaris systems. (#7548) 2021-11-03 22:26:43 +00:00
George Peter Banyard
3f9331a83a
Enable more DBA drivers in CI (#7622)
This now tests for the following drivers:
 - flatfile
 - inifile
 - in-built cdb
 - lmdb
 - TokyoCabinet
 - qdbm
2021-11-03 20:49:37 +00:00
Dmitry Stogov
aa9600cfc6 Merge branch 'PHP-8.1'
* PHP-8.1:
  Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:46:02 +03:00
George Peter Banyard
f6616846e1
Revert "Refactor php_com_cache_typelib()"
As php_com_typelibraries is a persistent HashTable we need to insert
a persistent string, therefore initialising a new one.

This reverts commit 0497b2bf4b.
2021-11-03 20:44:12 +00:00
Dmitry Stogov
5e39ed08e1 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:37:29 +03:00
Dmitry Stogov
34d22acc7e Tracing JIT: Fixed incorrect guard elimination 2021-11-03 23:37:00 +03:00
DmitryMaksimov
2b32cafd88
Use neutral language instead of default on Windows
Most notably, this affects some Windows specific error messages, which
are no longer in the default language of the system, to better match
error messages provided by PHP which are not localized anyway.

This also affects the com_dotnet extension, where it could fix some
DCOM related issues.  Furthermore, the constant `LOCALE_NEUTRAL` is
added, which can be used for `variant_cmp()`.

Closes GH-7613.
2021-11-03 19:39:20 +01:00
George Peter Banyard
0497b2bf4b
Refactor php_com_cache_typelib() 2021-11-03 17:58:18 +00:00
Dmitry Stogov
e465218e35 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:45:42 +03:00
Dmitry Stogov
22a171a0b5 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:45:30 +03:00
Dmitry Stogov
66d93c63ff Fixed type inference for FETCH_DIM_W without use 2021-11-03 19:44:38 +03:00
Derick Rethans
2b5007dcd2 Merge branch 'PHP-8.1' 2021-11-03 16:13:59 +00:00
Derick Rethans
dfb039203b Merge branch 'PHP-8.0' into PHP-8.1 2021-11-03 16:13:49 +00:00
Derick Rethans
5751536dec Merge branch 'PHP-7.4' into PHP-8.0 2021-11-03 16:13:35 +00:00
Derick Rethans
905a1d5011 Merge branch 'PHP-7.3' into PHP-7.4 2021-11-03 16:13:22 +00:00
Derick Rethans
88f99c9c1d Revert "Updated to version 2021.5 (2021e)"
This reverts commit a93ff1df20.
2021-11-03 16:13:05 +00:00
Derick Rethans
64bd602b6a Updated to version 2021.5 (2021e) 2021-11-03 15:49:27 +00:00
Derick Rethans
456bfc7e9e Updated to version 2021.5 (2021e) 2021-11-03 15:49:27 +00:00
Derick Rethans
177225865a Empty merge 2021-11-03 15:49:27 +00:00
Derick Rethans
4d4ec676c4 Empty merge 2021-11-03 15:49:26 +00:00
Derick Rethans
4ec9d07cc3 Updated to version 2021.5 (2021e) 2021-11-03 15:49:25 +00:00
Derick Rethans
b085f79cce Empty merge 2021-11-03 15:49:25 +00:00
Derick Rethans
7c9c722b53 Updated to version 2021.5 (2021e) 2021-11-03 15:49:24 +00:00
Derick Rethans
5715a5e570 Empty merge 2021-11-03 15:49:24 +00:00
Derick Rethans
a93ff1df20 Updated to version 2021.5 (2021e) 2021-11-03 15:49:23 +00:00
George Peter Banyard
8ca7220bc9
Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix Bug #81588 TokyoCabinet driver leaks memory
2021-11-03 15:02:12 +00:00
George Peter Banyard
5a3774cac5
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix Bug #81588 TokyoCabinet driver leaks memory
2021-11-03 15:01:56 +00:00
George Peter Banyard
84524afb9e
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix Bug #81588 TokyoCabinet driver leaks memory
2021-11-03 15:01:41 +00:00
George Peter Banyard
9f77373b4e
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix Bug #81588 TokyoCabinet driver leaks memory
2021-11-03 14:58:11 +00:00
George Peter Banyard
96dd310c54
Fix Bug #81588 TokyoCabinet driver leaks memory 2021-11-03 14:57:47 +00:00
Felipe Pena
e089a50f53 Add support for PCRE n modifier
Add support for /n (NO_AUTO_CAPTURE) modifier, which makes simple
`(xyz)` groups non-capturing.

Closes GH-7583.
2021-11-03 15:17:54 +01:00
Dmitry Stogov
90b7bde615 Use more compact representation for packed arrays.
- for packed arrays we store just an array of zvals without keys.
- the elements of packed array are accessible throuf as ht->arPacked[i]
  instead of ht->arData[i]
- in addition to general ZEND_HASH_FOREACH_* macros, we introduced similar
  familied for packed (ZEND_HASH_PACKED_FORECH_*) and real hashes
  (ZEND_HASH_MAP_FOREACH_*)
- introduced an additional family of macros to access elements of array
  (packed or real hashes) ZEND_ARRAY_ELEMET_SIZE, ZEND_ARRAY_ELEMET_EX,
  ZEND_ARRAY_ELEMET, ZEND_ARRAY_NEXT_ELEMENT, ZEND_ARRAY_PREV_ELEMENT
- zend_hash_minmax() prototype was changed to compare only values

Because of smaller data set, this patch may show performance improvement
on some apps and benchmarks that use packed arrays. (~1% on PHP-Parser)

TODO:
    - sapi/phpdbg needs special support for packed arrays (WATCH_ON_BUCKET).
    - zend_hash_sort_ex() may require converting packed arrays to hash.
2021-11-03 15:18:26 +03:00
Nikita Popov
0eb603e3bb Merge branch 'PHP-8.1'
* PHP-8.1:
  Update PHP-Parser version in gen_stub
2021-11-03 12:41:38 +01:00
Nikita Popov
dd0ec7a554 Update PHP-Parser version in gen_stub
This should address the octal issue encountered in #7610.
2021-11-03 12:41:26 +01:00
Nikita Popov
59d43a4f59 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix WeakReference uniquing is TAG_HT is used
2021-11-03 10:06:56 +01:00
Nikita Popov
66c8bf98c3 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix WeakReference uniquing is TAG_HT is used
2021-11-03 10:06:44 +01:00
Nikita Popov
546e55864d Fix WeakReference uniquing is TAG_HT is used 2021-11-03 10:06:22 +01:00
Derick Rethans
4239ec521e Merge branch 'PHP-8.1' 2021-11-02 16:40:10 +00:00
Derick Rethans
177f3d2648 Merge branch 'PHP-8.0' into PHP-8.1 2021-11-02 16:40:04 +00:00
Derick Rethans
c5da497210 Merge branch 'PHP-7.4' into PHP-8.0 2021-11-02 16:39:55 +00:00
Derick Rethans
05b212bb3d Prepare for 7.4.27 2021-11-02 16:39:44 +00:00
Sara Golemon
b5d23b6c1b Merge branch 'PHP-8.1'
* PHP-8.1:
  Prep for 8.0.14
2021-11-02 15:57:45 +00:00
Sara Golemon
e2ec92c265 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Prep for 8.0.14
2021-11-02 15:57:17 +00:00
Sara Golemon
2d4bfcfd3b
Prep for 8.0.14 2021-11-02 15:55:12 +00:00
Nikita Popov
713e22ff8b Merge branch 'PHP-8.1'
* PHP-8.1:
  CLDR 40a0 uses a lowercase "temp" instead of "Temp" in ICU >= 70.1
  Accommodate changes to canonicalized forms in ICU >= 70.1
  Change UBool to bool for equality operators in ICU >= 70.1
2021-11-02 16:18:00 +01:00
Nikita Popov
2654c3449f Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  CLDR 40a0 uses a lowercase "temp" instead of "Temp" in ICU >= 70.1
  Accommodate changes to canonicalized forms in ICU >= 70.1
  Change UBool to bool for equality operators in ICU >= 70.1
2021-11-02 16:17:16 +01:00