freenode/#sicl - IRC Chatlog
Search
15:41:27
beach
I am now convinced that there can't be a perfect cyclic graph in the host environment. The reason is that some discriminating functions have already been computed, and they refer to COMPUTE-DISCRIMINATING-FUNCTION in a preceding environment. I can't easily change that.
15:41:29
beach
But then, it doesn't matter much. All I need is a single environment in which the graph of classes is cyclic and in which the functions are instances of those classes. And I think that is fairly easy to do.
15:44:19
beach
... or, rather, to have enough stuff in the call history that it does not fault on typical arguments.
15:49:09
beach
So I think I can do the following (referring to this figure): http://metamodular.com/fig-environments.pdf Designate E5 to be THE environment.
15:49:09
beach
Copy the blue classes over to E5. Change the class slot of the header of every blue object so that it points to a blue class. Define a new version of make-instance in E5 so that it looks up the class in E5 and make sure ensure-class, etc. call this version of make-instance.
15:51:27
beach
The reason I think this will work is that when a blue object has its class slot altered to point to a blue class, it is indistinguishable from a yellow object. And the blue generic functions are designed precisely to operate on yellow objects. So it should "just work" (I know, famous last words).