2012-06-17 17 views
8

ho salvato questo semplice programmaCome ridurre la dimensione di un eseguibile Clozure Common Lisp?

(defun hello-world() 
    (format t "Hello, world")) 

(defun main() 
    (hello-world)) 

utilizzando ccl:save-application

(ccl:save-application "test" 
         :toplevel-function #'main 
         :prepend-kernel t 
         :purify t 
         :impurify t) 

dal Lisp REPL Clozure comune.

L'eseguibile risultante ha una dimensione di 25 M su Mac OS X. Sono consapevole che contiene il kernel Lisp e una rappresentazione in memoria del sistema Lisp. Ancora 25M sembra un po 'grande per un programma così semplice. I parametri purify e impurify non sembrano avere molto effetto.

Quali opzioni devo ridurre la dimensione dell'eseguibile? Ci sono?

+1

una discussione correlata: http://stackoverflow.com/questions/11036070/lisp-binary-size – juanitofatas

risposta

7

Non c'è molto che tu possa fare con CCL.

Una cosa potrebbe essere quella di creare un'immagine di base più piccola utilizzando una configurazione personalizzata non registrando varie informazioni di debug (arglist, documentazione, percorsi di origine, ...).

È anche possibile comprimere l'eseguibile e spedire il file compresso.

CCL AFAIK manca degli strumenti di consegna per ridurre l'applicazione - strumenti come quelli di Allegro CL e LispWorks.