Package: guix-patches;
Reported by: Maxime Devos <maximedevos <at> telenet.be>
Date: Fri, 30 Apr 2021 14:37:01 UTC
Severity: normal
Tags: moreinfo, patch
View this message in rfc822 format
From: Xinglu Chen <public <at> yoctocell.xyz> To: Maxime Devos <maximedevos <at> telenet.be>, 48120 <at> debbugs.gnu.org Subject: [bug#48120] [PATCH] Teach etc/committer.scm.in some stuff Date: Sun, 09 May 2021 20:34:19 +0200
On Thu, May 06 2021, Maxime Devos wrote: > New patch series, handling more edge cases. > > It needs some changes in how it wraps lines now there > is a break-string procedure, but I don't have time to > work on this currently so I'll just submit it as-is for now. I don’t think I am qualified to review all of this, but it seems to work after I made some minor fixes. I just used ‘cc-for-target’ instead of hardcoding ‘gcc’ on a random package, this is what I got. --8<---------------cut here---------------start------------->8--- gnu: eigensoft: Use the C cross-compiler. * gnu/packages/bioinformatics.scm (eigensoft) [arguments]<#:make-flags>: Use the C cross-compiler, instead of hardcoding "gcc". --8<---------------cut here---------------end--------------->8--- > +(define (keyword-list->alist kwlist) > + (match kwlist > + (() '()) > + (((? keyword? k) object . rest) > + `((,k . ,object) . ,(keyword-list->alist rest))))) > + > +(define (pairwise-foreach-keyword proc . arguments) > + "Apply PROC with each keyword argument and corresponding values > +in ARGUMENTS. If a value is not present in a argument, pass #f instead." > + (let* ((alists (map keyword-list->alist arguments)) > + (keywords (delete-duplicates > + (apply append (map (cut map car <>) alists)) ‘append-map’ instead of (apply append (map ...) ...) ? > + eq?))) > + (for-each (lambda (keyword) > + (apply proc keyword > + (map (cut assoc-ref <> keyword) alists))) > + keywords))) > + > > [...] > > @@ -207,6 +263,14 @@ corresponding to the top-level definition containing the staged changes." > (() '()) > ((first . rest) > (map cadadr first)))) > + ;; Like get-values, but also allow quote and do not treat > + ;; the value of the field as an alist. > + (define (get-values/list expr field) > + (match ((sxpath `(// ,field ,(node-or (sxpath '(quasiquote)) > + (sxpath '(quote))))) expr) > + (() '()) > + ((first . rest) > + (second first)))) > (define (listify items) > (match items > ((one) one) > @@ -245,6 +309,34 @@ corresponding to the top-level definition containing the staged changes." > (listify removed) > (listify added)))))))))) > '(inputs propagated-inputs native-inputs))) I think the parentheses are mismatched here, {M-x check-parens} should complain. --8<---------------cut here---------------start------------->8--- ~/src/guix $ guile etc/committer.scm.in ;;; note: source file /home/yoctocell/src/guix/etc/committer.scm ;;; newer than compiled /home/yoctocell/.cache/guile/ccache/3.0-LE-8-4.4/home/yoctocell/src/guix/etc/committer.scm.go ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /home/yoctocell/src/guix/etc/committer.scm ;;; WARNING: compilation of /home/yoctocell/src/guix/etc/committer.scm failed: ;;; In procedure read_inner_expression: etc/committer.scm:465:47: unexpected ")" Backtrace: 4 (primitive-load "/home/yoctocell/src/guix/etc/committer.scm") In ice-9/eval.scm: 298:34 3 (_ #<directory (guile-user) 7efdd29e9c80>) 196:27 2 (_ #<directory (guile-user) 7efdd29e9c80>) 223:20 1 (proc #<directory (guile-user) 7efdd29e9c80>) In unknown file: 0 (%resolve-variable (7 . get-values/no-unquote) #<directory (guile-user) 7efdd29e9c80>) ERROR: In procedure %resolve-variable: Unbound variable: get-values/no-unquote --8<---------------cut here---------------end--------------->8--- > From 5f0313c01121a0a1e7f39f447425b5a8b70fb8c0 Mon Sep 17 00:00:00 2001 > From: Maxime Devos <maximedevos <at> telenet.be> > Date: Sat, 1 May 2021 12:19:05 +0200 > Subject: [PATCH 11/11] etc: committer: Handle substitute-keyword-arguments. > > * etc/committer.scm.in > (keyword-list->alist): Rename to ... > (keyword-list->alist/list): ..., and document the input format. > > [...] > > -(define (keyword-list->alist kwlist) > +;; Input: a list of keywords and the corresponding values, > +;; without an exterior quote, quasiquote or list. > +(define (keyword-list->alist/list kwlist) > (match kwlist > (() '()) > (((? keyword? k) object . rest) > `((,k . ,object) . ,(keyword-list->alist rest))) ^^^^^^^^^^^^^^^^^^^ ‘keyword-list->alist/list’
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.