Re: [PHP-DEV] [RFC] Fibers

2020-12-17 Thread Aaron Piotrowski


> On Dec 17, 2020, at 4:11 PM, Saif Eddin Gmati  wrote:
> 
> Hello Aaron,
> 
> First, I want to say that I love this proposal and would love to see it land 
> in the next PHP release, but I have one question regarding this:
> 
> 
>> Promises result in the “What color is your function” problem as described in 
>> the introduction of the RFC. Returning promises from functions means that 
>> functions calling those functions must also return promises, resulting in 
>> the entire call stack needing to return promises.
> 
> Hack-Lang provides `HH\Asio\join` function which allows awaiting Awaitables 
> in sync code, so you are capable of running multiple async tasks concurrently 
> without having to declare the entire call stack as "async" or with an 
> "Awaitable" return type, isn't this possible?
> 
> ```
> use namespace HH\Asio;
> 
> async function async_task(): Awaitable {
>  await Asio\usleep(100);
> }
> 
> <<__EntryPoint>>
> function main(): void {
>  $start = microtime(true);
> 
>  $async = async {
>concurrent {
>  await async_task();
>  await async_task();
>};
> 
>return 'hello';
>  };
> 
>  $result = Asio\join($async);
> 
>  printf('Result: %s ( %f )', $result, microtime(true) - $start); // output 
> "Result: hello ( 1.010382 )"
> }
> 
> ```
> 
> Regards,
> 
> Saif.
> 


Hi Saif,

`HH\Asio\join()` implements a synchronous await (I don't know the details of 
how its implemented, possibly involving entering and exiting the built-in event 
loop), but it does not solve the problem that functions using `await` need to 
be declared using `async` and return an Awaitable. Your example declares 
`async_task()` as async, while a similar function using the proposed fiber API 
would not need to change the function declaration to use `Fiber::suspend()`. 
There's an example in the RFC using `Amp\delay()` that is very similar to your 
code sample.

Fibers allow existing interfaces to be implemented using either sync or async 
I/O because the interface does not need to change to return promises/awaitables.

Cheers,
Aaron Piotrowski

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Fibers

2020-12-17 Thread Saif Eddin Gmati
Hello Aaron,

First, I want to say that I love this proposal and would love to see it land in 
the next PHP release, but I have one question regarding this:


> Promises result in the “What color is your function” problem as described in 
> the introduction of the RFC. Returning promises from functions means that 
> functions calling those functions must also return promises, resulting in the 
> entire call stack needing to return promises.

Hack-Lang provides `HH\Asio\join` function which allows awaiting Awaitables in 
sync code, so you are capable of running multiple async tasks concurrently 
without having to declare the entire call stack as "async" or with an 
"Awaitable" return type, isn't this possible?

```
use namespace HH\Asio;

async function async_task(): Awaitable {
  await Asio\usleep(100);
}

<<__EntryPoint>>
function main(): void {
  $start = microtime(true);

  $async = async {
concurrent {
  await async_task();
  await async_task();
};

return 'hello';
  };

  $result = Asio\join($async);

  printf('Result: %s ( %f )', $result, microtime(true) - $start); // output 
"Result: hello ( 1.010382 )"
}

```

Regards,

Saif.


‐‐‐ Original Message ‐‐‐
On Thursday, December 17, 2020 8:43 PM, Aaron Piotrowski  
wrote:

> Hi Peter,
>
> > On Dec 17, 2020, at 1:23 PM, Peter Stalman sarke...@gmail.com wrote:
> > Hi Aaron, this is very interesting to me. Can I ask why this approach as
> > opposed to other paradigms like promises, coroutines, etc? You mentioned
> > async/await in the future scope, and I assume most of these patterns can be
> > implemented once there is an underlying functionality. Basically, why
> > fibers instead of x?
>
> Promises result in the “What color is your function” problem as described in 
> the introduction of the RFC. Returning promises from functions means that 
> functions calling those functions must also return promises, resulting in the 
> entire call stack needing to return promises.
>
> Fibers are a method of implementing coroutines or interruptible functions. 
> Promises likely would still be used as placeholders in libraries using 
> fibers, but coroutines written using fibers do not have to return another 
> placeholder. Fibers allow async code to be indistinguishable from sync code, 
> as opposed to an approach where async functions must return a promise.
>
> > You also mentioned this isn't really intended to be used directly, but with
> > a library such as AMPHP. IS the expectation that non-blocking I/O
> > functionality like database drivers and file operation be provided by
> > libraries as well?
>
> Since most code written for PHP is blocking, yes, such libraries/frameworks 
> would need to provide functionality such as database drivers. Both AMPHP and 
> ReactPHP already have existing async drivers available for several different 
> popular database systems. AMPHP’s postgres, mysql, and redis drivers already 
> have a version using fibers.
>
> > I hope I don't come off as critical, I am merely curious. Thank you for
> > pushing this forward, as async is something PHP has been lacking and should
> > have IMO to compare favourably to other alternatives that do.
>
> You didn’t com off as critical at all! These were good questions to ask. I 
> too think if PHP is to add support for async code it should compare favorably 
> to other languages. I think fibers offer a distinct advantage to using 
> promise for async code.
>
> Cheers,
> Aaron Piotrowski
>
> 
>
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



