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

MCL 2.0 final defsys package screw



I am trying to load a version of defsys that we have been using here
for several years.  The source contains the following copyright notice:

;;; Copyright (c) 1987, Prime Computer, Inc., Natick, MA 01760
;;;                     All Rights Reserved

I know that the code we have is happy under 2.0b1p3, but when I try to
load it into 2.0 final I get:

> Error: value (PACKAGE-NAME SPACKAGE) is not of the expected type (OR STRING SYMBOL).
> While executing: IN-PACKAGE

The offending piece of code is:

(defun ...

  (if package
    (let ((spackage *package*))
      (unwind-protect
          (progn (in-package package)
                 (load path))
        (in-package (package-name spackage))))
    (load path))

...)

I assume that the problem has to do with a change in when in-package
gets evaluated (presumably related to the change between CLtL1 and
CLtL2) and what it expects to see as its argument.  Packages have
always seemed a little magical to me, so I was hoping someone would
tell me whether the following translation would have the correct
effect:

  (if package
    (let ((*package* (find-package package)))
      (load path))
    (load path))

Thanks in advance,

Nathan Wilson
Teleos Research
nathan@teleos.com