[CM] CVS cmio error
Rick Taube
taube@uiuc.edu
Thu, 24 Nov 2005 11:27:44 -0600
> Ouch, it looks like this old dog must now learn some new tricks. I
> admit that the previous method was simpler for me.
I hope it wont be harder! the goals were to make it easier to build
(and to maintain) while also increasing functionality and portage. The
main difference between the "old" and the "new" is that common lisp CM
is now based on ASDF and CFFI, both of which are rapidly becoming
"standard" ways to do things in CLTL. By switching to CFFI both
Portmidi and Midishare APIs will now work in basicially every lisp:
CLISP SBCL CMUCL OpenMCL Lispworks ACL, and should run on Windows as
well. Just as importantly, I dont have to deal with FFI stuff anymore,
and the Portmidi and Midshare packages can be loaded into Lisp without
CM even around. The idea is to make the default CM a smallish "kernel"
that works in every lisp and scheme and then to let people add whatever
stuff they want to (assuming their lisp supports it) via a single
functino call: (use-system ...)
ASDF and CFFI also makes it easier to install non-trivial things: for
example you dont have to downlaad and add "interface databases" to
openmcl anymore, or install portmidi C libs etc. Both CLM and CMN also
now have ASADF definitions so they can be loaded via use-system too.
The use-system function works with ANY asdf based software, of which
there score of already available, all of which you can work with simply
by downlading their sources and doing (use-system :foo)
asdf is much more powerful and scalable than the horrible hack code in
make.lisp!!
> Some questions: If I want everything loaded into CM (Fomus, PM, CMN,
> CLM, the works), do I need to issue a use-system for each one ?
yes BUT you do NOT need to do this every time you start CM. To
automaticall load everything add the appropriate use-systems to either:
cm.lisp (for "site-wide" configuration)
.cminit.lisp (for personal configuration)
If you add your use-system to your .cminit.lisp file then you will
always get very latest versions of the software you use as part of
starting up cm.
> Also, what if I don't want to place all my Lisp components into one
> directory ? Will that adversely affect how I build/start/use CM ?
No, you can pass a :directory to use-system:
(use-system :fomus :directory "/foo/bar/baz/")
if you do not specify a directory, then use-system first looks on
asdf:*central-registry* and if it cant find it, it searches under the
parent directory of CM.
> Will I need to call use-system if I want to use the CMIO panel or can
> I still conveniently invoke the component programs from the panel ?
It should work exactly the same, in fact thats were i got the intiall
idea. its just that underneath the window it will now do (use-system
...) instead of the hack loading it does now.
I have not converted Lambda-GTk and the GUI tools to the new loading
yet.
> Btw, happy holidays to Rick and all cmdist users and developers !
Gobble gobble!