[PHP-DEV] Re: PHP-7.3 branch is closed

2020-12-17 Thread Jan Ehrhardt
"Christoph M. Becker" in php.internals (Tue, 15 Dec 2020 18:30:44
+0100):
>PHP-7.3.26 has been branched and will be the last 7.3 bugfix release.
>PHP-7.3 now enters security support for 1 year, see
>.

Right. I was a bit surprised that PHP 7.3.26 RC1 still was tagged, after
the end of active support. Parting shot for the RC's, I guess.
-- 
Jan

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Short-match

2020-12-17 Thread Larry Garfield
On Thu, Dec 17, 2020, at 10:23 AM, Sara Golemon wrote:
> On Wed, Dec 16, 2020 at 6:50 PM someniatko  wrote:
> >
> > `match` is an expression, where as if-else construction is not. This
> > allows for combining it with a potential future feature of single line
> > functions and methods. For example (hypothetical syntax is used):
> >
> > ```
> > $getNumber = fn(int $number) => match {
> > $number < 0 => NumberKind::NEGATIVE,
> > $number == 0 => NumberKind::ZERO,
> > $number > 0 => NumberKind::POSITIVE,
> > };
> > ```
> >
> 
> That does read attractively, yes.  This is the example that should have
> been offered first as it shows the expression nature shining.
> 
> To contrast that with what would be possible now in an expressive
> functional form:
> 
> $getNumber = fn(int $number) => [
>   -1 => NumberKind::NEGATIVE,
>   0 => NumberKind::ZERO,
>   1 => NumberKind::POSITIVE,
> ][$number <=> 0];
> 
> The match form *certainly* reads more naturally than the spaceship indexing
> form even though both take up equal space.
> 
> -Sara

It looks like the quoted part from someniatko changed from a named function to 
an anon function?  Not sure what happened there.

I've included both a named and lambda version of his example in the RFC, 
however, and linked to the short-functions RFC as that would allow the form he 
originally listed.  They complement each other nicely.

--Larry Garfield

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Fibers

2020-12-17 Thread Aaron Piotrowski
Hi Peter,

> On Dec 17, 2020, at 1:23 PM, Peter Stalman  wrote:
> 
> Hi Aaron, this is very interesting to me.  Can I ask why this approach as
> opposed to other paradigms like promises, coroutines, etc?  You mentioned
> async/await in the future scope, and I assume most of these patterns can be
> implemented once there is an underlying functionality.  Basically, why
> fibers instead of x?

Promises result in the “What color is your function” problem as described in 
the introduction of the RFC. Returning promises from functions means that 
functions calling those functions must also return promises, resulting in the 
entire call stack needing to return promises.

Fibers are a method of implementing coroutines or interruptible functions. 
Promises likely would still be used as placeholders in libraries using fibers, 
but coroutines written using fibers do not have to return another placeholder. 
Fibers allow async code to be indistinguishable from sync code, as opposed to 
an approach where async functions must return a promise.

> 
> You also mentioned this isn't really intended to be used directly, but with
> a library such as AMPHP.  IS the expectation that non-blocking I/O
> functionality like database drivers and file operation be provided by
> libraries as well?
> 

Since most code written for PHP is blocking, yes, such libraries/frameworks 
would need to provide functionality such as database drivers. Both AMPHP and 
ReactPHP already have existing async drivers available for several different 
popular database systems. AMPHP’s postgres, mysql, and redis drivers already 
have a version using fibers.

> I hope I don't come off as critical, I am merely curious.  Thank you for
> pushing this forward, as async is something PHP has been lacking and should
> have IMO to compare favourably to other alternatives that do.
> 

You didn’t com off as critical at all! These were good questions to ask. I too 
think if PHP is to add support for async code it should compare favorably to 
other languages. I think fibers offer a distinct advantage to using promise for 
async code.

Cheers,
Aaron Piotrowski
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Fibers

