Hi, Nikita and internals,
---- En lun, 11 may 2020 11:34:22 +0200 Nikita Popov <nikita....@gmail.com> escribió ---- > On Fri, May 8, 2020 at 8:49 AM Manuel Canga <p...@manuelcanga.dev> wrote to > this RFC, could someone give me(manuelcanga user ) karma in order to create > wiki page ?. > > I'm finding it hard to follow what is actually being proposed here at this > point (as many different ideas seems to be discussed at the same time). I've > granted you RFC karma on the wiki in case you want to write down something. > As other's have mentioned, this is not a simple topic from the > implementation side, so it's good to have a firm idea of how things would > work on a technical level. If you want to pursue the "inout" idea, I would > recommend reading through https://externals.io/message/101254 in its > entirety, because there is quite a bit of inout related discussion in there. > My current assessment is that I do not see any way to implement inout in a > way that both does not use references and has acceptable performance. > (Implementing inout on top of references is possible, but has impact on its > behavior, e.g. the fact that the reference will be initialized to null by > default, even if the function throws.) > One of the core problems is that any naive approach to inout (i.e. literally > implementing it as a read before the call and a write after the call) will > necessitate a copy of the modified value, precluding rc=1 cow avoidance. > Implementing array_push() as an inout operation would copy the array every > time a value is pushed. Maybe this is actually a fundamental > implementation-independent property of inout, if it has the semantics that > the original value is not changed on exception (a copy would be necessary in > case code later in the function throws.) Thanks, Nikita. I will read that thread. I don't have know about PHP core so it's possible I will say a silly thing but... is possible using Hack implementation ?. Maybe They found the best way of implementation. Regards -- Manuel Canga -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php