[cl-debian] Bug#382430: c-l-c installation of ecl does things wrong

Faré fahree at gmail.com
Thu Aug 10 21:44:31 UTC 2006


Package: ecl
Version: 0.9i-2
Severity: normal

the c-l-c installation of ecl does a few wrong things:

(1) it uses the c-l-c version of asdf and not the ecl-provided one from
        /usr/lib/ecl/asdf.fas
 as a result it fails to include the make-build extension from ECL sources
        ecl-0.9i/contrib/asdf/asdf-ecl.lisp
 Solution (a) would be to (require 'asdf) from the c-l-c compiled image
 and not compile it in the c-l-c binary for ecl.
 Solution (b) would be to include asdf-ecl.lisp in the ecl package,
 and recompile it together with c-l-c's asdf.lisp when installing c-l-c.

(2) it somehow gets cmp.fas and sysfun.lsp to systematically load verbosely
 in a way that isn't hushed up by flag -q resulting in an unremovable banner
;;; Loading #P"/usr/lib/ecl/cmp.fas"
;;; Loading #P"/usr/lib/ecl/sysfun.lsp"
 which is quite annoying for programs that need produce controlled output.
 This is probably caused by the runtime loading of /etc/lispconfig.lisp
 by c-l-c. This banner should not be printed by quiet ecl scripts.
 Solution (2a) is to explicitly bind *load-verbose* to nil
 when loading /etc/lispconfig.lisp.

 Solution (2b) is to modify the c-l-c ecl startup to somehow hook
 the value of *load-verbose* on the -q flag. However, this requires
 modifying or overriding code from ecl-0.9i/src/lsp/cmdline.lsp and
 maintaining the result. Ouch.
 Solution (2c) is to hook into ecl's loading of a user resource file
 and replace it with the loading of a system resource file, say
        /etc/ecl/rc.lisp
 that in turn loads /etc/lispconfig.lisp then the user resource file.
 We would just prepend that path to *lisp-init-file-list* from
 install-clc.lisp, and writing the proper default code in /etc/ecl/rc.lisp
 Thus the usual parsing of -q and -norc applies to clc's ecl.

(3) compiling configuration files everytime can be a performance issue,
 in addition to requiring to load the compiler. We could instead have a
 mechanism such as cl-launch's compile-and-load-file to only recompile
 when needed (SLIME's doesn't try hard enough for ECL), and put
 c-l-c cached .fas variants of the files in *lisp-init-file-list* before
 the source variants. Also, we want it to not require users to do anything
 special for the fasl to remain in synch with their lisp configuration.
 Any hackish code should come precompiled as part of install-clc.lisp
 so as to avoid requiring costly recompilation at runtime when things change.
 Solution (3a) would be to only do that for the system-wide file, and
 have that system-wide file include provisions for recompiling itself
 and then loading the compiled contents, and do the same for
 lispconfig.lisp and user files. A bit of a hack.
 Solution (3b) would be to modify or override cmdline.lsp to do the
 compile-and-load instead of load. Costly to maintain.

(4) If we use a compile-and-load-file strategy for (3), then we might
 share code with cl-launch. This would mean having a dependency on
 cl-launch. It also means I should change cl-launch to install its file in
        /usr/share/common-lisp/source/cl-launch
 instead of
        /usr/share/common-lisp/cl-launch
 and produce a cl-launch.asd. I'll do that for cl-launch 1.85.

In any cases, problems (1) and (2) both interact badly with cl-launch,
and although cl-launch 1.84 now fully supports ECL, debian users need
        export ECL=/usr/lib/ecl/ecl-original
so as to use cl-launch with ECL. I should probably include detection of
that executable in cl-launch as a workaround to current breakage, since
I already kluge a lot of my way to supporting ECL in cl-launch.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16.9-blefuscu
Locale: LANG=en_US.iso-8859-1, LC_CTYPE=en_US.iso-8859-1
(charmap=ISO-8859-1) (ignored: LC_ALL set to e
n_US.iso-8859-1)

Versions of packages ecl depends on:
ii  common-lisp-controller    6.1            This is a Common Lisp source and c
ii  gcc-4.1                   4.1.1-9        The GNU C compiler
ii  libc6                     2.3.6-16       GNU C Library: Shared libraries
ii  libgc-dev                 1:6.7-2        conservative garbage collector for
ii  libgc1c2                  1:6.7-2        conservative garbage collector for
ii  libgmp3-dev               2:4.2.1+dfsg-3 Multiprecision arithmetic library
ii  libgmp3c2                 2:4.2.1+dfsg-3 Multiprecision arithmetic library
ii  libncurses5-dev           5.5-2          Developer's libraries and docs for

ecl recommends no packages.

-- no debconf information





More information about the Cl-debian mailing list