2020-12-17 Thread Peter Stalman
Hi Aaron, this is very interesting to me.  Can I ask why this approach as
opposed to other paradigms like promises, coroutines, etc?  You mentioned
async/await in the future scope, and I assume most of these patterns can be
implemented once there is an underlying functionality.  Basically, why
fibers instead of x?

You also mentioned this isn't really intended to be used directly, but with
a library such as AMPHP.  IS the expectation that non-blocking I/O
functionality like database drivers and file operation be provided by
libraries as well?

I hope I don't come off as critical, I am merely curious.  Thank you for
pushing this forward, as async is something PHP has been lacking and should
have IMO to compare favourably to other alternatives that do.

Regards, Peter.

On Thu, Dec 17, 2020 at 8:30 AM Aaron Piotrowski  wrote:

> Hello everyone!
>
> I would like to introduce an RFC for adding full-stack fibers to PHP:
> https://wiki.php.net/rfc/fibers
>
> Fibers are primarily used to implement green-threads or coroutines for
> asynchronous I/O. Fibers are similar to threads, except fibers exist within
> a single thread and require cooperative scheduling of the fibers by the
> process. Since fibers do not require a full CPU context switch, they are
> lightweight and more performant than multi-processing or threading for
> awaiting I/O.
>
> An implementation as an extension is at https://github.com/amphp/ext-fiber
>
> Fibers are a complex feature. The RFC contains many examples and links to
> code using fibers to help explain and demonstrate what is possible, however
> I’m certain many more questions and concerns will arise. Looking forward to
> feedback and discussion.
>
> Aaron Piotrowski
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php
>
>


Re: [PHP-DEV] [RFC] Short-match

2020-12-17 Thread Claude Pache



> Le 17 déc. 2020 à 17:23, Sara Golemon  a écrit :
> 
> On Wed, Dec 16, 2020 at 6:50 PM someniatko  wrote:
>> 
>> `match` is an expression, where as if-else construction is not. This
>> allows for combining it with a potential future feature of single line
>> functions and methods. For example (hypothetical syntax is used):
>> 
>> ```
>> $getNumber = fn(int $number) => match {
>>$number < 0 => NumberKind::NEGATIVE,
>>$number == 0 => NumberKind::ZERO,
>>$number > 0 => NumberKind::POSITIVE,
>> };
>> ```
>> 
> 
> That does read attractively, yes.  This is the example that should have
> been offered first as it shows the expression nature shining.
> 
> To contrast that with what would be possible now in an expressive
> functional form:
> 
> $getNumber = fn(int $number) => [
>  -1 => NumberKind::NEGATIVE,
>  0 => NumberKind::ZERO,
>  1 => NumberKind::POSITIVE,
> ][$number <=> 0];
> 
> The match form *certainly* reads more naturally than the spaceship indexing
> form even though both take up equal space.
> 
> -Sara


If you mean a version of `if` that works in expressions, there already exists a 
standard operator for that. Once its historical associativity goof is 
definitely fixed, you will be able to write:

```
$getNumberKind = fn(int $number) =>
   $number > 0 ? NumberKind::POSITIVE :
   $number == 0 ? NumberKind::ZERO :
   $number < 0 ? NumberKind::NEGATIVE :
   throw new \TypeError;
```

There is a semantic advantage of `match` over `? : `, though, namely its 
exhaustivity: You don’t need to add a “panic” default case in order to catch 
logic errors.

—Claude
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



[PHP-DEV] PHP 7.4.14RC1 is available for testing

2020-12-17 Thread Derick Rethans
PHP 7.4.14RC1 has just been released and can be downloaded from:



Or use the git tag: php-7.4.14RC1

Windows binaries are available at: 

Please test it carefully, and report any bugs in the bug system at
.

Hash values and PGP signatures can be found below or at
.

7.4.14 should be expected in 3 weeks, i.e. on January 7th, 2021.

Thank you, and happy testing!

Regards,
Derick Rethans


php-7.4.14RC1.tar.gz
SHA256 hash: 87112ed3e88924499945c0b4352cbf892db70e29bcb6fd55ed4243f7f0ef33a5
PGP signature:
-BEGIN PGP SIGNATURE-

