Re: traits

From: Date: Thu, 22 Apr 2010 22:19:51 +0000
Subject: Re: traits
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-48064@lists.php.net to get a copy of this message
On 22 Apr 2010, at 22:17, Rasmus Lerdorf wrote:

> On 04/22/2010 01:05 PM, Stefan Marr wrote:
>>> I must have missed some emails, so which one of the numerous proposals is this based
>>> on? I have some comments on the tests, but I don't want to start with it befor it's clear
>>> which one we're talking about.
>> I would commit the traits implementation[1] (not grafts).
>> Just fixed the last immediately visible problem and am now in the process of writing up a
>> list of open questions/todos for the implementation.
>> There are some details in the patch which need to be reviewed and improved I think.
> 
> None of this touches the executor, right, even the conflict resolution?
Am not sure how you define the executor.
Maybe that answers the question:
http://svn.php.net/viewvc?view=revision&revision=298348

All traits related operations are done when the class is compiled.
Similar to how interfaces are handled.
For the composition there is an additional opcode which concludes the compilation of a class and
executes all merge/conflict resolution operations.
After that is done, traits do not have any additional impact on the execution anymore.

> And I am assuming the class composition changes aren't going to blow up
> opcode caches?  I really fear making the class composition more
> complicated than it already is.  You can sit and stare at all the code
> required in APC to deal with that all day and still not get any wiser.
Don't know exactly. There is a certain need to adapt the opcode caches, I would guess.

Best regards
Stefan




-- 
Stefan Marr
Software Languages Lab
Vrije Universiteit Brussel
Pleinlaan 2 / B-1050 Brussels / Belgium
http://soft.vub.ac.be/~smarr
Phone: +32 2 629 2974
Fax:   +32 2 629 3525



Thread (6 messages)

« previous php.internals (#48064) next »