[CM] question on audio distributions, CCRMA or Agnula, others?

M. Edward (Ed) Borasky znmeb@cesmail.net
Wed, 02 Mar 2005 19:26:24 -0800

Fernando Lopez-Lezcano wrote:

>So, installing a working clm for a particular lisp in Planet CCRMA is
>just "apt-get install clm-cmucl". I presume this could be converted into
>an "emerge clm-cmucl" command :-) The binary packages include a simple
>subsystem lisp stub that loads what's needed, and a one line bash script
>installed in /usr/bin that starts that particular flavor, so just typing
>/usr/bin/clm-cmucl starts the cmucl version of lisp and loads all of
>clm. Same mechanism for cmn. 
Gentoo is, for the most part, built from source. The "packages", called 
"ebuilds", are scripts which unpack, configure, make and install for 
"typical" packages. In the case of a source like CM or CLM, which will 
run in multiple Lisp environments, Gentoo would define a "USE flag". So, 
to build with Guile, CMUCL, Clisp and SBCL, one would write

USE="guile cmucl clisp sbcl" emerge cm

I'm not familiar yet with the internals of Gentoo's Common Lisp 
Controller, but it was derived from Debian's and takes care of 
recompiles when one of the underlying Lisp environments changes.

>Cm is sligthly different as it contains hooks to signal loading the
>other packages (this is still 2.4.x, the latest official release):
>cm -> source code only
This is all Gentoo has at the moment ... when you install, it unpacks 
the source and when you run, it calls Guile and runs the Scheme version 
in it. That's getting fixed at my instigation. :)


>Anyway, I'm sure there are better, more clean and lispy ways of doing
>all this. Still, probably the packaging structure and dependencies are
Ah yes ... if you're constrained to binary RPMs, a lot of hacking is 
required. The standard "bin/cm.sh -l <lisp>" works just fine in a normal 
user account, but it would need to be modified for multi-user systems, 
as I believe someone has pointed out. Rick, how difficult would it be to 
have a read-only "cm.sh" in /usr/bin, which compiled code into a 
*user's* binary, say, "~znmeb/bin"?