[mcclim-devel] Question about system.lisp and mcclim

Robert P. Goldman rpgoldman at sift.info
Mon Dec 27 15:44:46 UTC 2004


IIUC, the default McCLIM system.lisp file loads into Common-lisp-user,
loads mk-defsystem, and then tries to USE the MAKE package.

I have been using McCLIM on Allegro CL 6.2, and find that this causes
me problems.  The problem is that in Allegro, Common-lisp-user by
default USEs the EXCL extended common-lisp package.  Unfortunately,
EXCL imports Allegro's OWN defsystem package, so that when you try to
use MK, it causes a clash.  I'm always nervous about shadowing
something that Allegro wants imported, since it's bitten me before.

Fortunately, AFAICT, it's trivial to modify SYSTEM.LISP, so that you
DON'T need to import anything from MK --- you can just use the package
references w/o much effort.

Here's a proposed patch that seems to work just fine for me:

--- system.lisp 20 Dec 2004 15:49:49 -0000      1.106
+++ system.lisp 27 Dec 2004 15:43:54 -0000
@@ -43,12 +43,15 @@ (defparameter *clim-directory* (director
 (pushnew :clim *features*)
 (pushnew :mcclim *features*)

-#+mk-defsystem (use-package "MK")
+;;; I really didn't have good luck with this on Allegro, because
+;;; Allegro's CL-USER package uses it's EXCL stuff, which has its own
+;;; DEFSYSTEM. [2004/12/21:rpg]
+;;;#+mk-defsystem (use-package "MK")

 (defmacro clim-defsystem ((module &key depends-on) &rest components)
   `(progn
      #+mk-defsystem
-     (defsystem ,module
+     (mk:defsystem ,module
        :source-pathname *clim-directory*
        :source-extension "lisp"
        ,@(and depends-on `(:depends-on ,depends-on))

Best,
Robert



More information about the mcclim-devel mailing list