packages: Fix 'base32' used before definition warning.
Before this change, compiling the module would emit the following message: "guix/packages.scm:213:25: warning: macro `base32' used before definition". * guix/packages.scm (define-compile-time-decoder) (base32, base64): Move definitions to the top of the module.
This commit is contained in:
parent
58780f844b
commit
8152fd1af5
1 changed files with 19 additions and 19 deletions
|
@ -167,6 +167,25 @@ (define-module (guix packages)
|
||||||
;;;
|
;;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
(define-syntax-rule (define-compile-time-decoder name string->bytevector)
|
||||||
|
"Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time
|
||||||
|
if possible."
|
||||||
|
(define-syntax name
|
||||||
|
(lambda (s)
|
||||||
|
"Return the bytevector corresponding to the given textual
|
||||||
|
representation."
|
||||||
|
(syntax-case s ()
|
||||||
|
((_ str)
|
||||||
|
(string? (syntax->datum #'str))
|
||||||
|
;; A literal string: do the conversion at expansion time.
|
||||||
|
(with-syntax ((bv (string->bytevector (syntax->datum #'str))))
|
||||||
|
#''bv))
|
||||||
|
((_ str)
|
||||||
|
#'(string->bytevector str))))))
|
||||||
|
|
||||||
|
(define-compile-time-decoder base32 nix-base32-string->bytevector)
|
||||||
|
(define-compile-time-decoder base64 base64-decode)
|
||||||
|
|
||||||
;; Crytographic content hash.
|
;; Crytographic content hash.
|
||||||
(define-immutable-record-type <content-hash>
|
(define-immutable-record-type <content-hash>
|
||||||
(%content-hash algorithm value)
|
(%content-hash algorithm value)
|
||||||
|
@ -302,25 +321,6 @@ (define (print-origin origin port)
|
||||||
|
|
||||||
(set-record-type-printer! <origin> print-origin)
|
(set-record-type-printer! <origin> print-origin)
|
||||||
|
|
||||||
(define-syntax-rule (define-compile-time-decoder name string->bytevector)
|
|
||||||
"Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time
|
|
||||||
if possible."
|
|
||||||
(define-syntax name
|
|
||||||
(lambda (s)
|
|
||||||
"Return the bytevector corresponding to the given textual
|
|
||||||
representation."
|
|
||||||
(syntax-case s ()
|
|
||||||
((_ str)
|
|
||||||
(string? (syntax->datum #'str))
|
|
||||||
;; A literal string: do the conversion at expansion time.
|
|
||||||
(with-syntax ((bv (string->bytevector (syntax->datum #'str))))
|
|
||||||
#''bv))
|
|
||||||
((_ str)
|
|
||||||
#'(string->bytevector str))))))
|
|
||||||
|
|
||||||
(define-compile-time-decoder base32 nix-base32-string->bytevector)
|
|
||||||
(define-compile-time-decoder base64 base64-decode)
|
|
||||||
|
|
||||||
(define (origin-actual-file-name origin)
|
(define (origin-actual-file-name origin)
|
||||||
"Return the file name of ORIGIN, either its 'file-name' field or the file
|
"Return the file name of ORIGIN, either its 'file-name' field or the file
|
||||||
name of its URI."
|
name of its URI."
|
||||||
|
|
Loading…
Reference in a new issue