freenode/#sicl - IRC Chatlog
Search
13:26:49
beach
So when COMPUTE-APPLICABLE-METHODS-USING-CLASSES returns a second value of false, we may or may not be allowed to avoid a call to COMPUTE-APPLICABLE-METHODS. I forget the conclusion of previous discussions, but for STANDARD-GENERIC-FUNCTION we ought to be able to avoid such a call since conforming applications can't add methods to determine whether COMPUTE-APPLICABLE-METHODS was called or not.
13:29:48
beach
But in the general case, it seems that, when the binary search that the discriminating function implements fails, one possibility is that it is because we were not allowed to cache the result of COMPUTE-APPLICABLE-METHODS-USING-CLASSES, so we must call COMPUTE-APPLICABLE-METHODS.
13:37:05
Bike
on clasp we cache things with eql specializers sometimes, but only with standard-generic-function.
13:37:32
Bike
hypothetically we could export some kind of caching API so programmers with custom generic function classes could have caching beyond the c-a-m-u-c case as well
13:38:53
heisig
There was a paper by Rhodes on how such an API could look like: https://research.gold.ac.uk/9924/
13:41:20
beach
Oh, OK, I'll look into that. Thanks. But I am not going to implement it yet. Keep it simple in the first version is the motto.
13:42:01
Bike
just the normal c-a-m-u-c to c-a-m should work fine... handling eql specializers is nice, especially since cleavir uses them all over, but it's hardly a requirement
13:44:41
Bike
the first example here is a code walker, which is exactly what cst-to-ast is doing with the specialization-only head symbols... nice
14:09:59
heisig
beach: Nook is the new name for racks, right? I tried to look it up in the SICL specification, but there was no explanation yet.
14:16:10
heisig
Oh, I just found the explanation in the IRC logs. So (nook-read x n) is essentially (rack-ref (rack-of x) n), right?
14:21:46
heisig
In that case, specializing the nook-read/write instructions on the host for certain primitive objects sounds like a good idea.
18:12:56
alandipert
it turned out that https://github.com/cxxxr/valtan already performs the tagbody optimization on which i claim novelty in my JACL paper, but the ELS chair has graciously suggested i convert to a 'demonstration' paper. if anyone has suggestions of great demo papers to read, i'd love to see them