Re: Change in type-hint representation
| From: | Nikita Popov | Date: | Wed, 11 Jan 2017 20:46:02 +0000 |
| Subject: | Re: Change in type-hint representation | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-97701@lists.php.net to get a copy of this message | ||
On Wed, Jan 11, 2017 at 1:07 PM, Dmitry Stogov <dmitry@zend.com> wrote:
> Hi,
>
>
> I propose to introduce a unified type representation (zend_type).
>
> Now it's going to be used for typing of arguments and return values.
>
> Later we should use it for properties and other things.
>
>
>
> https://gist.github.com/dstogov/1b25079856afccf0d69f77d499cb0ab1
>
>
> The main changes are in zend_types.h and zend_compile.h, the rest is just
> an adoption for new type representation.
>
> I don't think we need RFC, because this is just an internal change that
> doesn't change behavior.
>
>
> I got the idea working on typed properties together with Bob and Joe.
>
> https://github.com/php/php-src/compare/master...bwoebi:
> typed_ref_properties
>
> I think it would be better to introduce zend_type and then continue work
> on typed properties.
>
>
> Any comments?
>
>
> Thanks. Dmitry.
>
I like this. Two questions:
1. Can you please clarify what ZEND_TYPE_ENCODE_CLASS_CONST_* is for? Why
does this not use the usual encoding for allow_null? Does the compiler not
allow casts in initializers or something?
2. Is the use of zend_strings in arginfo of internal functions zts safe?
I.e. does the function registration happen per-thread or do we reuse
registered functions across threads? If that's the case we might run into
issues with non-atomic RCs.
Nikita