[cl-debian] Anyone willing to package Cedilla?

Peter Van Eynde cl-debian at pvaneynd.mailworks.org
Fri Sep 16 03:35:37 UTC 2005


Hello,

sorry to reply so late, the clc bug had me in its grip

On Tuesday 30 August 2005 09:26, René van Bevern wrote:
> > More generally, shouldn't the CL-Debian project start thinking about
> > deployment of applications?  It seems completely oriented to libraries
> > right now.
>
> This is where implementations put some restrictions. Deploying Common
> Lisp applications is generally difficult.

I've put some numbers to the different options (for clisp and for cedilla that 
is) (time is the best of 3 itterations after one warm-up)

- Using clc-require with a script (like it is done now)
 $ time /usr/bin/cedilla
Cedilla: Wrong number of arguments -- try "cedilla -?" for help.

real    0m1.530s
user    0m1.296s
sys     0m0.160s

- Concatenated all the fasls (in the right order) into one:
$ time clisp -ansi -q -q -x '(load "c.fas")' -x '(cedilla:cedilla-main)'
T
Cedilla: Wrong number of arguments -- try "cedilla -?" for help.

real    0m1.255s
user    0m1.004s
sys     0m0.048s

- Dumping an image after loading the fasls:

$ time clisp -ansi -q -q -M c.mem
Cedilla: Wrong number of arguments -- try "cedilla -?" for help.

real    0m0.137s
user    0m0.056s
sys     0m0.028s

So the only real improvement over clc-require is to dump a memory image.

> b) One could use the cl-libraries as build-depends, compile the
>    application and dump an image to be loaded when the application is
>    run. This is very fast, but if one of the cl-libraries has a real
>    bug and it is fixed, the delivered application needs to be rebuilt
>    to carry its new version in the dumped image. mcvs uses this
>    approach and even delivers a whole clisp in its
>    package. Applications delivered this way get huge in size, let
>    alone the fact that you can not always load a dumped image that
>    depends on foreign shared library code.


We could enhance clc to generate dependency information when building an 
application and when installing libraries remove all stuff depending on them.

But the problem of foreign libraries remain, and in general the creation of a 
dumped image is difficult at best.

I propose that for the moment Common Lisp applications dump manually: they 
will have a 'natural' implementation anyway so writing non-portable code is 
no problem.

I will try to enhance clc to export a function writing  the dependency 
information  and nuking the cache directory when installing a library that 
depends on it.

If we detect patterns of usage after a while we could code that up.

With the dumping of images cedilla would be competitive with the startup time 
of other utilities:

$ time groff  /dev/null

real    0m0.161s
user    0m0.084s
sys     0m0.016s

Comments?

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| 



More information about the Cl-debian mailing list