iQIzBAABCgAdFiEEWlKIB4H3VWCL+BX8kQ3rRvU+oxIFAl/Y35wACgkQkQ3rRvU+
oxIwEA//VaZjbOjDxrPQW+W7JD5gE2Bwc9zvPKKhKIRwyLsOkXgTAYmZU9birdEB
L5C9c7wCxbC1E+usrfb5Ws9t+PmOS97PEj14f348g2ZS4p0tlZnLyWDqzVhS85Jf
noBa3a2Z1aiUPeS3VCGMYk73aB+2ScAfe5Oplxs3SfO/X6IB8NmIStIgKomp6/3I
BZ9XPz/iUYF4lBvflnkpORv3H5j7VAM/rFCdhSosE3OzD0+dC5wIE/M9N6vMwYAJ
eWnatYn6wk2ypAIx24+kjnZJ6SIhyJDqKa/JpvLkQ9Dm2kTOgRo+o2rnG0L2UtnO
1D2u9XbnLz8AGv1iZEMTZf+ZfxJlLbCzQC/4QvV251GPDpn3YAVsDDeLC16kXomk
f/1SRFG1hpEiPqhJeAkXuTwzmuuVxbbR+1Xh6lcxwnZKBxgr8FtRukcX27fXTTL+
XqU8EvnS/B7rqWntgjyfKYcsSFPihmWN3uJcqC3h9YafeqMpXJWFu4WnU4oY+Be+
yqLJN8VmijogQFAfVb1Ht3GNBK+C40n015R5oBzT89RiWiWBRlTtNMzBOuWvKBMx
QoE2CV2BnacoTkyJEIb055kXiwyVi7o+jQoF52LEYXzDjbEArAAOajfg6bHwumLA
0FpVjozhsD/OkF8Q3Ia09Tov+8G+wnXcvBi4/i7gPva6g9v6wKg=
=kTrX
-END PGP SIGNATURE-

php-7.4.14RC1.tar.bz2
SHA256 hash: 623d0ae375e02ebb269f926a87496e610c4abb4d31a024489bf68de37369f897
PGP signature:
-BEGIN PGP SIGNATURE-

iQIzBAABCgAdFiEEWlKIB4H3VWCL+BX8kQ3rRvU+oxIFAl/Y36AACgkQkQ3rRvU+
oxLkQA//Wa3Xl/QQS1+lrATLXfPmklb/mA/neu34LZuAwbpmneN+7jSTkKbLpbiv
QLsLfFBcWbfIkVUJRhTqwKSEHXiqzfgB10HdEuu9UwBZITmoZFoJt9AbdLvQNu7D
W68YrZSho0sqTDLWC/l89XRbYlo1/jyjOgtoONjVSFEqRx/0WynHocBlYFYwfQku
ZP/MxjGKoxDnqqtCxIjZY4+m4Fw3qG0RYHWpDUOg1QNiFdTiNTGsiyqV4UK2eTgR
UfQvnKygtikfRae1G3SC2nMBnfb/rAZt8FyMcYrdxOMHamIx97cqbVEhqwl1IsQT
sOr5+frjlvHQOEl3yccMbL+RU5yIP/xcnLncCtXm6kbRg4p9Cox+UYIdJemv1vTI
U/45j6wSKQK+wP6RnnqNEw3sXfaowBuQe7uvmJeTt2GnMF1mc8sPyHct+0ZelfeE
NQa64xk1D4iTRDj4XebUFgKUe54tk4A7msecfSVYTM20SSdd4iUZPCPWbYJTIZb3
S0m8wjHw0mXVzlmG2TteEzF0OB+50bCKcqcHILDpirgRJHIY++VUCm4BsJmYBxBZ
pieMVTZINDdcM76MDbqNX7+6y6nMk4uC39d/9XuGxUzlN4jYtdyIfLKa5luGKn7y
Vz5JnLt9Wg2B0gawybWlxTwEZ6U4duU4D5SyU/zJTHkD1UNV5mw=
=d9oO
-END PGP SIGNATURE-

php-7.4.14RC1.tar.xz
SHA256 hash: d5c189201c2b37734f05b23755d9860f0ad69300e4fec8cd1b0731775de10423
PGP signature:
-BEGIN PGP SIGNATURE-

