2012-06-17 13 views
8

Uratowałem ten prosty programJak zmniejszyć rozmiar pliku wykonywalnego Clozure Common Lisp?

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

(defun main() 
    (hello-world)) 

korzystając ccl:save-application

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

z Clozure Common Lisp REPL.

Wynikowy plik wykonywalny ma rozmiar 25M na Mac OS X. Rozumiem, że zawiera on jądro Lisp i reprezentację systemu Lisp w pamięci. Nadal 25M wydaje się dość duży jak na tak prosty program. Parametry purify i impurify nie wydają się mieć znacznego wpływu.

Jakie opcje mam, aby zmniejszyć rozmiar pliku wykonywalnego? Czy są jakieś?

+1

powiązany wątek: http://stackoverflow.com/questions/11036070/lisp-binary-size – juanitofatas

Odpowiedz

7

Nie można wiele zrobić z CCL.

Jedną z możliwych rzeczy może być stworzenie mniejszego obrazu podstawowego przy użyciu niestandardowej konfiguracji poprzez nie rejestrowanie różnych informacji debugowania (argumentów, dokumentacji, lokalizacji źródeł, ...).

Można również skompresować plik wykonywalny i wysłać skompresowany plik.

CCL AFAIK nie ma narzędzi dostarczających do zmniejszenia aplikacji - narzędzi takich jak Allegro CL i LispWorks.