freenode/#clasp - IRC Chatlog
Search
6:14:44
Shinmera
beach: I'm trying to come up with an elegant way to associate runtime metadata with slots. Meaning that I want an instance of a class to have slots that can hold values as normal, but also allow the user to push metadata to each slot, without touching the value. The only idea I got so far is to store a container in the slot and ab/use slot-value-using-class to either return the container, or its value,
6:14:45
Shinmera
depending on a special variable. But that sounds real hacky and gross. Do you have any ideas?
6:15:53
Shinmera
Another idea I had would be to supply custom reader/accessor methods that do the dereferencing of the slot's container. On that note, is it specified anywhere in the mop when/how reader/writer/accessor methods are generated?
6:16:59
Shinmera
I can of course just emit my own methods that fall back on slot-value / supply :around methods to dereference, but I'd be interested to know if there's a protocol in place to directly change the generated accessors.
6:26:43
beach
The most elegant way I think would be to have a custom slot-definition metaobject that, when the class is finalized will allocate two slots for each description in the DEFCLASS form.
6:27:43
beach
Accessor methods are created and added to the generic function as part of the class-initialization protocol.
6:29:05
Shinmera
compute-effective-slot-definition only allows me to return one instance though, right?
6:31:31
beach
You just generate two effective slot definition metaobjects for each direct slot definition.
6:33:44
beach
3. Customize direct-slot-defintion-class to return the new slot-definition class for your new subclass of standard-class
6:34:25
beach
4. Customize compute-slots to generate two effective slot definitions rather than one.
6:35:27
Shinmera
I know enough of the MOP to get around, so all I needed was the hint to compute-slots, but thanks!
6:35:51
beach
I'll be off most of the morning. I am taking my new computer back to the guy who sold it to me for tests and some adjustments.
6:36:12
beach
Since both my old and my new computer crash in similar ways, I now suspect power surges.
6:37:44
beach
Surges could be caused by our numerous heat pumps/compressors. My brother says they can do that.