[CM] new tar of cm-2.4.0

Fernando Pablo Lopez-Lezcano nando@ccrma.Stanford.EDU
Mon, 21 Oct 2002 20:48:39 -0700 (PDT)


>     1. Is it possible to build a LISP image with CLM/CMN/CM all included
> ? If so, how is it done ?

I'm doing that for the Planet CCRMA rpms (but have not yet tried cm
2.4.0). This is a commented and reduced version of what the spec file does
to rebuild the core image (in the case of cmucl and for the
cmucl-cm-clm-cmn image that includes everything):

- first, compile clm
  cd clm_source_directory; start cmucl
  (load "all.lisp")
  (quit)

- second, compile cmn
  cd cmn_source_directory; start cmucl
  (load "cmn-all.lisp")
  (quit)

- third, compile cm and add the other stuff

  cd cm_src_directory; start cmucl
  ;;; first pass: preload clm and cmn, compile cm binaries
  (load "path_to_clm_src/all.lisp")
  (load "path_to_cmn_src/cmn-all.lisp")
  (load "cm.lisp")
  (quit)

  cd cm_src_directory; start cmucl
  ;;; second pass: preload clm and cmn, load cm binaries and save image
  (load "path_to_clm_src/all.lisp")
  ;;; optional: if you want the directories somewhere else
  (setf clm::*clm-source-directory* "/usr/lib/lisp/src/clm/")
  (setf clm::*clm-binary-directory* "/usr/lib/lisp/lib/")
  (setf clm::*libclm-pathname* (format nil "~Alibclm.~A" 
"/usr/lib/lisp/lib/" clm::*so-ext*))
  (load "patch_to_cmn_src/cmn-all.lisp")
  (load "cm.lisp")
  ;; optional: set path to cm source
  (cm::set-cm-host-dir "**;*.*" "/usr/lib/lisp/src/cm/**/*.*")
  ;; save cm with new path, overwrite previous automatic save
  (cm::save-cm "cm_src_directory/cm.core")
  (quit)

Create a script that executes lisp with the proper core...
All of this with cmucl 3.0.9 under redhat. 

I also had to add a hack to rebuild the clm library on install for
packages, something in cmucl's ffi is not very forgiving to installed
versions (or whatever, can't say for sure what is triggering the problem)  
and the load of the clm library fails if you don't rebuild on install, and
the system you install in is slightly different from the system where the
package was originally built. This is not an issue if you use what you
just built on the same computer.

-- Fernando