Commit 9e4c98b2 authored by mevenson@1c010e3e-69d0-11dd-93a8-456734b0d56f's avatar mevenson@1c010e3e-69d0-11dd-93a8-456734b0d56f
Browse files

Optimize the compilation of files with a large number of compilands.

Don't use DIRECTORY with a wildcard unless when compiling files unless
we know of the presence of at least one class constant ".clc" via
PROBE-FILE.
parent 7c670176
......@@ -588,12 +588,18 @@ interpreted toplevel form, non-NIL if it is 'simple enough'."
(let ((truename (probe-file (compute-classfile-name (1+ i)))))
(when truename
(push truename pathnames)
(dolist (resource (directory
(make-pathname :name (format nil "~A_*"
(pathname-name truename))
:type "clc"
:defaults truename)))
(push resource pathnames)))))
;;; XXX it would be better to just use the recorded number
;;; of class constants, but probing for the first at least
;;; makes this subjectively bearable.
(when (probe-file (make-pathname :name (format nil "~A_1" (pathname-name truename))
:type "clc"
:defaults truename))
(dolist (resource (directory
(make-pathname :name (format nil "~A_*"
(pathname-name truename))
:type "clc"
:defaults truename)))
(push resource pathnames))))))
(setf pathnames (nreverse (remove nil pathnames)))
(let ((load-file (merge-pathnames (make-pathname :type "_")
output-file)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment