diff options
Diffstat (limited to 'src/interp')
-rw-r--r-- | src/interp/nlib.lisp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/interp/nlib.lisp b/src/interp/nlib.lisp index a81d840b..1f4f913e 100644 --- a/src/interp/nlib.lisp +++ b/src/interp/nlib.lisp @@ -243,19 +243,15 @@ (setf (get fname 'compiler::fixed-args) t))) nil) -#+:AKCL -(defun compile-lib-file (fn &rest opts) - (unwind-protect - (progn - (trace (compiler::fast-link-proclaimed-type-p - :exitcond nil - :entrycond (spad-fixed-arg (car system::arglist)))) - (trace (compiler::t1defun :exitcond nil - :entrycond (spad-fixed-arg (caar system::arglist)))) - (apply #'compile-file fn opts)) - (untrace compiler::fast-link-proclaimed-type-p compiler::t1defun))) -#-:GCL -(define-function 'compile-lib-file #'compile-file) +(defun compile-lib-file (file) + (multiple-value-bind (result warning-p failure-p) + (compile-file file) + (cond ((null result) + (|systemError| (list "Generated Lisp was malformed"))) + (failure-p + (|removeFile| (namestring result)) + (|systemError| (list "Compilation of generated Lisp failed")))) + result)) ;; (RDROPITEMS filearg keys) don't delete, used in files.spad (defun rdropitems (filearg keys &aux (ctable (|getIndexTable| filearg))) |