From: Bob R. <rog...@rg...> - 2003-11-27 02:51:31
|
From: rif <rif@MIT.EDU> Date: Wed, 26 Nov 2003 12:39:40 -0500 I now have an actual fix (but no understanding) of the problem. The offending coe is, in find-src.lisp, lines 45-49 ;; [necessary in cmucl 18d, but not in 18f (we expect). -- rgr, 19-Feb-03.] #+cmu (defmethod class-name ((class structure-class)) (kernel::structure-class-name class)) I have no idea what this is actually doing, but it seems that in both CMUCL 18e and 19a, this code causes find-src.lisp to only load successfully when compiled, not when interpreted, which causes all the problems discussed yesterday. I came upon the solution just by randomly poking around in the files, so I guess this is a cargo cult solution . . . But it does narrow the problem very effectively; thanks for doing the leg work! If anyone would care to explain what this code actually does/means, I'd be grateful. Cheers, rif I wrote this (I'm "rgr", BTW) so that the rest of find-src.lisp wouldn't have to worry so much about the distinction between standard-class and structure-class instances. In 18d/e, class-name does the right thing for structure classes, so I can share more of the method-finding code than I would otherwise be able to do. Based on a cursory test, it seems to work in the interpreter if I do (slot-value class 'pcl::name) here. This might also be more portable -- between CMUCL versions, that is. I'll give this a try; thanks again for getting me started. -- Bob |