From 1b7dd99738f17d3e3ebc29500bc475f9dd214ba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 21 Jan 2019 15:30:14 +0100 Subject: [PATCH] deprecation: Add 'define-deprecated/alias'. * guix/deprecation.scm (define-deprecated/alias): New macro. --- guix/deprecation.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/guix/deprecation.scm b/guix/deprecation.scm index 453aad7106..8d9e42758d 100644 --- a/guix/deprecation.scm +++ b/guix/deprecation.scm @@ -20,7 +20,7 @@ (define-module (guix deprecation) #:use-module (guix i18n) #:use-module (ice-9 format) #:export (define-deprecated - without-deprecation-warnings + define-deprecated/alias deprecation-warning-port)) ;;; Commentary: @@ -87,3 +87,23 @@ (define-syntax variable (id (identifier? #'id) #'real)))))))))) + +(define-syntax-rule (define-deprecated/alias deprecated replacement) + "Define as an alias a deprecated variable, procedure, or macro, along +these lines: + + (define-deprecated/alias nix-server? store-connection?) + +where 'nix-server?' is the deprecated name for 'store-connection?'. + +This will write a deprecation warning to DEPRECATION-WARNING-PORT." + (define-syntax deprecated + (lambda (s) + (warn-about-deprecation 'deprecated (syntax-source s) + #:replacement 'replacement) + (syntax-case s () + ((_ args (... ...)) + #'(replacement args (... ...))) + (id + (identifier? #'id) + #'replacement)))))