guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/05: deprecation: Use the 'warning' procedure for diagnostics.


From: guix-commits
Subject: 05/05: deprecation: Use the 'warning' procedure for diagnostics.
Date: Mon, 3 Jun 2019 17:18:58 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 69962ab7a8e07af77a2eb466be39615d139d5cf0
Author: Ludovic Courtès <address@hidden>
Date:   Mon Jun 3 23:00:42 2019 +0200

    deprecation: Use the 'warning' procedure for diagnostics.
    
    Until now, (guix deprecation) had its own warning mechanism, which was
    inconsistent (it did not use colors, etc.)
    
    * guix/deprecation.scm (deprecation-warning-port): Remove
    (source-properties->location-string): Remove.
    (warn-about-deprecation): Use 'warning' instead of 'format'.
    (define-deprecated, define-deprecated/alias): Adjust docstring.
    * guix/channels.scm (build-from-source): Refer to 'guix-warning-port'
    instead of 'deprecation-warning-port'.
---
 guix/channels.scm    |  4 ++--
 guix/deprecation.scm | 36 +++++++++++-------------------------
 2 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/guix/channels.scm b/guix/channels.scm
index e93879e..e7278c6 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -27,7 +27,7 @@
   #:use-module (guix profiles)
   #:use-module (guix derivations)
   #:use-module (guix combinators)
-  #:use-module (guix deprecation)
+  #:use-module (guix diagnostics)
   #:use-module (guix store)
   #:use-module (guix i18n)
   #:use-module ((guix utils)
@@ -280,7 +280,7 @@ package modules under SOURCE using CORE, an instance of 
Guix."
                       ;; Disable deprecation warnings; it's OK for SCRIPT to
                       ;; use deprecated APIs and the user doesn't have to know
                       ;; about it.
-                      (parameterize ((deprecation-warning-port
+                      (parameterize ((guix-warning-port
                                       (%make-void-port "w")))
                         (primitive-load script))))))
         ;; BUILD must be a monadic procedure of at least one argument: the
diff --git a/guix/deprecation.scm b/guix/deprecation.scm
index d704e7e..468b2e9 100644
--- a/guix/deprecation.scm
+++ b/guix/deprecation.scm
@@ -18,40 +18,26 @@
 
 (define-module (guix deprecation)
   #:use-module (guix i18n)
-  #:use-module (ice-9 format)
+  #:use-module (guix diagnostics)
+  #:autoload   (guix utils) (source-properties->location)
   #:export (define-deprecated
             define-deprecated/alias
-            warn-about-deprecation
-            deprecation-warning-port))
+            warn-about-deprecation))
 
 ;;; Commentary:
 ;;;
 ;;; Provide a mechanism to mark bindings as deprecated.
 ;;;
-;;; We don't reuse (guix ui) mostly to avoid pulling in too many things.
-;;;
 ;;; Code:
 
-(define deprecation-warning-port
-  ;; Port where deprecation warnings go.
-  (make-parameter (current-error-port)))
-
-(define (source-properties->location-string properties)
-  "Return a human-friendly, GNU-standard representation of PROPERTIES, a
-source property alist."
-  (let ((file   (assq-ref properties 'filename))
-        (line   (assq-ref properties 'line))
-        (column (assq-ref properties 'column)))
-    (if (and file line column)
-        (format #f "~a:~a:~a" file (+ 1 line) column)
-        (G_ "<unknown location>"))))
-
 (define* (warn-about-deprecation variable properties
                                  #:key replacement)
-  (format (deprecation-warning-port)
-          (G_ "~a: warning: '~a' is address@hidden, use '~a' instead~]~%")
-          (source-properties->location-string properties)
-          variable replacement))
+  (let ((location (and properties (source-properties->location properties))))
+    (if replacement
+        (warning location (G_ "'~a' is deprecated, use '~a' instead~%")
+                 variable replacement)
+        (warning location (G_ "'~a' is deprecated~%")
+                 variable))))
 
 (define-syntax define-deprecated
   (lambda (s)
@@ -60,7 +46,7 @@ source property alist."
   (define-deprecated foo bar 42)
   (define-deprecated (baz x y) qux (qux y x))
 
-This will write a deprecation warning to DEPRECATION-WARNING-PORT."
+This will write a deprecation warning to GUIX-WARNING-PORT."
     (syntax-case s ()
       ((_ (proc formals ...) replacement body ...)
        #'(define-deprecated proc replacement
@@ -97,7 +83,7 @@ these lines:
 
 where 'nix-server?' is the deprecated name for 'store-connection?'.
 
-This will write a deprecation warning to DEPRECATION-WARNING-PORT."
+This will write a deprecation warning to GUIX-WARNING-PORT."
   (define-syntax deprecated
     (lambda (s)
       (warn-about-deprecation 'deprecated (syntax-source s)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]