Hi, Internals,

 ---- En lun, 11 may 2020 11:34:22 +0200 Nikita Popov <nikita....@gmail.com> 
escribió ----
 > 
 > 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.)
 > 
 > Regards,
 > Nikita
 

Nikita, I've already read your thread. I like your purpose about "Explicit 
call-site send-by-ref syntax". I don't understand why it wasn't accepted. 
Yes, you're right about performance then maybe this RFC doesn't make much 
sense. :(

Thanks, anyway. You can remove my karma again.

Regards
--
Manuel Canga

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

Reply via email to