freenode/#sicl - IRC Chatlog
Search
3:36:16
beach
no-defun-allowed: Yesterday's celebrations made me read up on ANZAC, which my colleagues in Auckland made me aware of.
3:55:28
beach
The first three days of this week will be chaotic, and so will the first three days of next week. I might not get a lot done during that time.
3:56:15
beach
Monday, Tuesday, and Wednesday this week, the tree pruners will work the trees in the yard. Yes, it takes three full days to prune our trees.
3:58:27
beach
It is important to keep them pruned, because we frequently have winter storms. They are basically what remains of the hurricanes that hit north America earlier in the year. They first go north, then cross the Atlantic and they end up here.
4:03:22
beach
The first three days of next week will be strange as well. Monday, me and my (admittedly small) family go to Paris and stay for two nights. Jim Newton's PhD defense is on Tuesday.
8:44:33
beach
So here is an example of my daily conundrums: I want to create ersatz generic functions in E4. That is done by calling MAKE-INSTANCE in E3. The class that gets instantiated is a bridge class in E2.
8:44:41
beach
Now, where do I put SHARED-INITIALIZE so that it can initialize the ersatz generic function?
8:44:51
beach
On the one hand, SHARED-INITIALIZE must be a bridge generic function, so it belongs in E3 and that's where I know how to execute DEFGENERIC and DEFMETHOD forms to make SHARED-INITIALIZE operational.
8:44:59
beach
But then, SHARED-INITIALIZE is passed the new instance, so it must call CLASS-OF to figure out what class metaobject to use to find the slot-description metaobjects.
8:45:10
beach
Turns out, CLASS-OF for ersatz objects is defined in E4, the destination environment for the new object.
8:45:16
beach
But then, SHARED-INITIALIZE must use the accessors for the class metaobject, and those are defined in E2.
8:45:20
beach
Solution: split SHARED-INITIALIZE between E3 (generic functions, methods) and E2 (functions implementing the default behavior), and maybe use a viaduct (my name for the functions that are called in one environment and that do nothing but call a different function in a different environment) for CLASS-OF.
10:41:15
beach
(of a product) made or used as a substitute, typically an inferior one, for something else.
10:42:10
beach
Yes, because it is not a native SICL object. It is a SICL object represented as a host object.