Re: Re: [RFC] Union Types v2
| From: | Dmitry Stogov | Date: | Wed, 23 Oct 2019 15:42:49 +0000 |
| Subject: | Re: Re: [RFC] Union Types v2 | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-107647@lists.php.net to get a copy of this message | ||
Hi Nikita,
I checked the Union Type implementation, and it more or less good. I mean, it implements the RFC in
almost the best way.
However, as I don't like the RFC itself. Especially, unions of multiple classes and
interference with type variance, I'll vote against this.
Actually, I think PHP already took wrong direction implementing "typed references" and
"type variance".
Introducing more "typing", we suggest using it, but this "typing" comes with a
huge cost of run-time checks.
From 10% (scalar type hint of argument) to 3 times (typed reference assignment) performance
degradation.
Anyone may rerun my benchmarks https://gist.github.com/dstogov/fb32023e8dd55e58312ae0e5029556a9
Thanks. Dmitry.
________________________________
From: Dmitry Stogov <dmitry@zend.com>
Sent: Tuesday, October 22, 2019 15:38
To: Nikita Popov <nikita.ppv@gmail.com>; PHP internals <internals@lists.php..net>
Subject: Re: [PHP-DEV] Re: [RFC] Union Types v2
Hi Nikita,
Can you please give me one/two days, before starting the voting, for implementation review (at least
until October 25),
Thanks. Dmitry.
________________________________
From: Nikita Popov <nikita.ppv@gmail.com>
Sent: Tuesday, October 22, 2019 12:36
To: PHP internals <internals@lists.php.net>
Subject: [PHP-DEV] Re: [RFC] Union Types v2
On Wed, Sep 4, 2019 at 10:26 AM Nikita Popov <nikita.ppv@gmail.com> wrote:
> Hi internals,
>
> I'd like to start the discussion on union types again, with a new proposal:
>
> Pull Request: https://github.com/php/php-rfcs/pull/1
> Rendered Proposal:
>
> https://github.com/nikic/php-rfcs/blob/union-types/rfcs/0000-union-types-v2.md
>
> As an experiment, I'm submitting this RFC as a GitHub pull request, to
> evaluate whether this might be a better medium for RFC proposals in the
> future. It would be great if we could keep the discussion to the GitHub
> pull request for the purpose of this experiment (keep in mind that you can
> also create comments on specific lines in the proposal, not just the
> overall discussion thread!) Of course, you can also reply to this mail
> instead. The final vote will be held in the wiki as usual.
>
> Relatively to the previous proposal by Bob&Levi (
> https://wiki.php.net/rfc/union_types), I think the main
> differences in
> this proposal are:
> * Updated to specify interaction with new language features, like full
> variance and property types.
> * Updated for the use of the ?Type syntax rather than the Type|null
> syntax.
> * Only supports "false" as a pseudo-type, not "true".
> * Slightly simplified semantics for the coercive typing mode.
>
> Regards,
> Nikita
>
An implementation of this proposal is now available at
https://github.com/php/php-src/pull/4838. As
the implementation didn't turn
up any new issues, I think it's time to move this RFC forward to voting.
Nikita
CAUTION: This email originated from outside of the organization. Do not click on links or open
attachments unless you recognize the sender and know the content is safe.