Gentoo Archives: gentoo-dev

From: Matthew Kennedy <mkennedy@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] RFC: replacing the common-lisp-controller
Date: Wed, 18 Oct 2006 19:11:00
Message-Id: 87fydlh27o.fsf@gentoo.org
1 I'm considering replacing the common-lisp-controller system in Portage
2 with and opt-in, asdf-binary-locations approach.
3
4 The main purpose of the c-l-c is to provide a way to compile the
5 source in /usr/share/common-lisp to a user read/writable location
6 (currently the c-l-c uses /var/cache/common-lisp-controller/...).
7
8 The c-l-c also provides a way to register and unregister Common Lisp
9 implementations provided that each implementation comes with the c-l-c
10 support (usually a install-clc.lisp and a driver script for
11 installation under /usr/share/common-lisp/bin). It also provide a way
12 to register user sources (by creating a symlink from the user's source
13 into ~/.clc).
14
15 The perceived[1] problems with the c-l-c are that it is too intrusive,
16 makes debugging hard for upstream authors when problems arise and it
17 is not well understood.
18
19
20 I'm proposing that we replace the c-l-c with a light weight system
21 based on asdf-binary-locations[2]. Each Common Lisp implementation we
22 support would be essentially a vanilla build of upstream -- nothing
23 saved into the Lisp image.
24
25 Common Lisp library ebuilds (those that start with "cl-" in the
26 dev-lisp category) would record the pathname where the Common Lisp
27 system definition is installed. eg.
28
29 /usr/share/common-lisp/source/cl-ppcre/
30
31 The list of pathnames would be saved in, say, /etc/asdf-source.list
32 (one per line perhaps) and be CONFIG_PROTECT'd as usual.
33
34 If the user intends to make use of the dev-lisp/cl-* ebuilds in
35 Portage, they would include a short stub of Gentoo-provided code in
36 thier implementation initialization file (eg. ~/.sbclrc, ~/.clisprc
37 etc.) to add each of those recorded paths to ASDF:*CENTRAL-REGISTRY*.
38
39 They would then configure and load asdf-binary-locations from their
40 initialization file in order to direct compilation output to their
41 user read/writable location (eg. ~/.fasls/).
42
43 Natually there will be a Gentoo Guide XML document for these details.
44
45
46 I think this scheme is more in line with our Emacs approach in
47 portage. This has been a popular system for those who want a
48 distro-maintained Emacs build but want to use their own configuration.
49 We install Emacs libraries to /usr/share/emacs/site-lisp and maintain
50 a /usr/share/site-lisp/site-gentoo.el with the Gentoo provided
51 initialization code. This way users are not forced to use the Gentoo
52 configuration -- in fact, you have to opt-in in Emacs' case by loading
53 /usr/share/emacs/site-lisp/site-gentoo.el from your ~/.emacs.
54
55
56 Footnotes:
57 [1] from comp.lang.lisp and freenode.net #lisp
58
59 [2] http://common-lisp.net/project/cl-containers/asdf-binary-locations/
60
61 --
62 Matthew Kennedy
63 Gentoo Linux Developer (Public Key 0x401903E0)
64 --
65 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] RFC: replacing the common-lisp-controller Xavier Maillard <zedek@×××.org>