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.
12:29:10
drmeister
We have a whole house surge protector - I have no idea if that is something you need.
12:31:52
drmeister
Would you know how I would open a random available port and get the port number using sbcl sockets?
12:36:22
drmeister
I'm looking through clasp's sockets.lisp - but I can't be sure I implemented everything.
12:39:00
drmeister
And double yes... https://github.com/clasp-developers/clasp/blob/dev/src/lisp/modules/sockets/sockets.lisp#L364
13:55:13
karlosz
getting a dynamic reloc error asking me to recompile with PIC on arch after updating
13:55:14
Colleen
karlosz: Bike said 16 hours, 23 minutes ago: load whatever version of sicl as the local mirror src/lisp/kernel/contrib/sicl. note that distclean will reset it
13:56:20
karlosz
i remember haring something was wrong with arch popping up in the last month. anyone ever found a conclusive fix.
13:58:59
Bike
what is available in rmps? the compiler clearly exists, but cl:compile is an undefined function?
14:02:58
drmeister
That's not to say that even at this late, late stage of clasp development - that in this early, early stage of the build, symbols aren't put into the correct packages.
14:25:27
Bike
drmeister: do you know what kind of problem would cause compilation to work okay, but not the next step (linking i think)? maybe an intrinsic written wrong?