Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Installing software and libraries

9 views
Skip to first unread message

Mario S. Mommer

unread,
Jun 8, 2003, 1:34:52 PM6/8/03
to

Hi,

I'd like to find out how people install and use Common Lisp software,
and what has been found to be the optimally useful settings. I've
found ways of doing these things, of course, but I just wonder what
other people do:

- Where (in what directories) do you put the software, the libraries
etc. that you get from the net, like uffi, etc?

- How do you configure it all so that your favorite system definition
thing finds what you want?

- How do you handle the existence of both asdf and defsystem?

- How do you handle multiple implementations wrt fasl file
generation and storage?

I know about common-lisp-controller, but it has the drawback that it
is only for debian. Are there other, similar tools out there?

Regards,
Mario.

Rudi Schlatte

unread,
Jun 8, 2003, 5:07:08 PM6/8/03
to
Mario S. Mommer <m_mo...@yahoo.com> writes:

>
> I know about common-lisp-controller, but it has the drawback that it
> is only for debian. Are there other, similar tools out there?
>

Since you seem to be a German speaker, <m8q9va...@DS9.mederle.de>
could be interesting (usage of common-lisp-controller for non-Debian
Linux).

Rudi
--
whois DRS1020334-NICAT http://constantly.at/pubkey.gpg.asc
Key fingerprint = C182 F738 6B9A 83AF 9C25 62D9 EFAE 45A6 9A69 0867

Wolfgang Mederle

unread,
Jun 8, 2003, 4:50:42 PM6/8/03
to
Mario S. Mommer wrote:

> I know about common-lisp-controller, but it has the drawback that it
> is only for debian.

It's not too difficult to port it to any other Linux distribution. I did
it once for Slackware 8.1, took me about two hours altogether.

--
Wolfgang Mederle

$BONMOT

Pascal Bourguignon

unread,
Jun 8, 2003, 6:15:42 PM6/8/03
to

Mario S. Mommer <m_mo...@yahoo.com> writes:

> Hi,
>
> I'd like to find out how people install and use Common Lisp software,
> and what has been found to be the optimally useful settings. I've
> found ways of doing these things, of course, but I just wonder what
> other people do:
>
> - Where (in what directories) do you put the software, the libraries
> etc. that you get from the net, like uffi, etc?

In /local/share/lisp/.

/usr/local is a symlink to /local

I don't know if you've noticed, but most of the stuff under /usr is
delivered along with the OS, so I keep only /local in a separate
partition and avoid problems by having it mounted on a directory under
/ rather than in /usr/local.


> - How do you configure it all so that your favorite system definition
> thing finds what you want?

I've got a ~/.common.lisp file with pure Common-Lisp definitions that
is loaded by the various ~/.clisprc.lisp, ~/.sbclrc,
~/.cmucl-init.lisp, etc.

In that .common.lisp I define a set of logical hosts and their logical
pathname translations for the various packages (in /local/share/lisp
or in ~/src/common/lisp or elsewhere).

Notably, since packaging it's rather a mess, I have a "LOADER" logical
host name where I keep one file per package that need complex loading
sequences. For now, I have:

/home/pascal/src/common/lisp/loaders/aima.lisp
/home/pascal/src/common/lisp/loaders/cclan.lisp
/home/pascal/src/common/lisp/loaders/clocc.lisp
/home/pascal/src/common/lisp/loaders/clx.lisp
/home/pascal/src/common/lisp/loaders/norvig-graph.lisp
/home/pascal/src/common/lisp/loaders/norvig.lisp
/home/pascal/src/common/lisp/loaders/portableaserve.lisp
/home/pascal/src/common/lisp/loaders/pseudo.lisp
/home/pascal/src/common/lisp/loaders/uffi.lisp

All these files are loaded with:

(load "LOADER:AIMA") ;; or
(load "LOADER:CCLAN") ;; etc

My own code does not need that. I have a
COM.INFORMATIMAGO.COMMON-LISP.PACKAGE package which defines a
DECLARE-PACKAGE macro. This macro declares a package. This includes
loading the package depended on, adding a nickname to the packages
used under this nickname, defining the package, and going into it
(with IN-PACKAGE).

;; Improvements over DEFPACKAGE include:
;;
;; - allow to specify packages refered to (used) while not
;; importing ("inheriting") any of it symbols; (:USE package)
;;
;; - allow to do it while renaming (nicknaming) the package;
;; (:USE package :AS nickname)
;;
;; - allow to specify that all symbols exported by a given package
;; are to be imported. (:FROM package :IMPORT :ALL)
;;
;; The first and second points help declare package dependencies without
;; using the deprecated REQUIRE, PROVIDE and *MODULES*. This is done
;; by implementing a systematic way to load packages (from a PACKAGE:
;; logical host with logical pathname translations).
;;
;; The last point, along with the (:FROM package :IMPORT symbol...) form
;; correct the naming of the :USE clause of DEFPACKAGE.


Therefore when I load one of my package, for example with:

(load "PACKAGE:COM;INFORMATIMAGO;COMMON-LISP;GEEK-DAY")

it loads automatically all the needed packages that are not already
loaded (note that it does not use the deprecated REQUIRE and PROVIDE).

I can then call:

(COM.INFORMATIMAGO.COMMON-LISP.GEEK-DAY:MAIN)

to run the program.


> - How do you handle the existence of both asdf and defsystem?

Use one or the other depending on what the given package asks me to
use. I'm not using them for my own code. Thanks to my
DECLARE-PACKAGE macro, I can keep a file/package based development
process, and compile each package separately, with a makefile and
dependencies (documented in the DECLARE-PACKAGE macro as (:USE) or
(:FROM :IMPORT) clauses) built automatically from the sources. I've
got no use for separately noted dependencies in a .asdf or .system
file.


> - How do you handle multiple implementations wrt fasl file
> generation and storage?

For now, I avoid conflicting implementations.
I keep clisp and sbcl, and avoid cmucl.

I could change the rules in my ~/src/common/lisp/Makefile.rules to
generate object files with names depending on the compiler, and have
different logical pathname translations for my PACKAGE logical host to
map the object files.


> I know about common-lisp-controller, but it has the drawback that it
> is only for debian. Are there other, similar tools out there?
>
> Regards,
> Mario.


--
__Pascal_Bourguignon__ http://www.informatimago.com/
----------------------------------------------------------------------
Do not adjust your mind, there is a fault in reality.

0 new messages