iQIzBAABCgAdFiEEWlKIB4H3VWCL+BX8kQ3rRvU+oxIFAl/Y36AACgkQkQ3rRvU+
oxL7kQ//XbRN78lQd4KrigL7nCRGobjjzKj/f/ZkukpiJht29tLJ2ksExF6BDoAq
C70WYYlwaSa2uIeGIuOt2knHWzRvv1y4UxVgjoCsmnAbllsaNAyw5y89IgUKbw2o
NyoWFtyeRNtLo0FTi3NFuUm9fii6JyqW7S80QFeKdtSazv9XE956/Gvv6uL9VKCQ
vrvrHNCmTvLv3i8/GI8xTI50D0gIVVmhSkW0aQPtV76J32ZZY08YP2bqycKumfTX
RmNy6nZ7o9VOp/ot9eU8HyhSONEHNy/yzbLreWCaNevPm2dF0XtNU0pls+DnZMi/
CujtNGsW/fyvig8Ini5/6484/eE9fkukrISnGnmZmmXPW5QhE4SRKFuQotot+y18
hdFid7htx8Ms+SPlRAf7meBoQyaAb65Z6Ac7/E/gMVfGYRj8Qx32baKKk73SQi7b
2PmqnD1hQ03CZOzTbQLOvVp8hXG4nUmkpAUZuWLPR6xq1c8GFjh02SSifvSo76/Z
A0C01+wq/JdjsLwMP3KwRNQnXsrjIKeiwUKnp4NuSeDm9GZ5AUk8dwMCA1FuYfm2
bGxMEIb3h8KXJ6tCLFNO2UtRyakjgO/uq+U8mPOBwa+7Pw1EVdZCVtx4OiJF1jLg
CzJ7efeGW6r4DWAeM/VCdsbUJkYOekN6Y/EpPLjx7LJaEK+Nzzo=
=4XoV
-END PGP SIGNATURE-


-- 
PHP 7.4 Release Manager
Host of PHP Internals News: https://phpinternals.news
Like Xdebug? Consider supporting me: https://xdebug.org/support
https://derickrethans.nl | https://xdebug.org | https://dram.io
twitter: @derickr and @xdebug

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



[PHP-DEV] [RFC] Fibers

2020-12-17 Thread Aaron Piotrowski
Hello everyone!

I would like to introduce an RFC for adding full-stack fibers to PHP: 
https://wiki.php.net/rfc/fibers

Fibers are primarily used to implement green-threads or coroutines for 
asynchronous I/O. Fibers are similar to threads, except fibers exist within a 
single thread and require cooperative scheduling of the fibers by the process. 
Since fibers do not require a full CPU context switch, they are lightweight and 
more performant than multi-processing or threading for awaiting I/O.

An implementation as an extension is at https://github.com/amphp/ext-fiber

Fibers are a complex feature. The RFC contains many examples and links to code 
using fibers to help explain and demonstrate what is possible, however I’m 
certain many more questions and concerns will arise. Looking forward to 
feedback and discussion.

Aaron Piotrowski
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



Re: [PHP-DEV] [RFC] Short-match

2020-12-17 Thread Sara Golemon
On Wed, Dec 16, 2020 at 6:50 PM someniatko  wrote:
>
> `match` is an expression, where as if-else construction is not. This
> allows for combining it with a potential future feature of single line
> functions and methods. For example (hypothetical syntax is used):
>
> ```
> $getNumber = fn(int $number) => match {
> $number < 0 => NumberKind::NEGATIVE,
> $number == 0 => NumberKind::ZERO,
> $number > 0 => NumberKind::POSITIVE,
> };
> ```
>

That does read attractively, yes.  This is the example that should have
been offered first as it shows the expression nature shining.

To contrast that with what would be possible now in an expressive
functional form:

$getNumber = fn(int $number) => [
  -1 => NumberKind::NEGATIVE,
  0 => NumberKind::ZERO,
  1 => NumberKind::POSITIVE,
][$number <=> 0];

The match form *certainly* reads more naturally than the spaceship indexing
form even though both take up equal space.

-Sara


Re: [PHP-DEV] [RFC] Short-match

2020-12-17 Thread Larry Garfield
On Wed, Dec 16, 2020, at 6:49 PM, someniatko wrote:
> `match` is an expression, where as if-else construction is not. This
> allows for combining it with a potential future feature of single line
> functions and methods. For example (hypothetical syntax is used):
> 
> ```
> function getNumberKind(int $number) => match {
> $number > 0 => NumberKind::POSITIVE,
> $number == 0 => NumberKind::ZERO,
> $number < 0 => NumberKind::NEGATIVE,
> }
> ```
> 
> See how natural it looks and reads.

Ah, someone gets what I'm driving toward overall. :-)

--Larry Garfield

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



[PHP-DEV] PHP 8.0.1RC1 is available for testing

2020-12-17 Thread Gabriel Caruso
PHP 8.0.1RC1 has just been released and can be downloaded from:



Or use the git tag: php-8.0.1RC1

Windows binaries are available at: 

Please test it carefully, and report any bugs in the bug system.
8.0.1 should be expected in 3 weeks, i.e. on January 7th 2021.

Hash values and PGP signatures can be found below or at
.

Thank you, and happy testing!

Regards,
Gabriel Caruso & Sara Golemon

