Commit Graph

584 Commits

Author SHA1 Message Date
Andreas Braun
f7d42f646b
Update gen_stub to avoid compile errors on duplicate function names
Closes GH-9406
2022-08-30 11:33:45 +02:00
Máté Kocsis
b4ec3e9bc0
Do not generate CONST_CS when registering constants (#9439) 2022-08-28 08:27:19 +02:00
Remi Collet
aa702c5459
add compat stuff for function attributes 2022-08-18 13:46:55 +02:00
Máté Kocsis
98b858e756
Fix GH-9183 Get rid of unnecessary PHPDoc param and return type checks (#9203) 2022-07-30 15:37:53 +02:00
Máté Kocsis
b56492be9c
Do not add inherited interface methods to the class synopsis page
These are not displayed currently in the manual so gen_stub.php should be adapted to this behavior.
2022-07-28 15:14:00 +02:00
Andreas Braun
3c016467c7
Escape \U and \u in generated stubs
This fixes an issue where a namespaced class beginning with "U" or "u"
would yield an invalid arginfo file due to the occurrence of a unicode
escape sequence, causing a compile error.

Co-authored-by: Guilliam Xavier <guilliamxavier@users.noreply.github.com>

Closes GH-9154.
2022-07-28 14:30:11 +02:00
Michael Voříšek
b0c0a2cfb4
Use -1 "precision" in gen_stub.php
Closes GH-8734.
2022-07-23 12:09:37 +02:00
George Peter Banyard
4457dba1fb
Add support for stubs to declare intersection type class properties (#8751) 2022-07-22 13:04:49 +01:00
Ilija Tovilo
41a5b46e7d
Fix RC debug of stub attribute (#9082) 2022-07-21 15:06:04 +02:00
Máté Kocsis
e328c68305
Rename @cname to @cvalue in stubs (#9043)
@cname currently refers to the constant name in C. However, it is not always a (constant) name, but sometimes a function invocation, so naming it as @cvalue would be more appropriate.
2022-07-19 15:11:42 +02:00
Remi Collet
af72d6e5d9
no need for attributes on legacy 2022-07-18 12:44:29 +02:00
Remi Collet
ee1d6188cf
cleanup unused 2022-07-18 12:40:28 +02:00
Remi Collet
55a88f36b6
add SensitiveParameter as known string and use it in arginfo 2022-07-18 11:43:33 +02:00
Remi Collet
6e24c16c4a
add compatibility for tentative-return-type 2022-07-12 15:22:49 +02:00
Máté Kocsis
227a8576d2
Fix parameter order in gen_stub.php 2022-07-12 13:08:08 +02:00
Tim Düsterhus
342e18f105
Support the actual #[\SensitiveParameter] attribute in stubs (#8836) 2022-07-12 12:43:44 +02:00
Máté Kocsis
0bddbab084
Make the ABI compatibility of generated arginfo files configurable (#8931) 2022-07-12 10:27:53 +02:00
Remi Collet
b45cd10238
Fix GH-8842 don't set sensitive param in legacy arginfo 2022-07-06 08:40:10 +02:00
Bob Weinand
9f29e2d7e9 Allow for arbitrary (class) attributes in stubs
This can be easily extended to other types of attributes.

Closes #8839.
2022-07-05 18:23:05 +02:00
Tim Düsterhus
ff472ce6fc
Support the #[\AllowDynamicProperties] attribute in stubs (#8776)
* Support the `#[\AllowDynamicProperties]` attribute in stubs

* Use `#[\AllowDynamicProperties]` attribute in stubs

* Disallow applying both `@strict-properties` and `#[\AllowDynamicProperties]`
2022-06-21 09:28:57 +02:00
Yurun
5cf2659fa5
Replace the use of ZVAL_BOOL() with ZVAL_TRUE() or ZVAL_FALSE() where the value is fixed (#8815) 2022-06-20 13:34:44 +01:00
Máté Kocsis
49d3dde211
Declare true return types (#8759) 2022-06-18 22:06:50 +02:00
Pierrick Charron
1bcd8d394a
Update gen_stub to support #if around classes 2022-06-13 16:34:12 -04:00
Pierrick Charron
6fd2b39397
Indent with TAB in .h files generated by gen_stub 2022-06-13 08:55:54 -04:00
George Peter Banyard
b40ae80804
Convert iterable into an internal alias for Traversable|array (#7309)
This does a compile time transformation of ``iterable`` into ``Traversable|array`` which simplifies some of the LSP variance handling.

The arginfo generation script from stubs is updated to produce a union type when it encounters the type ``iterable``
Extension functions which do not regenerate the arginfo, or write them manually are still supported by mimicking the compile time transformation while registering the function.

Type Reflection is preserved for single ``iterable`` (and ``?iterable``) to produce a ReflectionNamedType with name ``iterable``, however usage of ``iterable`` in union types will be converted to ``array|Traversable``
2022-06-07 13:35:34 +01:00
Máté Kocsis
b2ed625de1
A few cleanup changes for gen_stub.php 2022-06-06 07:43:56 +02:00
Máté Kocsis
debd38f851 Add support for sensitive parameters in stubs 2022-06-04 18:15:05 +02:00
David Carlier
0b6f58d907 Merge branch 'PHP-8.1' 2022-06-03 08:05:13 +01:00
David Carlier
7f70911cbe Merge branch 'PHP-8.0' into PHP-8.1 2022-06-03 08:04:58 +01:00
David Carlier
0a47fdf538 Revert "Fix detection of unknown gcc function attributes"
This reverts commit 813d942bac.
2022-06-03 08:04:07 +01:00
David Carlier
e17fd1f2d9 Merge branch 'PHP-8.1' 2022-06-02 21:11:43 +01:00
David Carlier
ba5efbdf17 Merge branch 'PHP-8.0' into PHP-8.1 2022-06-02 21:11:22 +01:00
Athos Ribeiro
813d942bac Fix detection of unknown gcc function attributes
As described in autoconf-archive upstream [1], from where
`build/ax_gcc_func_attribute.m4` is forked, the old unknown func attr
detection method would throw a false negative anytime an unrelated
warning was raised.

This results in `ax_cv_have_func_attribute_target` being set to `no`
whenever certain compiler Warning flags are switched on. Namely, having
`-Wall` on, which is a default CFLAG for some linux distributions, will
result in

```
warning: ‘bar’ declared ‘static’ but never defined [-Wunused-function]
```

when evaluating support for the `target` function attribute.

With that configuration value set to `no`, the compiled php binaries
will not support x86_64 v3 instructions such as avx2 and sse2, which
should speed up specific tasks ran by PHP.

This issue was originally reported in Ubuntu [2].

[1] http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commitdiff;h=df0894ad1a8195df67a52108b931e07d708cec9a
[2] https://bugs.launchpad.net/ubuntu/+source/php8.1/+bug/1882279
Closes GH-8483.
2022-06-02 21:09:09 +01:00
Máté Kocsis
a420ee6c34
Update PHP-Parser to 4.14
It supports readonly classes
2022-06-01 16:09:57 +02:00
Máté Kocsis
b7b5ad7169
Make ini_set invocation compatible with PHP 8.0 2022-05-31 08:52:35 +02:00
Máté Kocsis
14da1cb909
Add support for class constants in stubs (#7434) 2022-05-22 22:27:23 +02:00
Máté Kocsis
7850c10389
Add support for readonly classes (#7305)
RFC: https://wiki.php.net/rfc/readonly_classes
2022-05-16 20:40:23 +02:00
Arnaud Le Blanc
0a5a761104 Merge branch 'PHP-8.1' 2022-05-06 15:29:21 +02:00
Arnaud Le Blanc
f07a08df5c
Fix unregistering ini entries of dynamically loaded extension (#8435)
Fixes GH-8185
2022-05-06 15:25:44 +02:00
Ilija Tovilo
9a90bd7054
Deprecate ${} string interpolation
https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation
2022-05-05 10:14:56 +02:00
Michael Voříšek
36de002cc6
Verify generated files are up to date in CI
Closes GH-8295
2022-04-21 23:25:47 +02:00
Máté Kocsis
c345b6ee72
Remove unused variable from gen_stub.php 2022-04-13 09:24:08 +02:00
George Peter Banyard
7710f9946b Fix generation of arginfo if type is just null 2022-04-11 16:58:13 +01:00
George Peter Banyard
c12da039b5 Add null and false support to gen_stubs 2022-04-11 14:04:37 +01:00
Steven Wang
c4a9d1e668
Makefile: Clean up .gcda files in prof-gen.
The .gcda files generated by "$(MAKE) PROF_FLAGS=-fprofile-generate all"
should be removed. Otherwise, the profile data in them would be combined
with the profile data of user's workload.Then, they would be used by
"make prof-use" later.

Closes GH-8284.
2022-04-11 14:30:35 +02:00
Levi Morrison
c68591fa16
Use AS_ECHO([]) instead of obsolete $as_echo (#8321) 2022-04-07 21:49:24 +01:00
Anatol Belski
dd81dd9264
build: Extend m4 to support C++20
Signed-off-by: Anatol Belski <ab@php.net>
2022-03-20 00:30:15 +01:00
istiak101
bf2867bc72
Fix FSF address & update year to 2022
FSF mailing address was changed long time ago. This patch updates that address. Also updated year from 2021 to 2022.

Closes GH-8009.
2022-03-19 18:25:29 +01:00
Victor Kislov
6a2c501626
Adjust PHP_SETUP_LIBXML description to mention what it doesnt use action-not-found
Closes GH-8088.
2022-03-08 13:00:23 +01:00
Derick Rethans
0e65e433a9 Merge branch 'PHP-8.1' 2022-02-15 13:28:07 +00:00