From: ···········@gmail.com
Subject: Deploying application with SBCL, ASDF
Date: 
Message-ID: <1159403786.736357.210650@d34g2000cwd.googlegroups.com>
Hi all,

Typically, how do people deploy their app if one wants to use asdf to
manage their files?

I notice that Edi usually has a load.lisp for his libraries, so you
don't necessary need asdf.

But I have quite a number of files and asdf is a great tool to manage
the dependency for my project.

Since I don't want to distribute the *.lisp files on the production
system, I remove all the *.lisp, leaving only the *.fasl files on
/usr/local/lib/sbcl/myapp/ (where I installed the app)

However, when I tried to start it, asdf will issue a lot of warnings
since it's trying to determine if the *.fasl files need to be
recompile.

Question:

- Is there a way to have asdf generate a load.lisp for a package like
those found in Ediware?

- How to suppress asdf from comparing the *.lisp and *.fasl and just
load the *.fasl in order?

Below are my start scripts. Note that I have built a base core for
libraries that I use (cl-ppcre and etc).

I didn't build a complete core including my appliation module because
I update it often and I just want to distribute the *.fasl to the
production system and reload it on the fly, instead of building a new
core each time my application is updated.

Thanks,
fungsin


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; startapp.sh

#!/bin/sh

/usr/local/bin/sbcl --noinform \
--core /usr/local/lib/sbcl/myapp/base-libaries.core \
--userinit /usr/local/lib/sbcl/myapp/start.cl

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; start.cl

(require :linedit)
(funcall (intern "INSTALL-REPL" :linedit))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

WARNING:
   Missing FILE-WRITE-DATE for
   #P"/usr/local/lib/sbcl/uffi/src/objects.lisp": treating operation
   #<ASDF:COMPILE-OP NIL {BAC8F49}> on component
   #<ASDF:CL-SOURCE-FILE "objects" {AC25FE1}> as done.
WARNING:
   Missing FILE-WRITE-DATE for
   #P"/usr/local/lib/sbcl/uffi/src/aggregates.lisp": treating operation
   #<ASDF:COMPILE-OP NIL {BAC8F49}> on component
   #<ASDF:CL-SOURCE-FILE "aggregates" {AC25FF1}> as done.
WARNING:
   Missing FILE-WRITE-DATE for
   #P"/usr/local/lib/sbcl/uffi/src/functions.lisp": treating operation
   #<ASDF:COMPILE-OP NIL {BAC8F49}> on component
   #<ASDF:CL-SOURCE-FILE "functions" {AC26011}> as done.
WARNING:
   Missing FILE-WRITE-DATE for
   #P"/usr/local/lib/sbcl/uffi/src/strings.lisp": treating operation
   #<ASDF:COMPILE-OP NIL {BAC8F49}> on component
   #<ASDF:CL-SOURCE-FILE "strings" {AC26001}> as done.

......
From: Pascal Bourguignon
Subject: Re: Deploying application with SBCL, ASDF
Date: 
Message-ID: <87slicwply.fsf@thalassa.informatimago.com>
···········@gmail.com writes:

> However, when I tried to start it, asdf will issue a lot of warnings
> since it's trying to determine if the *.fasl files need to be
> recompile.
>
> Question:
>
> - Is there a way to have asdf generate a load.lisp for a package like
> those found in Ediware?

It must be possible to write some methods in asdf to print commands to
compile or load the files instead of executing it.


> - How to suppress asdf from comparing the *.lisp and *.fasl and just
> load the *.fasl in order?

I'd browse the asdf manual, and read asdf sources...

> Below are my start scripts. Note that I have built a base core for
> libraries that I use (cl-ppcre and etc).
>
> I didn't build a complete core including my appliation module because
> I update it often and I just want to distribute the *.fasl to the
> production system and reload it on the fly, instead of building a new
> core each time my application is updated.

But instead of distributing the application as .fasl, I'd just
generate an executable image.  It's bigger but you can compress it and
with nowadays bandwidths and amovible supports size, it shouldn't be a
problem.  

-rw-r--r--    1 pjb      pjb           58M 2006-09-19 15:08 wizards.core
-rw-r--r--    1 pjb      pjb           14M 2006-09-28 07:00 wizards.core.bz2
-rw-r--r--    1 pjb      pjb           16M 2006-09-28 07:00 wizards.core.gz

clisp can even execute directly gziped images, if you don't generate
an executable image.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
        Un chat errant
se soulage
        dans le jardin d'hiver
                                        Shiki