php-8.0.1RC1.tar.gz
SHA256 hash: cc151edf0acb3329974493adadab0d2510f4f31c6ab8d9f5732b6aa9270d91c9
PGP signature:
-BEGIN PGP SIGNATURE-

iQJKBAABCAA0FiEEv93ShkKCT4EY73eQm2elwSIpEY8FAl/YtIcWHGNhcnVzb2dh
YnJpZWxAcGhwLm5ldAAKCRCbZ6XBIikRj5dkEACY4qIzHuaYFTP4/wWCkWcn3khc
ULdV7GbgKO9qFEC0t271QijXsHdBiG7xRf+WPggeZJtopgUDeH9aHzZELbdxpQLa
4R2KpX6Fw3C2a812ADXw24otUdwD5Ci6haC8YSslQc6XD8tvhaBUDUJCwP/LO0Q8
dcK03s2HrkldbfG3+xnxkuk9JZ/SFyVAOM2Yt7BbtNHUD2iu2WamxIQkTSrR0Rmf
oQsEzYx8p5Bg8npqmsb1iLwlfKbj5cPftxGhWqv+y1xnZquidlp94jfHVuqdWtNj
zQpBF1wkioQT0wrzIPwbO3hGRlGoxo7v/Dz2Qo08HH0j2MAZ/n9rATTII7Gg9pN4
Q7VPrzIBVCvKGEBV0Q7rz5Nsn6xfcq3aUR/qEP6vTuYUeCaW2ON0Y4SHNPZtWIgu
/RfEywBXzH8xHf/h70ScQ5gxZZqZ8LNclVS5H8jBRbdX+imv5heuVMqGSIynXYJy
v2SOth8LYIoHtD+4I8eLrl0zZkDnng3a3uwj3R7zOzLnWyqpRI537NYJ7Vgl0FAQ
kH795Awf7Z6VbdR0PkPejU/uiDlBp3IAfVC/As1QdDWtcpHDJMcsxkcEz5xhfvnx
vdLuu2OKIOnm0GkgQd5vIbKoDnAKf9biK7RyTQcLex4Wy2vOXz0C9KKpd2HO/7U7
MVuy/52gGIEvYcP4eQ==
=AZsV
-END PGP SIGNATURE-

php-8.0.1RC1.tar.bz2
SHA256 hash: 1d3a77c5bdc0bd4b7c7152b278a364d8340328b9c740130dcc19cd661b20a8b2
PGP signature:
-BEGIN PGP SIGNATURE-

iQJKBAABCAA0FiEEv93ShkKCT4EY73eQm2elwSIpEY8FAl/YtIgWHGNhcnVzb2dh
YnJpZWxAcGhwLm5ldAAKCRCbZ6XBIikRj+SnD/9qHNibiGJMFykHVgDjkS9IsH6s
BJJ+7M7EdBPSDG2WRFMOpONm5hm5fbHkOpJnZvIs3gvAO4Am01pJ1UISd5epO/1r
nv43LBnNp4XiiKhbysgVScuVyCAHlFL4Yy9sSfwuSXPPL1GrR3JSg+144i2HWBjF
bVcEsJ9W5nE/SiPETKN++Bbageds/niMbzeahqOSqPf05YvuR2UDdlx127ZP+V0i
n+r1JkOnhDIyzCKqi6QQSBydOqdcuaXotQYjitAOIlyULIE5gLBIjqCvZEKVJOi3
7d/FrjzjL3lxq1svNtSbYmnfEzfbXpjw2SwjMuH6hZSP3Yg2CkkQipuLg3AHyIIO
aYNiYwRaM1SNaiuwhKVomufAhoA+hfkopKey2TLafNKpWU7Vmr908SocKBwpBG+h
6AxdM2yQCVy02Z8hHAS9VRfG5M/nNwjboiPLTqBx7ig5L6PcVoVMWJFKvEVPHZQ6
+NvThqsI0EW2EkHsM/SMER+x0ZIsC1AdnXWZxEDs8AoUoUhsvbul9QQBI3F+Ujlt
5086JXEuicHAQKa8NvCys4JjDXOIK+nTvzR7GxU1IWToVv8PA1oylRIc8mYpBqv4
GkjGnc6Td0+uWhB+xhRFGakb9j0fxkSg5OsZWYBTpO2utsmmcApB4ZGG3PWOHMbl
hf7tzDTKw+ZNzpNyQw==
=Jt/g
-END PGP SIGNATURE-

php-8.0.1RC1.tar.xz
SHA256 hash: ce9529e40b9d78849489c41ca317168ee9466566c521c3ac82e8bf6ba1686e47
PGP signature:
-BEGIN PGP SIGNATURE-

