1 diff --git a/module/system/base/compile.scm b/module/system/base/compile.scm
2 index c110512f0..d5d63a9e0 100644
3 --- a/module/system/base/compile.scm
4 +++ b/module/system/base/compile.scm
6 (and (false-if-exception (ensure-directory (dirname f)))
9 +(define *do-extension-dispatch* #f)
10 +(define *extension-dispatches* '((("py") . python) (("pl") . prolog)))
12 +(define (default-language file)
13 + (define default (current-language))
14 + (if *do-extension-dispatch*
15 + (let ((ext (car (reverse (string-split file #\.)))))
16 + (let lp ((l *extension-dispatches*))
18 + (if (member ext (caar l))
20 + (if (language? default)
21 + (if (eq? (language-name default) r)
30 (define* (compile-file file #:key
32 - (from (current-language))
33 + (from (default-language file))
35 (env (default-environment from))
37 diff --git a/module/system/base/message.scm b/module/system/base/message.scm
38 index 979291c1e..c0d639235 100644
39 --- a/module/system/base/message.scm
40 +++ b/module/system/base/message.scm
42 warning-type? warning-type-name warning-type-description
43 warning-type-printer lookup-warning-type
52 (description warning-type-description)
53 (printer warning-type-printer))
55 +(define %dont-warn-list '())
56 (define %warning-types
57 ;; List of known warning types.
61 "report possibly unbound variables"
62 ,(lambda (port loc name)
63 - (emit port "~A: warning: possibly unbound variable `~A'~%"
65 + (if (not (member name %dont-warn-list))
66 + (emit port "~A: warning: possibly unbound variable `~A'~%"
69 (macro-use-before-definition
70 "report possibly mis-use of macros before they are defined"