in reply to Re: Beyond Inside-Out
in thread Beyond Inside-Out
I see three major points going for the Alter proposition. Rewording the one you mention,
As for the cost, you have rightly observed that both techniques require the call to either id() or ego() on each access, with equal possibility of caching. The call to id() is essentially free, except for the call overhead, but ego() has a hash access in the path, which counts. Preliminary benchmarks show that the impact is measurable, but not dramatic. At the moment I am less concerned with efficiency but with getting it right.
On a broader note, inside-out has shown what it takes to make black-box inheritance work in Perl. In particular, some kind of out-of-band storage is needed for which it cleverly uses the existing refaddr() as a primitive. My goal is to design a primitive (ego()) for out-of-band storage expressly for the purpose. In that sense I consider the sketch of the Alter module we're discussing a step beyond inside-out.
This discussion (and another one on clpm) is helping me to spot potential problems and limitations of the approach.
Anno
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Beyond Inside-Out
by xdg (Monsignor) on May 30, 2007 at 18:30 UTC | |
by Anno (Deacon) on May 30, 2007 at 19:00 UTC | |
by xdg (Monsignor) on May 30, 2007 at 21:04 UTC |