Source
(defmethod load-tal ((generator file-system-generator) (name pathname))
(let ((file-name (template-truename generator name)))
(assert file-name
(name)
"No template named ~S found." name)
(unless (gethash file-name *tal-templates*)
(setf (gethash file-name *tal-templates*) (make-tal-template :last-load-time 0
:function nil
:file-name file-name)))
(lambda (environment generator)
(let ((template (gethash file-name *tal-templates*))
(file-write-date (file-write-date file-name)))
(when (or (not (cachep generator))
(< (tal-template.last-load-time template) file-write-date))
(setf
(tal-template.function template) (compile nil (preprocess-tal generator file-name))
(tal-template.last-load-time template) file-write-date))
(funcall (tal-template.function template) environment generator)))))Source Context