~ chicken-core (chicken-5) 7cdf0eb7dfea14998615c64e91a46c40ca1a86b3
commit 7cdf0eb7dfea14998615c64e91a46c40ca1a86b3 Author: Peter Bex <peter@more-magic.net> AuthorDate: Thu Nov 19 15:55:55 2015 +0100 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Fri Jan 1 17:08:20 2016 +1300 Error out when emitting import libraries for nonexistant modules This fixes #1188. Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/NEWS b/NEWS index 3e4e8bb4..8147af08 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,8 @@ declared types exactly. Specializations are matched from first to last to resolve ambiguities (#1214). - Compiler rewrites for char{<,>,<=,>=,=}? are now safe (#1122). + - When requesting to emit import libraries that don't exist, the + compiler now gives an error instead of quietly continuing (#1188). - Core libraries - SRFI-18: thread-join! no longer gives an error when passed a diff --git a/batch-driver.scm b/batch-driver.scm index a5fa323d..044b6715 100644 --- a/batch-driver.scm +++ b/batch-driver.scm @@ -470,6 +470,13 @@ '() ) '((##core#undefined))) ] ) + (unless (null? import-libraries) + (quit "No module definition found for import libraries to emit: ~A" + ;; ~S would be confusing: separate with a comma + (string-intersperse + (map (lambda (il) (->string (car il))) + import-libraries) ", "))) + (when (pair? compiler-syntax-statistics) (with-debugging-output 'S diff --git a/compiler.scm b/compiler.scm index c706942a..48befa61 100644 --- a/compiler.scm +++ b/compiler.scm @@ -874,6 +874,9 @@ (lambda (il) (when enable-module-registration (emit-import-lib name il)) + ;; Remove from list to avoid error + (set! import-libraries + (delete il import-libraries)) (values (reverse xs) '((##core#undefined)))))Trap