iQJKBAABCAA0FiEEv93ShkKCT4EY73eQm2elwSIpEY8FAl/YtIgWHGNhcnVzb2dh
YnJpZWxAcGhwLm5ldAAKCRCbZ6XBIikRj8rJEACZc+G5yN0Z/7djjcBC/JIB6X/a
XuyAOqEJHhtCS205bT/9/7h0zNifWVsspj6+u21vLjtKtNfx8TjPLgn7T7uUDjQv
N/TK5wKwKRT12bEY5vpB7mQfHdvO2fcZxupBFYrvZwr5hOQ2WymWXs9iLraVZT4t
dRMZ1+6a0i3ihjTMI/fT0L8z0KyQGa5CrKsrfEkfiYxTI7Y1mWAWVZ8EQNow2Q8M
NS0y7MoIdBXbRd5R+KvQYSBvgP+Q9q2WGAO7/ShlXy2vAtMXbQP7gC1afj23508F
JvCX6GEoNBdHNdY2HeGViETuOtGMxqm203D7MzNt8fkFlM3Tkb6VRcqWLpXLmZAE
VvAWxlRmBsrYLGshm5aJ/XD0CNL7Xn5N0OjK/4hXgHveIYF/VZjcJnbRe1UL0WPN
Bh7Ek8A5PWngoZMlWcpthJZ2PuQk0+Wn17CZThrkBUSRCt6ZusBjeG2NgzQvtcOO
OX1mqfpVhgHHpD2wbZKSBSchk9EwAKS/4YRMxzwdWlqrcLa78hhcDNBF2zWkBWEf
+mEUO/z+rn9vPTmzmafTjoAZkVCqKlG35xHvbjBhTVYvM8q76+rVN8+djmaoIzpw
VtTreO7m7FD4VwSctcR8h4gdfUIHCuXvBm0RnlJGQW3bAzb7l8Gz+J185pycFfB6
5QrCXrz6x21+zlfTdQ==
=Huo2
-END PGP SIGNATURE-


[PHP-DEV] PHP 7.3.26RC1 is available for testing

2020-12-17 Thread Christoph M. Becker
PHP 7.3.26RC1 has just been released and can be downloaded from:



Or use the git tag: php-7.3.26RC1

Windows binaries are available at: 

Please test it carefully, and report any bugs in the bug system.
7.3.26 should be expected in 3 weeks, i.e. on January 7th 2021.

Hash values and PGP signatures can be found below or at
.

Thank you, and happy testing!

Regards,
Stanislav Malyshev & Christoph M. Becker

php-7.3.26RC1.tar.bz2
SHA256 hash:
ca99a95da64a88d95021ff486e1acc816f7c48a9d66b378f1f6ac8d008c09354
PGP signature:
-BEGIN PGP SIGNATURE-

iQJABAABCAAqFiEEy69p8XOg/qS1N/Rw1myVkxGLzLYFAl/YlHIMHGNtYkBwaHAu
bmV0AAoJENZslZMRi8y23gEP/3CmXFoJKpe2QbQ7OiAp6Am4/F7hSkKmVuE4txvx
h6JnPC6bUQTVj4dX1Qlo2qMx6qe4XFvIFYi0Mi1UGp0sreivbekOcYKTx7HcuKk7
hFwUDbq7SVaSKIiRGRvC7CwYlsqsfCUS+jGWzMyLmsvXAnMXvHuZvGwMojxPCuAF
srEirAw7+saPH2vGaQs0NHxX3+lGujOJgAyCLSa1WNkLe1RCbBCvGI1TPgp9jDBF
wcMOzY80MDUqgB4fMtzvUg3+4CFOn1LESRGnvK/+oOCFB4dDTLkrTP2vBRi2d8mA
o1ve5FZp2VTfkFTAy/mPNz0uq7YeS9GgqR2MehulLqyrJ0l+f/r0dBfMqe+Hj8qA
mVNsXXBJOvhwrKOl/8+V6xh+vl1xIAS8eTpOGoq9JUurWsHjIpvmExVcSuOXFLcg
sP8ZT9eRE07mJ+PrBtrErXhDiZ1ihxdCR6ggGuNMIE6QmIbHpU9DyAmYY4irs4wU
UQUHpVdcwltrWwOF+cV3t9VpaI+fLHFeqeeHlMTxKWdGydxiGJB1KQ3/kHtFhg4Q
6iGG80zmE1E6wkS+apJDMrEGP7WGcW68SpwFEmyK/puUNdqbvjBJO1XIzGqo7OQs
VUdKfhU6+68OVcvpBIDUaRjCS9T/BFGbfmtv3u0VNZVmn6IVAhg0jYPAoXIKt62E
CbkU
=0+oH
-END PGP SIGNATURE-


