Re: [RFC] Keep type of reference params

From: 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

« previous php.internals (#110131) next »