compile: Let compiler warnings through during the load phase.

Previous warnings and errors such as those raised by (guix records)
would not be displayed during the load phase.

* guix/build/compile.scm (load-files): Remove 'parameterize' around
'resolve-interface' call.
(compile-files)[build]: Move 'with-fluids' for *CURRENT-WARNING-PREFIX*
to...
<top level>: ... here.
This commit is contained in:
Ludovic Courtès 2019-01-22 12:01:49 +01:00
parent 2d04076332
commit c498aaaf11
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -97,8 +97,7 @@ (define total
(report-load file total completed)
(format debug-port "~%loading '~a'...~%" file)
(parameterize ((current-warning-port debug-port))
(resolve-interface (file-name->module-name file)))
(resolve-interface (file-name->module-name file))
(loop files (+ 1 completed)))))))
@ -158,37 +157,38 @@ (define (build file)
;; Exit as soon as something goes wrong.
(exit-on-exception
(with-fluids ((*current-warning-prefix* ""))
(with-target host
(lambda ()
(let ((relative (relative-file source-directory file)))
(compile-file file
#:output-file (string-append build-directory "/"
(scm->go relative))
#:opts (append warning-options
(optimization-options relative))))))))
(with-target host
(lambda ()
(let ((relative (relative-file source-directory file)))
(compile-file file
#:output-file (string-append build-directory "/"
(scm->go relative))
#:opts (append warning-options
(optimization-options relative)))))))
(with-mutex progress-lock
(set! completed (+ 1 completed))))
(with-augmented-search-path %load-path source-directory
(with-augmented-search-path %load-compiled-path build-directory
;; FIXME: To work around <https://bugs.gnu.org/15602>, we first load all
;; of FILES.
(load-files source-directory files
#:report-load report-load
#:debug-port debug-port)
(with-fluids ((*current-warning-prefix* ""))
;; Make sure compilation related modules are loaded before starting to
;; compile files in parallel.
(compile #f)
;; FIXME: To work around <https://bugs.gnu.org/15602>, we first load all
;; of FILES.
(load-files source-directory files
#:report-load report-load
#:debug-port debug-port)
;; XXX: Don't use too many workers to work around the insane memory
;; requirements of the compiler in Guile 2.2.2:
;; <https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00033.html>.
(n-par-for-each (min workers 8) build files)
;; Make sure compilation related modules are loaded before starting to
;; compile files in parallel.
(compile #f)
(unless (zero? total)
(report-compilation #f total total)))))
;; XXX: Don't use too many workers to work around the insane memory
;; requirements of the compiler in Guile 2.2.2:
;; <https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00033.html>.
(n-par-for-each (min workers 8) build files)
(unless (zero? total)
(report-compilation #f total total))))))
(eval-when (eval load)
(when (and (string=? "2" (major-version))