Re: [RFC] Keep type of reference params
| From: | Manuel Canga | Date: | Mon, 11 May 2020 10:53:51 +0000 |
| Subject: | Re: [RFC] Keep type of reference params | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-110131@lists.php.net to get a copy of this message | ||
Hi, Nikita and internals,
---- En lun, 11 may 2020 11:34:22 +0200 Nikita Popov <nikita.ppv@gmail.com> escribió ----
> On Fri, May 8, 2020 at 8:49 AM Manuel Canga <php@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 î
> ,ùÓÛ{²À×k¡ý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