[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-guile 7563473 167/284: Guile: configurable warning
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-guile 7563473 167/284: Guile: configurable warning level |
Date: |
Sun, 1 Aug 2021 18:29:38 -0400 (EDT) |
branch: elpa/geiser-guile
commit 75634733f322e856c8608c1adff0fb7df9edb06d
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Guile: configurable warning level
---
geiser/emacs.scm | 16 +++++++++++-----
geiser/evaluation.scm | 40 +++++++++++++++++++++++++++++++---------
2 files changed, 42 insertions(+), 14 deletions(-)
diff --git a/geiser/emacs.scm b/geiser/emacs.scm
index 3b6f49c..af1a052 100644
--- a/geiser/emacs.scm
+++ b/geiser/emacs.scm
@@ -10,9 +10,7 @@
;; Start date: Sun Feb 08, 2009 18:39
(define-module (geiser emacs)
- #:re-export (ge:eval
- ge:compile
- ge:macroexpand
+ #:re-export (ge:macroexpand
ge:compile-file
ge:load-file
ge:autodoc
@@ -26,8 +24,10 @@
ge:callers
ge:callees
ge:find-file)
- #:export (ge:no-values)
- #:export (ge:newline)
+ #:export (ge:compile
+ ge:no-values
+ ge:newline)
+ #:use-module (ice-9 match)
#:use-module (geiser evaluation)
#:use-module ((geiser modules) :renamer (symbol-prefix-proc 'ge:))
#:use-module ((geiser completion) :renamer (symbol-prefix-proc 'ge:))
@@ -37,4 +37,10 @@
(define (ge:no-values) (values))
(define ge:newline newline)
+(define (ge:compile form mod)
+ (match form
+ (`((@ (geiser emacs) . ,_) . ,_) (compile/no-warns form mod))
+ (_ (compile/warns form mod))))
+
+
;;; emacs.scm ends here
diff --git a/geiser/evaluation.scm b/geiser/evaluation.scm
index aba0cfe..6b8df8f 100644
--- a/geiser/evaluation.scm
+++ b/geiser/evaluation.scm
@@ -10,11 +10,12 @@
;; Start date: Mon Mar 02, 2009 02:46
(define-module (geiser evaluation)
- #:export (ge:eval
- ge:compile
+ #:export (compile/warns
+ compile/no-warns
ge:macroexpand
ge:compile-file
- ge:load-file)
+ ge:load-file
+ ge:set-warnings)
#:use-module (geiser modules)
#:use-module (srfi srfi-1)
#:use-module (language tree-il)
@@ -39,7 +40,26 @@
(write (list (cons 'result result) (cons 'output output)))
(newline))
-(define compile-opts '(#:warnings (arity-mismatch unbound-variable)))
+(define compile-opts (make-fluid))
+(define compile-file-opts (make-fluid))
+
+(define default-warnings '(arity-mismatch unbound-variable))
+(define verbose-warnings `(unused-variable ,@default-warnings))
+
+(define (ge:set-warnings wl)
+ (let* ((warns (cond ((list? wl) wl)
+ ((symbol? wl) (case wl
+ ((none nil null) '())
+ ((medium default) default-warnings)
+ ((high verbose) verbose-warnings)))
+ (else '())))
+ (fwarns (if (memq 'unused-variable warns)
+ (cons 'unused-toplevel warns)
+ warns)))
+ (fluid-set! compile-opts (list #:warnings warns))
+ (fluid-set! compile-file-opts (list #:warnings fwarns))))
+
+(ge:set-warnings 'none)
(define (call-with-result thunk)
(letrec* ((result #f)
@@ -50,7 +70,11 @@
(set! result (thunk)))))))
(write-result result output)))
-(define (ge:compile form module-name)
+(define (compile/no-warns form module)
+ (with-fluids ((compile-opts '()))
+ (compile/warns form module)))
+
+(define (compile/warns form module-name)
(let* ((module (or (find-module module-name) (current-module)))
(ev (lambda ()
(call-with-values
@@ -58,21 +82,19 @@
(let* ((o (compile form
#:to 'objcode
#:env module
- #:opts compile-opts))
+ #:opts (fluid-ref compile-opts)))
(thunk (make-program o)))
(start-stack 'geiser-evaluation-stack
(eval `(,thunk) module))))
(lambda vs (map object->string vs))))))
(call-with-result ev)))
-(define ge:eval ge:compile)
-
(define (ge:compile-file path)
(call-with-result
(lambda ()
(let ((cr (compile-file path
#:canonicalization 'absolute
- #:opts compile-opts)))
+ #:opts (fluid-ref compile-file-opts))))
(and cr
(list (object->string (save-module-excursion
(lambda () (load-compiled cr))))))))))
- [nongnu] elpa/geiser-guile 3bf45a4 249/284: Clean up indentation rules, (continued)
- [nongnu] elpa/geiser-guile 3bf45a4 249/284: Clean up indentation rules, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 9d0d38a 237/284: Guile: augmenting %load-compiled-path too, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile a1078b9 254/284: Fixing guile 2.2 compatibility, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ef3fb34 264/284: Really fix #252, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 8bf1a8b 268/284: Fix indentation, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ba4c1a9 276/284: adjustments to scheme load path, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 700ac98 282/284: Use new implementation extension declarator., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 5e2c874 139/284: Golfing., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 06d7cf5 144/284: Guile: taking advantage of the patterns property in macro transformers., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 3a80209 164/284: Guile: evaluation warnings, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7563473 167/284: Guile: configurable warning level,
Philip Kaludercic <=
- [nongnu] elpa/geiser-guile 17ebbec 183/284: Autodoc: fix for improper macro arglists scanning, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 04fd67f 185/284: Always fallback to edit-module in M-., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile cd2cfae 190/284: Guile: better meta-command args handling, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile c8dcc24 202/284: Make do with a single connection, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile fef0d8a 209/284: Document browser improvements, and Racket using them, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 190290b 213/284: Guile: fixes for documentation display, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 6d69176 216/284: No more interning in the scheme reader, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile b9a8980 224/284: Guile: what if i do what i meant to do?, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile d6fca59 232/284: guile: lambda* indentation, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 15af81d 247/284: Add 'geiser-syntax--simple-keywords', Philip Kaludercic, 2021/08/01