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

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

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello Faré, It took some time but I finally had a moment to look at the issues. Faré wrote:
(1) it uses the c-l-c version of asdf and not the ecl-provided one from
I almost fixed the 'official' asdf to support all the features the ecl provided one has. I think having a 'special' asdf for ecl is asking for compatibility problems.
(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
This after some searching turns out to be caused because common-lisp-controller.lisp uses the function 'compile-file'. As the clc enabled ecl includes this it causes these messages:
;;; Loading #P"/usr/lib/ecl/cmp.fas" ;;; Loading #P"/usr/lib/ecl/sysfun.lsp"
I'm currently investigation how to fix this.
(3) compiling configuration files everytime can be a performance issue, in addition to requiring to load the compiler.
I'm not so certain what configuration files you're referring to here. Groetjes, Peter - -- signature -at- pvaneynd.mailworks.org http://www.livejournal.com/users/pvaneynd/ "God, root, what is difference?" Pitr | "God is more forgiving." Dave Aronson| -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHA0EV11ldN0tyliURAh9CAJ9kvvsI0PXRHNI+JOCnW2U0Q9U1cACgyaSs CCYgIep6DCR0Ag1xPVzOZy8= =STi4 -----END PGP SIGNATURE-----

Dear Peter, On 03/10/2007, Peter Van Eynde <pvaneynd@mailworks.org> wrote:
It took some time but I finally had a moment to look at the issues. Thanks!
Faré wrote:
(1) it uses the c-l-c version of asdf and not the ecl-provided one from
I almost fixed the 'official' asdf to support all the features the ecl provided one has. I think having a 'special' asdf for ecl is asking for compatibility problems.
That's a valid fix indeed. Now introducing maintenance problems instead :-)
(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
This after some searching turns out to be caused because common-lisp-controller.lisp uses the function 'compile-file'. As the clc enabled ecl includes this it causes these messages:
;;; Loading #P"/usr/lib/ecl/cmp.fas" ;;; Loading #P"/usr/lib/ecl/sysfun.lsp"
I'm currently investigation how to fix this.
Can't you use a :verbose nil option when loading these files, and/or set *load-verbose* to nil?
(3) compiling configuration files everytime can be a performance issue, in addition to requiring to load the compiler.
I'm not so certain what configuration files you're referring to here.
I admit I don't remember anymore :-( Maybe I was thinking of sysfun.lsp. Maybe tracing compile-file will tell you. <subliminal>cl-launch</subliminal> [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] To this, I shall add one more example: the victim controls the torturer, becauses if the victim screams very loudly at a particular method of torture, this is the method the torturer will select to use. -- Ayn Rand, expounding behaviorist pseudo-psychology, in "Philosophy: Who Needs It?", "The Stimulus and the Response"
participants (2)
-
"Faré"
-
Peter Van Eynde