[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Common Lisp require is broken & I can't have the source.



    Date: Thu, 24 Jul 86 14:37 CDT
    From: Wilson M. Michaels <mac@MCC.ARPA>

    In Symbolics 3600 Release 6.1, IP-TCP 29.13, Release-6-7 4.0,
    COLOR 135.50, Experimental VISTA 4.0, microcode TMC5-COLOR-MIC 336,
    FEP 127, FEP0:>v127-lisp.flod(5), FEP0:>v127-loaders.flod(5),
    FEP0:>v127-debug.flod(10), FEP0:>v127-info.flod(5), on Mac's Color System:

    The Common Lisp function (REQUIRE <name>) is broken.   Here is a dumb
    little version I hacked in order to get my job done:


    ;;;-*- Mode: LISP; Syntax: Zetalisp; Package: USER; Base: 10 -*-

    (DEFUN  REQUIRE (NAME)			;Once again I need SYMBOLICS source to fix a bug, but can't have it
      (UNLESS (CL:FIND (CL:STRING NAME) CL:*MODULES* :TEST #'CL:STRING-EQUAL)
	(MAKE-SYSTEM NAME :NOCONFIRM)))


    I know this is in the Zetalisp package and REQUIRE is defined in the
    Common Lisp package.  That one is broken.  It needs to be fixed by
    SYMBOLICS.

This should take care of the string problem you are running into:

(defun require (module-name &optional pathname)
  (setq module-name (string module-name))
  (unless (member module-name *modules* :test #'equal)
    (cond ((null pathname)
	   (make-system (zl:string module-name) :noconfirm))
	  ((listp pathname)
	   (mapc #'load pathname))
	  (t (load pathname)))
    (unless (member module-name *modules* :test #'equal)
      (cerror "Proceed with no special action."
	      "The files that supposedly constitute the module ~A were loaded,~@
		but they did not execute (PROVIDE ~:*~S)."
	      module-name))))