Source
(defun make-single-fasl (system-name
&key (op (make-instance 'asdf:load-op))
output-file)
(let* ((system (asdf:find-system system-name))
(steps (asdf::traverse op system))
(output-file (or output-file
(compile-file-pathname
(make-pathname
:name (asdf:component-name system)
:defaults (asdf:component-pathname system)))))
(*buffer* (make-array 4096 :element-type '(unsigned-byte 8)
:adjustable t)))
(declare (special *buffer*))
(with-output-to-file (*fasl* output-file
:if-exists :error
:element-type '(unsigned-byte 8))
(declare (special *fasl*))
(dolist (s steps)
(process-step (car s) (cdr s) output-file)))))
Source Context