When I was working more with those things I wrote some browsers for browsing methods in CLIM and for MCL. The Lisp Machine should already have some tools, IIRC. LispWorks also has a generic function browser. One enters a generic function and argument types -> LispWorks shows which methods are used for those.
FOO (FLOAT STRING) ->
MULTIPLE-VALUE-PROG1
CALL-METHOD
(METHOD FOO (FLOAT T))
(METHOD FOO (REAL T))
CALL-METHOD
(METHOD FOO :AFTER (T T))I've come to this conclusion during this particular experience and I've confirmed it time and again. I've recently seen an older video of Gregor Kiczales on Aspect Oriented Programming and if I did not read in too much he emphasizes the same issue with proper debugging tools.
Thanks for the tip; it might be what I needed for me to download LispWorks and try again.
[1] Some kernel developers just don't get this even after you show them a call using a function pointer. Read the code they say. Right...
What is the right method for debugging? I've been trying to debug one particular issue in CL code (McCLIM + Climacs) and I've hit the wall in every direction that I tried to see which method was responsible with the issue I've seen.
A plethora of around, before and after in both composition and inheritance that I've lost my way. I've tried various depths of reading and runtime debugging with no significant success. It left me with the image that I should have the whole program in my head to be able to understand it.
It's usually the case that the solution is where you're not looking therefore my question is where (and in what way) should I look at the code to understand what it is supposed to do?