[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 08/10: Wire up simplified warning levels in "guild compi
From: |
Andy Wingo |
Subject: |
[Guile-commits] 08/10: Wire up simplified warning levels in "guild compile" |
Date: |
Fri, 8 May 2020 11:13:43 -0400 (EDT) |
wingo pushed a commit to branch master
in repository guile.
commit 220934c49d2629ebf826cc377541694334f44e7e
Author: Andy Wingo <address@hidden>
AuthorDate: Fri May 8 15:58:23 2020 +0200
Wire up simplified warning levels in "guild compile"
* am/guilec (GUILE_WARNINGS):
* am/bootstrap.am (GUILE_WARNINGS): Explictly default to -W1.
* bootstrap/Makefile.am (GUILE_WARNINGS): Set to -Wnone, as the meaning
of "no -W flags" has changed to be effectively -W1.
* module/scripts/compile.scm (%options): Adapt to parse -Wnone, -W2, and
so on.
(parse-args): Default to (default-warning-level).
(show-warning-help): Add more warning help.
(compile): Pass #:warning-level.
---
am/bootstrap.am | 2 +-
am/guilec | 2 +-
bootstrap/Makefile.am | 4 ++--
module/scripts/compile.scm | 42 +++++++++++++++++++++++++++++++-----------
4 files changed, 35 insertions(+), 15 deletions(-)
diff --git a/am/bootstrap.am b/am/bootstrap.am
index 43f0f04..cc62e40 100644
--- a/am/bootstrap.am
+++ b/am/bootstrap.am
@@ -18,7 +18,7 @@
## Fifth Floor, Boston, MA 02110-1301 USA
# These variables can be set before you include bootstrap.am.
-GUILE_WARNINGS ?= -Wunbound-variable -Warity-mismatch -Wformat
+GUILE_WARNINGS ?= -W1
GUILE_OPTIMIZATIONS ?= -O2
GUILE_TARGET ?= $(host)
GUILE_BUILD_TAG ?= BOOTSTRAP
diff --git a/am/guilec b/am/guilec
index fa2054e..94a13ff 100644
--- a/am/guilec
+++ b/am/guilec
@@ -1,7 +1,7 @@
# -*- makefile -*-
GOBJECTS = $(SOURCES:%.scm=%.go) $(ELISP_SOURCES:%.el=%.go)
-GUILE_WARNINGS = -Wunbound-variable -Wmacro-use-before-definition
-Warity-mismatch -Wformat
+GUILE_WARNINGS = -W1
moddir = $(pkgdatadir)/$(GUILE_EFFECTIVE_VERSION)/$(modpath)
nobase_mod_DATA = $(SOURCES) $(ELISP_SOURCES) $(NOCOMP_SOURCES)
diff --git a/bootstrap/Makefile.am b/bootstrap/Makefile.am
index bcb22cd..ddcbfe5 100644
--- a/bootstrap/Makefile.am
+++ b/bootstrap/Makefile.am
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in.
##
## Copyright (C) 2009, 2010, 2011, 2012, 2013,
-## 2014, 2015, 2018 Free Software Foundation, Inc.
+## 2014, 2015, 2018, 2020 Free Software Foundation, Inc.
##
## This file is part of GUILE.
##
@@ -21,7 +21,7 @@
## Fifth Floor, Boston, MA 02110-1301 USA
-GUILE_WARNINGS =
+GUILE_WARNINGS = -Wnone
# Loading eval.go happens before boot and therefore before modules are
# resolved. For some reason if compiled without resolve-primitives,
# attempts to resolve primitives at boot fail; weird. Should fix this
diff --git a/module/scripts/compile.scm b/module/scripts/compile.scm
index 8dcb09b..ea6377b 100644
--- a/module/scripts/compile.scm
+++ b/module/scripts/compile.scm
@@ -30,7 +30,9 @@
(define-module (scripts compile)
#:use-module ((system base language) #:select (lookup-language))
- #:use-module ((system base compile) #:select (compile-file))
+ #:use-module ((system base compile) #:select (compile-file
+ default-warning-level
+ default-optimization-level))
#:use-module (system base target)
#:use-module (system base message)
#:use-module (system base optimize)
@@ -81,14 +83,27 @@
(option '(#\W "warn") #t #f
(lambda (opt name arg result)
- (if (string=? arg "help")
- (begin
- (show-warning-help)
- (exit 0))
- (let ((warnings (assoc-ref result 'warnings)))
- (alist-cons 'warnings
- (cons (string->symbol arg) warnings)
- (alist-delete 'warnings result))))))
+ (match arg
+ ("help"
+ (show-warning-help)
+ (exit 0))
+ ("all"
+ (alist-cons 'warning-level #t
+ (alist-delete 'warning-level result)))
+ ("none"
+ (alist-cons 'warning-level #f
+ (alist-delete 'warning-level result)))
+ ((? string->number)
+ (let ((n (string->number arg)))
+ (unless (and (exact-integer? n) (<= 0 n))
+ (fail "Bad warning level `~a'" n))
+ (alist-cons 'warning-level n
+ (alist-delete 'warning-level result))))
+ (_
+ (let ((warnings (assoc-ref result 'warnings)))
+ (alist-cons 'warnings
+ (cons (string->symbol arg) warnings)
+ (alist-delete 'warnings result)))))))
(option '(#\O "optimize") #t #f
(lambda (opt name arg result)
@@ -141,8 +156,9 @@ options."
result)))
;; default option values
- '((input-files)
+ `((input-files)
(load-path)
+ (warning-level . ,(default-warning-level))
(warnings unsupported-warning))))
(define (show-version)
@@ -159,7 +175,9 @@ There is NO WARRANTY, to the extent permitted by law.~%"))
(format #f "`~A'" (warning-type-name wt))
(warning-type-description wt)))
%warning-types)
- (format #t "~%"))
+ (format #t "~%")
+ (format #t "You may also specify warning levels as `-Wnone', `-W0`,
`-W1',~%")
+ (format #t "`-W2', `-W3', or `-Wall`. The default is `-W1'.~%"))
(define (show-optimization-help)
(format #t "The available optimizations are:~%~%")
@@ -184,6 +202,7 @@ There is NO WARRANTY, to the extent permitted by law.~%"))
(define (compile . args)
(let* ((options (parse-args args))
(help? (assoc-ref options 'help?))
+ (warning-level (assoc-ref options 'warning-level))
(compile-opts `(#:warnings
,(assoc-ref options 'warnings)
,@(append-map
@@ -266,6 +285,7 @@ Report bugs to <~A>.~%"
#:output-file output-file
#:from from
#:to to
+ #:warning-level warning-level
#:opts compile-opts))))))
input-files)))
- [Guile-commits] branch master updated (728de16 -> 4311dc9), Andy Wingo, 2020/05/08
- [Guile-commits] 06/10: Add #:optimization-level, #:warning-level compile keyword args, Andy Wingo, 2020/05/08
- [Guile-commits] 09/10: Warning and optimization levels always small integers, Andy Wingo, 2020/05/08
- [Guile-commits] 08/10: Wire up simplified warning levels in "guild compile",
Andy Wingo <=
- [Guile-commits] 02/10: Remove compilation order cache, Andy Wingo, 2020/05/08
- [Guile-commits] 01/10: Update (system base compile) header, Andy Wingo, 2020/05/08
- [Guile-commits] 04/10: Use more `match' in (system base compile), Andy Wingo, 2020/05/08
- [Guile-commits] 05/10: Rework compile-fold, Andy Wingo, 2020/05/08
- [Guile-commits] 10/10: Define new "lowering" phase in compiler, Andy Wingo, 2020/05/08
- [Guile-commits] 07/10: Add language-specific analysis pass to compiler infrastructure, Andy Wingo, 2020/05/08
- [Guile-commits] 03/10: Slight (system base compile) refactor, Andy Wingo, 2020/05/08