Lisp HUG Maillist Archive

Force compilation with defsystem

Hi,

Is it possible to force the compilation of certain members of a system
without any condition ?

I'm looking for a keyword like (foo :force-compile) for the member, but this
keyword does not seem to exist.

So, I tried this rules :

(:in-order-to :load foo
    (:requires (:compile foo)))
OR

(:in-order-to :compile foo
    (:caused-by (:load foo)))

but it doesn¹t work.

In fact, I simply need to systematically recompile some files because they
can be different in delivery context or in normal context (they contain #:+
and #:- expressions). But these files are members of other large systems,
it's why I would like to avoid the use of 'compile-system with the :force
argument to T.

Thanks in advance

Denis

-------------------------------------------------------
Denis Pousseur
70 rue de Wansijn
1180 Bruxelles, Belgium

Tel : 32 (0)2 219 31 09
Email :  denis.pousseur@gmail.com
Website : http://www.denispousseur.com
-------------------------------------------------------



Re: Force compilation with defsystem

Denis Pousseur wrote on Thu, 26 Jan 2012 17:25:07 +0100 20:25:

| Is it possible to force the compilation of certain members of a system
| without any condition ?

I am afraid, no.

| In fact, I simply need to systematically recompile some files because
| they can be different in delivery context or in normal context (they
| contain #:+ and #:- expressions). But these files are members of other
| large systems, it's why I would like to avoid the use of
| 'compile-system with the :force argument to T.

I would recommend using the :object-pathname option to separate binaries
depending on various features available. IMHO owing to this option, LW
defsystem is much superior to ASDF for development.

For example:

(defsystem YSTOK-LIBRARY
 (:object-pathname (lw:current-pathname
   #+(not (or Russian German debug))  "bin/"
   #+(and (not Russian) (not German) debug) "bin/debug/"
   #+(and Russian (not debug))   "bin/ru/"
   #+(and Russian debug)    "bin/debug/ru/"
   #+(and German (not debug))   "bin/de/"
   #+(and German debug)    "bin/debug/de/"))
 :members ...)

--
Sincerely,
Dmitriy Ivanov
lisp.ystok.ru


Updated at: 2020-12-10 08:37 UTC