On Sun, Aug 3, 2014 at 12:50 PM, Pascal Costanza pc@p-cos.net wrote:
- One reason why the change from slot name to slot definition metaobject
was made is that it allows for better optimization of standard slot accesses that don’t need to go through user-defined methods on s-v-u-c and friends. In LispWorks, you need one extra step to invoke user-defined methods - you have to specify that slot access should not be optimized. In your example, the class definition for ‘foo should look like this to achieve this:
(defclass foo () ((a :accessor foo-a :initarg :a) (b :accessor foo-b :initarg :b)) (:metaclass tracked-class) (:optimize-slot-access nil))
I see. And are you cool with the pervasive opt-out nature of this :optimize-slot-access option? Looks pretty much like a quite clear rejection of the MOP slot protocol to me.
...
If they do then the CLOS subcommittee would be vindicated.
That’s exaggerated. The AMOP book has a foreword to the specification which clearly states that this is preliminary work. Unfortunately, the foreword is not reproduced in the HTML version. Here is the text, to put things in perspective:
...
Personally, I don’t believe that forward-referenced-class or ensure-class-using-class are the most important areas that need fixing. There are other issues that are more relevant.
Quite of a cliffhanger you've done here! Are we going to be treated with a sequel on the very subject of those issues?