On Wed, Jan 11, 2017 at 1:07 PM, Dmitry Stogov <dmi...@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