php-7.3.26RC1.tar.gz
SHA256 hash:
8b6ec69040d6750194fcbb53e6f62baa0ec8d7543439191307705786d91da7b3
PGP signature:
-BEGIN PGP SIGNATURE-

iQJABAABCAAqFiEEy69p8XOg/qS1N/Rw1myVkxGLzLYFAl/YlJIMHGNtYkBwaHAu
bmV0AAoJENZslZMRi8y2NmgP/0P85aLADYB/2WJfAIjEacJXqLAcM8xA5Q3pj5K4
puR/SX360iafM+C2oyhCPKpaUSIxsvcwIFsBsalce+FtcHsjb9VV9RVwR4bmbIZN
TBza5cnChwyvYggL4pZGMrQHhAjY95ggwR8YehyWZ8LE/kPBJ85pl5Xl2q7zGAT1
kw7DqsXoaLBmfIYHUxJwuoTgSkQ2JPdEALuNVN2yPSqNXut7OGkz1oQnLMgJ1At4
5dgGLtSv3kq96K6gMXjW5wXPIl3FVYmYkmGEVCl8cL1arkCvuFWxsAp5PqoAwbYK
LfEczxqBxpJyhKL3Tf236yX/bezphWGQGz3nfq4ME4RRijODB/IF+DU5ZfW1H6wn
rDLYmbAtn3SlFryrmmCEuqsnfX/GzLyil87+Mc8bA1871e8RBalMPHabA4Bd1pKv
37mG0wWnDOM9Xqvzm/inRryh19E32dGzvaGw+3YjiNnEFfVYOGS8sJTUwA4AAYeZ
9wPyh9bADlzkB747hEonHGVDec5qAIvC89CQ/tlSerpXPw1WYV1mX5xn3csSBZZd
YpmeGthEZ2JpxaqPsgw17Dt0mlq93on1WiJUadJeO6Ol1dsVoHN5LtAPm8YwLOUc
ALYzvia2MZ2fIamBL52ZYYKz+sYzlILbVlsVnsQyeELLEOgTdaC3pHWDHWINMKLd
zyQF
=1fJV
-END PGP SIGNATURE-


php-7.3.26RC1.tar.xz
SHA256 hash:
60f760379ce6c75673a4cbc87e46077be25fdfe6db6e075abbb407049264d8a7
PGP signature:
-BEGIN PGP SIGNATURE-

iQJABAABCAAqFiEEy69p8XOg/qS1N/Rw1myVkxGLzLYFAl/YlJIMHGNtYkBwaHAu
bmV0AAoJENZslZMRi8y2f1UQAIUrLhUEyKPbWyEFzxBwXOsGIXqWt012e2GLh5JL
7jFiVRYVvfX+sFN/iGnl5OTSmVPBVoDLYdUC/Gj7G021/mp5KEKNxIrrxJ92TwPy
R6nms40pInQSJ7uZ4qEuOiW3HiGdkHnEe0uocbi+FAL7AeBvbDR5CpQIxZ8a1JrJ
YduxLjMpvwSNjzmgbI3auhtwoKCA25/0hBkFUuJeVbhh0gcQKmHWsGbt+pXFG2iz
n7jdNnnf7mstzMvo+gpdDbe0rDrUSuXgIE7I9+cAL48nzGNyFPGEk1jtltACEYSi
3NnU7YXL+1YLCt5mAG++RusEHwP6C8jdqZ7hAoa2tspMwXyIR6zjJL2kb7z83RMw
HOqZH/LDSP1twAvWCuw420kL1td6zKZvxrj9Z85ZsWtczPU/m1yrb2a3IZJyhS13
jl4+u7ZHtarFtfB2fHBwpb3W5f2cgW4dYMIWSFq5bBCINxQq5P7rpcK25CabUVCO
8hJkdAHkk+PDRvcTSKFaMjPa1bQQqKsdKQ/vRlgtw2P+2Tx/ol/9TLWDKvPqHQkc
3Zar+G/DppPA+GsVriA1W5cOHscT4bRwgHh1z7YkADNYPZ9G0zDGHoPTmRVQyv33
F8ZeCQh3sTAxLM3i76s0iUic59xHx3o+nrqcDbl4Rc2nmmeqxRILO8hJ2B4/cx1e
INBV
=DTFm
-END PGP SIGNATURE-

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php