[Openmcl-devel] Specializing on nil

Sven Van Caekenberghe sven at beta9.be
Sat Sep 20 15:18:54 UTC 2003


In version 1.77 of asdf.lisp there is the following definition:

;;; a component with no parent is a system
(defmethod find-component ((module (eql nil)) name &optional version)
   (let ((m (find-system name nil)))
     (if (and m (version-satisfies m version)) m)))

which openmcl 0.14-030623 fails to compile (or load) with:

 > Error in process listener(1): value #<EQL-SPECIALIZER NIL #x53807DE> 
is not of the expected type (SATISFIES CCL::CLASSP).
 > While executing: CCL::INVALIDATE-INITARGS-VECTOR-FOR-GF
 > Type :POP to abort.
Type :? for other options.
1 > :b
(F0135B00) : 0 "CCL::INVALIDATE-INITARGS-VECTOR-FOR-GF" 72
(F0135B10) : 1 "CCL::%ADD-STANDARD-METHOD-TO-STANDARD-GF" 264
(F0135B20) : 2 "CCL::ENSURE-METHOD" 432
(F0135B30) : 3 "CCL::LOAD-FROM-STREAM" 216
(F0135B40) : 4 "CCL::%LOAD" 1300
(F0135B60) : 5 NIL NIL
(F0135B70) : 6 "LOAD" 640
...

openmcl 0.13.6 has no problem with this code, and presumably other 
lisps think it is OK,
so is this a bug or is the newer openmcl mop trying to be too strict ?
Can the same effect not be achieved by specializing on the class null ?

Sven

--
Sven Van Caekenberghe - mailto:sven at beta9.be
Beta Nine - software engineering - http://www.beta9.be
.Mac - svc at mac.com - http://homepage.mac.com/svc

"Lisp isn't a language, it's a building material." - Alan Kay 


_______________________________________________
Openmcl-devel mailing list
Openmcl-devel at clozure.com
http://clozure.com/cgi-bin/mailman/listinfo/openmcl-devel



More information about the Openmcl-devel mailing list