X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Tue, 30 Jun 2020 22:10:01 +0000 Resent-Message-ID: <handler.42146.B.159355497531278 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Cc: mbakke@HIDDEN X-Debbugs-Original-To: guix-patches@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.159355497531278 (code B ref -1); Tue, 30 Jun 2020 22:10:01 +0000 Received: (at submit) by debbugs.gnu.org; 30 Jun 2020 22:09:35 +0000 Received: from localhost ([127.0.0.1]:51889 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqORa-00088Q-Ky for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:09:34 -0400 Received: from lists.gnu.org ([209.51.188.17]:57628) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqORY-00088H-4o for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:09:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58504) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <kuba@HIDDEN>) id 1jqORY-00040g-00 for guix-patches@HIDDEN; Tue, 30 Jun 2020 18:09:32 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:34672) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from <kuba@HIDDEN>) id 1jqORV-0000k5-QK for guix-patches@HIDDEN; Tue, 30 Jun 2020 18:09:31 -0400 Received: (qmail 6193 invoked by uid 1009); 1 Jul 2020 00:09:21 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.018843 secs); 30 Jun 2020 22:09:21 -0000 Received: from unknown (HELO localhost.localdomain) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 00:09:20 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Date: Wed, 1 Jul 2020 00:09:13 +0200 Message-Id: <20200630220913.14665-1-kuba@HIDDEN> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: none client-ip=37.59.186.212; envelope-from=kuba@HIDDEN; helo=pat.zlotemysli.pl X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/30 18:09:21 X-ACL-Warn: Detected OS = Linux 3.11 and newer X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) * guix/build/utils.scm (substitute, substitute*)[require-matches?]: New argument. --- Of course, this will require some changes in the build recipes. However, many of the bugs I have seen before could've been prevented by this behavior, so I believe it is worth it. I am currently running 'guix build hello' with these changes; I will send any follow-up fixes needed to this bug#. guix/build/utils.scm | 47 +++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index dc55c6745d..1bfb774c60 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018 Arun Isaac <arunisaac@HIDDEN> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@HIDDEN> ;;; Copyright © 2020 Efraim Flashner <efraim@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -747,29 +748,42 @@ PROC's result is returned." (lambda (key . args) (false-if-exception (delete-file template)))))) -(define (substitute file pattern+procs) +(define* (substitute file pattern+procs #:key (require-matches? #t)) "PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For each line of FILE, and for each PATTERN that it matches, call the corresponding PROC as (PROC LINE MATCHES); PROC must return the line that will be written as a substitution of the original line. Be careful about using '$' to match the -end of a line; by itself it won't match the terminating newline of a line." - (let ((rx+proc (map (match-lambda - (((? regexp? pattern) . proc) - (cons pattern proc)) - ((pattern . proc) - (cons (make-regexp pattern regexp/extended) - proc))) - pattern+procs))) +end of a line; by itself it won't match the terminating newline of a line. + +By default, SUBSTITUTE will raise a &message condition if one of the patterns +fails to match. If a lack of matches is acceptable, pass #:require-matches? #f +to disable this check." + (let ((rx+proc (map (match-lambda + (((? regexp? pattern) . proc) + (cons* #f "<unknown>" pattern proc)) + ((pattern . proc) + (cons* #f pattern (make-regexp pattern regexp/extended) + proc))) + pattern+procs))) (with-atomic-file-replacement file (lambda (in out) (let loop ((line (read-line in 'concat))) (if (eof-object? line) - #t + (when require-matches? + (for-each + (match-lambda + ((#f pat . _) + (raise (condition + (&message + (message (format #f "substitute: ~a: pattern failed to match: ~a" file pat)))))) + ((#t . _) #t)) + rx+proc)) (let ((line (fold (lambda (r+p line) (match r+p - ((regexp . proc) + ((_ _ regexp . proc) (match (list-matches regexp line) ((and m+ (_ _ ...)) + (set-car! r+p #t) (proc line m+)) (_ line))))) line @@ -814,9 +828,17 @@ match substring. Alternatively, FILE may be a list of file names, in which case they are all subject to the substitutions. +By default, SUBSTITUTE* will raise a &message condition if one of the patterns +fails to match on one of the files. If a lack of matches is acceptable, +add #:require-matches? #f after FILE to disable this check. + Be careful about using '$' to match the end of a line; by itself it won't match the terminating newline of a line." ((substitute* file ((regexp match-var ...) body ...) ...) + (substitute* file #:require-matches? #t + ((regexp match-var ...) body ...) ...)) + ((substitute* file #:require-matches? require-matches? + ((regexp match-var ...) body ...) ...) (let () (define (substitute-one-file file-name) (substitute @@ -840,7 +862,8 @@ match the terminating newline of a line." (begin body ...) (substring l o (match:start m)) r)))))))) - ...))) + ...) + #:require-matches? require-matches?)) (match file ((files (... ...)) -- 2.26.2
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Subject: bug#42146: Acknowledgement ([PATCH core-updates 1/?] build: substitute: Don't fail silently.) Message-ID: <handler.42146.B.159355497531278.ack <at> debbugs.gnu.org> References: <20200630220913.14665-1-kuba@HIDDEN> X-Gnu-PR-Message: ack 42146 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 42146 <at> debbugs.gnu.org Date: Tue, 30 Jun 2020 22:10:01 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): guix-patches@HIDDEN If you wish to submit further information on this problem, please send it to 42146 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 42146: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D42146 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 2/?] build: bootstrap-configure: Allow lack of matches in substitute. References: <20200630220913.14665-1-kuba@HIDDEN> In-Reply-To: <20200630220913.14665-1-kuba@HIDDEN> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Tue, 30 Jun 2020 22:12:02 +0000 Resent-Message-ID: <handler.42146.B42146.159355509031509 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.159355509031509 (code B ref 42146); Tue, 30 Jun 2020 22:12:02 +0000 Received: (at 42146) by debbugs.gnu.org; 30 Jun 2020 22:11:30 +0000 Received: from localhost ([127.0.0.1]:51906 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqOTR-0008C9-Qx for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:30 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:46372) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqOTP-0008C0-DK for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:28 -0400 Received: (qmail 8685 invoked by uid 1009); 1 Jul 2020 00:11:25 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.011385 secs); 30 Jun 2020 22:11:25 -0000 Received: from unknown (HELO localhost.localdomain) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 00:11:25 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Date: Wed, 1 Jul 2020 00:11:21 +0200 Message-Id: <20200630221121.16086-1-kuba@HIDDEN> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Matches are not required here, as not every file will use every variable. * guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass #:require-matches? #f to substitute*. --- guix/build/gnu-bootstrap.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/build/gnu-bootstrap.scm b/guix/build/gnu-bootstrap.scm index 1cb9dc5512..6ee520e301 100644 --- a/guix/build/gnu-bootstrap.scm +++ b/guix/build/gnu-bootstrap.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Timothy Sample <samplet@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,7 +50,7 @@ and object directories." (format #t "Configuring ~a~%" template) (let ((target (string-drop-right template 3))) (copy-file template target) - (substitute* target + (substitute* target #:require-matches? #f (("@VERSION@") version)))) (find-files modules (lambda (fn st) @@ -58,7 +59,7 @@ and object directories." (format #t "Configuring ~a~%" template) (let ((target (string-drop-right template 3))) (copy-file template target) - (substitute* target + (substitute* target #:require-matches? #f (("@GUILE@") guile) (("@MODDIR@") moddir) (("@GODIR@") godir)) -- 2.26.2
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 3/?] gnu: commencement: Build fix for %bootstrap-mes-rewired. References: <20200630220913.14665-1-kuba@HIDDEN> In-Reply-To: <20200630220913.14665-1-kuba@HIDDEN> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Tue, 30 Jun 2020 22:12:02 +0000 Resent-Message-ID: <handler.42146.B42146.159355509831531 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.159355509831531 (code B ref 42146); Tue, 30 Jun 2020 22:12:02 +0000 Received: (at 42146) by debbugs.gnu.org; 30 Jun 2020 22:11:38 +0000 Received: from localhost ([127.0.0.1]:51909 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqOTa-0008CU-4M for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:38 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:46556) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqOTY-0008CL-7H for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:37 -0400 Received: (qmail 8847 invoked by uid 1009); 1 Jul 2020 00:11:35 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.01319 secs); 30 Jun 2020 22:11:35 -0000 Received: from unknown (HELO localhost.localdomain) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 00:11:35 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Date: Wed, 1 Jul 2020 00:11:34 +0200 Message-Id: <20200630221134.16350-1-kuba@HIDDEN> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Not every file has to refer to all dependencies. * gnu/packages/commencement.scm (%bootstrap-mes-rewired)[builder]: Allow lack of matches in substitute*. --- gnu/packages/commencement.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index ef250e037b..1c7cf3d810 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@HIDDEN> ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@HIDDEN> ;;; Copyright © 2020 Timothy Sample <samplet@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -283,7 +284,7 @@ pure Scheme to Tar and decompression in one easy step.") (mescc (string-append bin "/mescc")) (module (string-append out "/share/mes/module"))) (define (rewire file) - (substitute* file + (substitute* file #:require-matches? #f ((mes) out) (("/gnu/store[^ ]+mes-minimal-[^/)}\"]*") out) (("/gnu/store[^ ]+guile-[^/]*/bin/guile") guile) -- 2.26.2
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Tue, 30 Jun 2020 22:51:01 +0000 Resent-Message-ID: <handler.42146.B42146.15935574142617 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.15935574142617 (code B ref 42146); Tue, 30 Jun 2020 22:51:01 +0000 Received: (at 42146) by debbugs.gnu.org; 30 Jun 2020 22:50:14 +0000 Received: from localhost ([127.0.0.1]:51939 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqP4w-0000g9-HL for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:50:14 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:37970) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqP4v-0000g1-9I for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:50:13 -0400 Received: (qmail 10513 invoked by uid 1009); 1 Jul 2020 00:50:11 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.036375 secs); 30 Jun 2020 22:50:11 -0000 Received: from unknown (HELO gravity) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with SMTP; 1 Jul 2020 00:50:11 +0200 Date: Wed, 1 Jul 2020 00:50:07 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Message-ID: <20200630225007.tw2rcfbmzh3wvthf@gravity> References: <20200630220913.14665-1-kuba@HIDDEN> <handler.42146.B.159355497531278.ack <at> debbugs.gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4yl43hkujyl5piqa" Content-Disposition: inline In-Reply-To: <handler.42146.B.159355497531278.ack <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --4yl43hkujyl5piqa Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable The error messages I'm getting from this are quite indirect - there are wrapped in quite a few layers. Is there a better way to report errors inside a build utility? ice-9/eval.scm:387:11: In procedure eval: ice-9/eval.scm:387:11: Throw to key `srfi-34' with args `(#<condition &mess= age [message: "substit ute: install.sh: pattern failed to match: -xf"] 11a= a480>)'. builder for `/gnu/store/wdyzzh7rkg47hfp434w72ly9nay1yva1-mes-boot-0.22.drv'= failed with exit code 1 Regards, Jakub K=C4=85dzio=C5=82ka --4yl43hkujyl5piqa Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE5Xa/ss9usT31cTO54xWnWEYTFWQFAl77wZ8ACgkQ4xWnWEYT FWRIhxAAhBBY1dtp5/7VfFJ2cKcDK8X1xTJucuTGpM5AflHMVarCBdba/7pofenb /cpRR52LfhwQU2HMornopoRIeBnm7DR81vSE4A/V4XO7Z6+BhG2AXAU8biQ6Mzqu 1SH0ykadjyxZSOC+JZ4XfqSc/SDb79aIUh5O4Mw22xCir+2ed1zJcHrhjm4jOhMW e3ZPoL1+WDhe26LYdhcjUXciBTf0TEhkb4ZCmHgdbe9cVaLq97gA25MsJRiV8Q1d IoSgf7Fg5FUktl4xCZdMSQ/N3f5mkpS94P6X0EGZQRu3V2KaQH4Yut661W8X00Yr F2OtlTu4RHivHk/sdkGWETb9W/EqAqquoSg+KENRzkbbASn2upS79/fG74kPooIq ULNcSW0qCqbSUuELSBiRvP/G+AvSlrQ6w0Tfsur8KF2Rkh4f8m4hzCHkccUSP0FZ DRsF1sjILlBDjjtb/dgm4uuWr7NOBUddp9s0DvCKpSdHVq9ms7Q9QNyRyZ7sEgzr eqFkmF2Mv4IZWISy5K1XITWmL+ypctm8chceoQmwrhSU2YQ+2peiLykB7GxcymrB UkkeULOJ2OZDE5Nl0Mgrz5WOxzN7AuH5C9FAE8JnNJ32mgZsgtPJ1GN4YpL4tmBv KxwHdl55Rbc/PV3+oiVFnsZ6UOt/bL4wF9DqmPV25KXog63pNQ0= =BRqx -----END PGP SIGNATURE----- --4yl43hkujyl5piqa--
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 4/?] gnu: mes-boot: Use verbosity settings integrated into buildsystem References: <20200630220913.14665-1-kuba@HIDDEN> In-Reply-To: <20200630220913.14665-1-kuba@HIDDEN> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Wed, 01 Jul 2020 00:43:01 +0000 Resent-Message-ID: <handler.42146.B42146.159356416013444 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.159356416013444 (code B ref 42146); Wed, 01 Jul 2020 00:43:01 +0000 Received: (at 42146) by debbugs.gnu.org; 1 Jul 2020 00:42:40 +0000 Received: from localhost ([127.0.0.1]:52039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqQpj-0003Ul-UC for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:40 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:60046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqQph-0003Uc-Rq for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:38 -0400 Received: (qmail 29567 invoked by uid 1009); 1 Jul 2020 02:42:35 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.042099 secs); 01 Jul 2020 00:42:35 -0000 Received: from unknown (HELO localhost.localdomain) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 02:42:35 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Date: Wed, 1 Jul 2020 02:42:34 +0200 Message-Id: <20200701004234.18050-1-kuba@HIDDEN> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Qmailux-2.08st: added fake Content-Type header Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * gnu/packages/commencement.scm (mes-boot): Set the V environment variable. Don't substitute in the install script. --- gnu/packages/commencement.scm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 1c7cf3d810..295a378d11 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -407,6 +407,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\" (string-append mes "/share/mes/module" ":" dir "/nyacc-0.99.0/module")) + (setenv "V" "1") (invoke "gash" "configure.sh" (string-append "--prefix=" out) (string-append "--host=i686-linux-gnu"))))) @@ -416,11 +417,6 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\" (delete 'check) (replace 'install (lambda _ - (substitute* "install.sh" ; show some progress - ((" -xf") " -xvf") - (("^( *)((cp|mkdir|tar) [^']*[^\\])\n" all space cmd) - (string-append space "echo '" cmd "'\n" - space cmd "\n"))) (invoke "sh" "install.sh") ;; Keep ASCII output, for friendlier comparison and bisection (let* ((out (assoc-ref %outputs "out")) -- 2.26.2
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 5/?] build-system/gnu: Allow lack of matches in substitution phases. References: <20200630220913.14665-1-kuba@HIDDEN> In-Reply-To: <20200630220913.14665-1-kuba@HIDDEN> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Wed, 01 Jul 2020 00:43:02 +0000 Resent-Message-ID: <handler.42146.B42146.159356416613465 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.159356416613465 (code B ref 42146); Wed, 01 Jul 2020 00:43:02 +0000 Received: (at 42146) by debbugs.gnu.org; 1 Jul 2020 00:42:46 +0000 Received: from localhost ([127.0.0.1]:52042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqQpq-0003V5-72 for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:46 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:60106) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqQpo-0003Ux-Gg for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:45 -0400 Received: (qmail 29638 invoked by uid 1009); 1 Jul 2020 02:42:43 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.013567 secs); 01 Jul 2020 00:42:43 -0000 Received: from unknown (HELO localhost.localdomain) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 02:42:43 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Date: Wed, 1 Jul 2020 02:42:42 +0200 Message-Id: <20200701004242.18245-1-kuba@HIDDEN> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * guix/build/utils.scm (patch-makefile-SHELL, patch-/usr/bin/file), guix/build/gnu-build-system.scm (patch-dot-desktop-files): Allow lack of matches in substitute*. --- guix/build/gnu-build-system.scm | 3 ++- guix/build/utils.scm | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 2e7dff2034..4b96761233 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@HIDDEN> ;;; Copyright © 2018 Mark H Weaver <mhw@HIDDEN> ;;; Copyright © 2020 Brendan Tildesley <mail@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -724,7 +725,7 @@ which cannot be found~%" ;; '.desktop' files contain translations and are always ;; UTF-8-encoded. (with-fluids ((%default-port-encoding "UTF-8")) - (substitute* files + (substitute* files #:require-matches? #f (("^Exec=([^/[:blank:]\r\n]*)(.*)$" _ binary rest) (string-append "Exec=" (which binary) rest)) (("^TryExec=([^/[:blank:]\r\n]*)(.*)$" _ binary rest) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 1bfb774c60..a8218a7743 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -1005,7 +1005,7 @@ When KEEP-MTIME? is true, the atime/mtime of FILE are kept unchanged." (let ((st (stat file))) ;; Consider FILE is using an 8-bit encoding to avoid errors. (with-fluids ((%default-port-encoding #f)) - (substitute* file + (substitute* file #:require-matches? #f (("^ *SHELL[[:blank:]]*:?=[[:blank:]]*([[:graph:]]*/)([[:graph:]]+)(.*)$" _ dir shell args) (let* ((old (string-append dir shell)) @@ -1033,7 +1033,7 @@ no replacement 'file' command, doing nothing~%") (let ((st (stat file))) ;; Consider FILE is using an 8-bit encoding to avoid errors. (with-fluids ((%default-port-encoding #f)) - (substitute* file + (substitute* file #:require-matches? #f (("/usr/bin/file") (begin (format (current-error-port) -- 2.26.2
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 6/6] gnu: glibc-mesboot0: Fixup the fixup-configure phase. References: <20200630220913.14665-1-kuba@HIDDEN> In-Reply-To: <20200630220913.14665-1-kuba@HIDDEN> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Wed, 01 Jul 2020 09:56:01 +0000 Resent-Message-ID: <handler.42146.B42146.15935973308738 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.15935973308738 (code B ref 42146); Wed, 01 Jul 2020 09:56:01 +0000 Received: (at 42146) by debbugs.gnu.org; 1 Jul 2020 09:55:30 +0000 Received: from localhost ([127.0.0.1]:52317 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqZSk-0002Gs-1s for submit <at> debbugs.gnu.org; Wed, 01 Jul 2020 05:55:30 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:37738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqZSh-0002Gg-UR for 42146 <at> debbugs.gnu.org; Wed, 01 Jul 2020 05:55:28 -0400 Received: (qmail 19561 invoked by uid 1009); 1 Jul 2020 11:55:25 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25859. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.034343 secs); 01 Jul 2020 09:55:25 -0000 Received: from unknown (HELO localhost.localdomain) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 11:55:25 +0200 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Date: Wed, 1 Jul 2020 11:55:23 +0200 Message-Id: <20200701095523.9501-1-kuba@HIDDEN> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Qmailux-2.08st: added fake Content-Type header Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * gnu/packages/commencement.scm (glibc-mesboot0)[fixup-configure]: Don't repeat substitution. Fix indentation. --- This is an interesting cleanup commit. I believe this concludes a nice sampling of the consequences of this patch, and thus subsequent fixups are unlikely to benefit from a review. I will be pushing my work to https://github.com/NieDzejkob/guix/tree/core-updates gnu/packages/commencement.scm | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 295a378d11..837f4e2ecc 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1418,19 +1418,17 @@ ac_cv_c_float_format='IEEE (little-endian)' (format (current-error-port) "running ./configure ~a\n" (string-join configure-flags)) (apply invoke "./configure" configure-flags))) - (add-after 'configure 'fixup-configure - (lambda _ - (let* ((out (assoc-ref %outputs "out")) - (bash (assoc-ref %build-inputs "bash")) - (shell (string-append bash "/bin/bash"))) - (substitute* "config.make" - (("INSTALL = scripts/") "INSTALL = $(..)./scripts/")) - (substitute* "config.make" - (("INSTALL = scripts/") "INSTALL = $(..)./scripts/") - (("BASH = ") (string-append - "SHELL = " shell " - BASH = "))) - #t)))))))) + (add-after 'configure 'fixup-configure + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (bash (assoc-ref %build-inputs "bash")) + (shell (string-append bash "/bin/bash"))) + (substitute* "config.make" + (("INSTALL = scripts/") "INSTALL = $(..)./scripts/") + (("BASH = ") (string-append + "SHELL = " shell " +BASH = "))) + #t)))))))) (define gcc-mesboot0 (package -- 2.26.2
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 13:16:01 +0000 Resent-Message-ID: <handler.42146.B42146.169772132814965 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN> Cc: 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.169772132814965 (code B ref 42146); Thu, 19 Oct 2023 13:16:01 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 13:15:28 +0000 Received: from localhost ([127.0.0.1]:36091 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtSs4-0003tF-0Z for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 09:15:28 -0400 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]:57525) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtSs2-0003sp-7b for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 09:15:27 -0400 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-1dd71c0a41fso4888595fac.2 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 06:14:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697721293; x=1698326093; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fT7QasneeUUw6v7KJk6SJzCliBfugeHsCwOiYHP2oDQ=; b=EdinGs8lqL2AlyjrSdgPRcihTzOemYek7x8taKYpqnhs2hIqk4TSmRLGnDAZWlGKnK fRGiedegN8ITPEmDbAoKVB8qN9D11A8iIXl7YGocl8ll2UMO1JEjPVmaC7ml8T38ZFs9 06IS+nx6jy1x4PvlQGmwFe68bGVIerwil8zAzm0LB8N1mEv0YkHDn9nYo67XPKf4hh5T qkk3dleIimDuzixwcbO/mMO4XCwrTakunnERtv++TNr/DQhlcQr+bHmqgzABodaDf7xs eLX1Kvv+llPsR12cMQZpKKfTh8kQTMulqfeVWRZ5iZlZ9VLbqmc2eqMHy9cLMR5NuDPF 4T2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697721293; x=1698326093; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fT7QasneeUUw6v7KJk6SJzCliBfugeHsCwOiYHP2oDQ=; b=cAv3vaiUP8cl6hJgy3ZF5D4gpRoKkijJ9/1xwEmmM5+MKyzmSLxqNjHF4cIaS9oHrS G+DPpFEpL2g9+0QumIhMm8GY/8zWEpOEqebxnd04w+cdhWVWatCPZTvNTHHi//KCgW0J 9NIVf48bDLfInGoLAoU+DvczGZabbgv5aJ/k9dWIWU0zEIPWCd7kGbVwEhYt8IEyaXX/ VjT9yz7CqBlUvamYS2v70m0iOJ/Gh999bU0AKoN4EOQ9hNRhXLC73duC7OP30yYpKeVh 9qrxqKYMIGpl8Yz6U8vycYAsBzsuNlVGtjysLmNPBnxvKcm8VOyTaaw3UPOToGDqLMgN kJOg== X-Gm-Message-State: AOJu0YwfFZZtzDE2/s4SBLkyy7Ohej3WFsgER+Ns1w32x+RQp+oO3ZKX 74jrBg9YtkyrjQtXZsARsNTF0bkarJntLA== X-Google-Smtp-Source: AGHT+IHgj3IX/Nn1l0ifoYjULnMdLmuqO1qkFbFN2E0H+Ypm9vJjTNcUZF3Ic3Lm8URZEdAs92wZEg== X-Received: by 2002:a05:6870:a102:b0:1e9:b305:6831 with SMTP id m2-20020a056870a10200b001e9b3056831mr2516941oae.42.1697721292929; Thu, 19 Oct 2023 06:14:52 -0700 (PDT) Received: from hurd (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id t7-20020ac86a07000000b004197d6d97c4sm718091qtr.24.2023.10.19.06.14.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 06:14:52 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> In-Reply-To: <20200630225007.tw2rcfbmzh3wvthf@gravity> ("Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?="'s message of "Wed, 1 Jul 2020 00:50:07 +0200") References: <20200630220913.14665-1-kuba@HIDDEN> <handler.42146.B.159355497531278.ack <at> debbugs.gnu.org> <20200630225007.tw2rcfbmzh3wvthf@gravity> Date: Thu, 19 Oct 2023 09:14:51 -0400 Message-ID: <87wmvioit0.fsf_-_@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Jakub, Sorry for the late reply; nice series! Jakub K=C4=85dzio=C5=82ka <kuba@HIDDEN> writes: > The error messages I'm getting from this are quite indirect - there are > wrapped in quite a few layers. Is there a better way to report errors > inside a build utility? > > ice-9/eval.scm:387:11: In procedure eval: > ice-9/eval.scm:387:11: Throw to key `srfi-34' with args `(#<condition &me= ssage [message: "substit ute: install.sh: pattern failed to match: -xf"] 1= 1aa480>)'. > builder for `/gnu/store/wdyzzh7rkg47hfp434w72ly9nay1yva1-mes-boot-0.22.dr= v' failed with exit code 1 I don't think it's possible currently; I guess we'd have to serialize the exceptions in the builder to recover them on the host to present them in a nicer fashion. --=20 Thanks, Maxim
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 1/3] build: Relocate <regexp*> record and associated procedures here. References: <20200630220913.14665-1-kuba@HIDDEN> In-Reply-To: <20200630220913.14665-1-kuba@HIDDEN> Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: kuba@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 20:35:01 +0000 Resent-Message-ID: <handler.42146.B42146.16977476873567 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> X-Debbugs-Original-Xcc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.16977476873567 (code B ref 42146); Thu, 19 Oct 2023 20:35:01 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:34:47 +0000 Received: from localhost ([127.0.0.1]:37942 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtZj9-0000vI-AK for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:47 -0400 Received: from mail-qk1-x72c.google.com ([2607:f8b0:4864:20::72c]:53679) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtZj3-0000uv-P6 for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:41 -0400 Received: by mail-qk1-x72c.google.com with SMTP id af79cd13be357-7789cb322deso3477585a.3 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 13:34:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697747645; x=1698352445; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=; b=ZN3ZytrOSkoPV3PTQaE1mAar2RlNnWmqgMs1eUJnLtPW5QYVB8f3z+ETfhqDnFw1DS XyavybpqF03vu1wUn37gRq17HNTkbrOjgAw4oyHai8tgBky7hY6NGNRQaA/QxtH0hIAW Pb0u8CKyr2zoBfMzP4MnLVK05A79UctLns1v85Ta/8/wkalN6l36ICOFAi7ESSKQon4+ 1Ae8JJTz3BU8D0tV1gLHkHWCJ1HetFbnWCCw56TCEjuCuy7/Hbdtjw62LL5lqX1PJ2Em T5U0x3yELnvQ1o/Z7GAqvIOeIP4v7BWHxMdrbd2lt6sY9z6JIlAoh3YHe0WyIL4bC4oO eWBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697747645; x=1698352445; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=; b=ZxcAquP9GiFSEo55HE/e7UF9MDsvAS9ZPWpca4BgE2OTuZn++bxCM8Vz4pWkIgiu8n SCyNxBgNdbpxrkHJyZivfM2vWBjhk42Cg6BOvpQ5VcbK7Lv6DbTDMTCXwJu7JWjhcWPd Lr/9mdtMdzqjth6e+o4LJtDKp1QVlwkrZs8MPGYzSd1XrF/uqqcfE4iVMcbhD1y3Lrjb 6Y9/YmGl0na0+4auI/al8y10TAzAOSvDKRcwLda6EB77r3PZ7ACOvRn0WcU6borfd1XS JwfcqC9PBFfIF5slrnZEnMm5GbbtnYtoS9tYFfWLUFgG1dtJM2rc5Kdk1RSRPuV7zzIh I87A== X-Gm-Message-State: AOJu0Yy4UcYO5QrjiSDMvsyioUbWrb8JzRF4JdfVrpGJwbDOvFyxRhSO zG+bBTapLnbVAlTYyTfp3ccFG1eoEnfN8Q== X-Google-Smtp-Source: AGHT+IFA9mzRE/o856F/91XgvZa7sQElpq+DUlYXjrLLxGzsRTInleEEv8Plk+fACFYJFEpXs4lzng== X-Received: by 2002:a05:620a:4548:b0:76f:2899:3a96 with SMTP id u8-20020a05620a454800b0076f28993a96mr3923889qkp.0.1697747644695; Thu, 19 Oct 2023 13:34:04 -0700 (PDT) Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id 2-20020a05620a070200b0077413b342e9sm76591qkc.128.2023.10.19.13.34.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 13:34:03 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 16:33:32 -0400 Message-ID: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to... * guix/build/utils.scm: ... here. (list-matches*): New procedure. Change-Id: I566ac372f7d8ba08de94e19b54dcc68da2106a23 --- etc/teams.scm.in | 19 +------------------ guix/build/utils.scm | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/etc/teams.scm.in b/etc/teams.scm.in index 55242caad1..8af25b9802 100644 --- a/etc/teams.scm.in +++ b/etc/teams.scm.in @@ -34,29 +34,12 @@ (srfi srfi-9) (srfi srfi-26) (ice-9 format) - (ice-9 regex) (ice-9 match) (ice-9 rdelim) + (guix build utils) (guix ui) (git)) -(define-record-type <regexp*> - (%make-regexp* pat flag rx) - regexp*? - (pat regexp*-pattern) - (flag regexp*-flag) - (rx regexp*-rx)) - -;;; Work around regexp implementation. -;;; This record allows to track the regexp pattern and then display it. -(define* (make-regexp* pat #:optional (flag regexp/extended)) - "Alternative to `make-regexp' producing annotated <regexp*> objects." - (%make-regexp* pat flag (make-regexp pat flag))) - -(define (regexp*-exec rx* str) - "Execute the RX* regexp, a <regexp*> object." - (regexp-exec (regexp*-rx rx*) str)) - (define-record-type <team> (make-team id name description members scope) team? diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 8e630ad586..2b3a8e278b 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN> ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN> ;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN> +;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN> ;;; Copyright © 2023 Carlo Zancanaro <carlo@HIDDEN> ;;; ;;; This file is part of GNU Guix. @@ -28,6 +29,7 @@ (define-module (guix build utils) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) @@ -55,6 +57,14 @@ (define-module (guix build utils) package-name->name+version parallel-job-count + make-regexp* + regexp*-exec + regexp*? + regexp*-pattern + regexp*-flag + regexp*-rx + list-matches* + compressor tarball? %xz-parallel-args @@ -163,6 +173,35 @@ (define-syntax-rule (define-constant name val) (module-replace! (current-module) '(setvbuf))) (else #f)) + +;;; +;;; Extend regexp objects with a pattern field. +;;; +(define-record-type <regexp*> + (%make-regexp* pat flag rx) + regexp*? + (pat regexp*-pattern) ;the regexp pattern, a string + (flag regexp*-flag) ;regexp flags + (rx regexp*-rx)) ;the compiled regexp object + +;;; Work around regexp implementation. +;;; This record allows to track the regexp pattern and then display it. +(define* (make-regexp* pat #:optional (flag regexp/extended)) + "Alternative to `make-regexp' producing annotated <regexp*> objects." + (%make-regexp* pat flag (make-regexp pat flag))) + +(define (regexp*-exec rx* str) + "Execute the RX* regexp, a <regexp*> object." + (regexp-exec (regexp*-rx rx*) str)) + +(define* (list-matches* regexp str #:optional (flags regexp/extended)) + "Like 'list-matches', but also accepting a regexp* as REGEXP." + (match regexp + ((or (? string?) (? regexp?)) + (list-matches regexp str flags)) + ((? regexp*?) + (list-matches (regexp*-rx regexp) str flags)))) + ;;; ;;; Compression helpers. base-commit: d59653b7c9e43ebdbba20e2ca071429507f94c67 -- 2.41.0
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 2/3] build: substitute: Error when no substitutions were done. Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: kuba@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 20:35:02 +0000 Resent-Message-ID: <handler.42146.B42146.16977476883573 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> X-Debbugs-Original-Xcc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.16977476883573 (code B ref 42146); Thu, 19 Oct 2023 20:35:02 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:34:48 +0000 Received: from localhost ([127.0.0.1]:37944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtZjD-0000vU-8E for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:47 -0400 Received: from mail-qk1-x72d.google.com ([2607:f8b0:4864:20::72d]:47290) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtZj6-0000uz-DZ for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:41 -0400 Received: by mail-qk1-x72d.google.com with SMTP id af79cd13be357-7788db95652so3878185a.2 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 13:34:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697747648; x=1698352448; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oTAbCUEBY4/PaAlLb3JRnahAdJdeX/zaSLEJfY7+90g=; b=aigGrMq5FpRYclutciNokFrhbtz5FbX8/+vifefVTLPWmE6/OA5/tVoojMfaJcXZ2Z 0hzO5oSgshZ5p4o2hS9/rksQRywXE7d4I3d8SODSiarDrLKn/3rEICH0Pjc9ndIg3QWF BN3UypVZSFu3Kfx1rPtHJY1DHNhG8rew6u1u68UeNp1R/yENLp0zyPu/jlePukzWmJHB Ag3rinz+5fn7QHn9mn5ZVpSLK//X9aVf1hx0vgrskD8itsVICYINn0Ok36PqoNHW7rkK XGrOhqXonWe/GrwpsT/B2KK+EiOzkPF/1hVJNGvURb9eggwx2NTerRgfxQWniKvLXrWT G98A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697747648; x=1698352448; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oTAbCUEBY4/PaAlLb3JRnahAdJdeX/zaSLEJfY7+90g=; b=IADZxhjW81S5sZXWI4KRaCu9Y7pSues3bHaW0ZtJrjeJRZszBHwDHNIFzLI5YF4h8W EFy6qCNR8+ElPAMt6yA/AI9bR+qUiTdrMNRMM3UNu5kLbOpPyuo4CaS851w9cnZ2+yxA qOWzTtoT5dcqdiS4+eCXLPg+z9ChpLRezZpwkNgb7nlNTJywQNNsf4cIpMPUCdJrIoDA wT79PgUYSww/sKDdt50u7lPDdO2hiy0HOawzhEPxigDIx5YqiaCbYOGS/5Ee+Al5DfE/ 9wDjpRJ5e2GFPQw8ADK2+B6KrFDyvvEkit99K+QjIAPKfIAOcplRAG+S6jzJ6/kOYKwx jWsw== X-Gm-Message-State: AOJu0Yzz7GcXz3qcHVlpl1ACsfT/UMSRLZwWXGhIwWgF0AbFDgLoP9XK LIhVf8UWPJ+YYfHtRSMp+ELYu5LRg7J3ZA== X-Google-Smtp-Source: AGHT+IH3r47NdrEpahDPXiMGSZCz+rO/hZa9dCzcOtNVbE0KEcgI/qFhbXrZPzm4LX87wc0K+K5MrA== X-Received: by 2002:a05:620a:29c2:b0:775:903e:388c with SMTP id s2-20020a05620a29c200b00775903e388cmr3062568qkp.2.1697747647630; Thu, 19 Oct 2023 13:34:07 -0700 (PDT) Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id 2-20020a05620a070200b0077413b342e9sm76591qkc.128.2023.10.19.13.34.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 13:34:07 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 16:33:33 -0400 Message-ID: <cafb034c8454eff36ab6f8c40df6fc1699915923.1697747385.git.maxim.cournoyer@HIDDEN> X-Mailer: git-send-email 2.41.0 In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) From: Jakub Kądziołka <kuba@HIDDEN> * guix/build/utils.scm (substitute, substitute*) [require-matches?]: New argument. * tests/build-utils.scm ("substitute*"): New test group. ("substitute*, no match error") ("substitute*, partial no match error"): New tests. Co-authored-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Change-Id: I66ed33d72aa73cd35e5642521efec70bf756f86e --- guix/build/utils.scm | 94 +++++++++++++++++++++++++++++++++---------- tests/build-utils.scm | 63 +++++++++++++++++++---------- 2 files changed, 114 insertions(+), 43 deletions(-) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 2b3a8e278b..7bfb6560e1 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -6,7 +6,8 @@ ;;; Copyright © 2018, 2022 Arun Isaac <arunisaac@HIDDEN> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@HIDDEN> ;;; Copyright © 2020 Efraim Flashner <efraim@HIDDEN> -;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> +;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN> ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN> ;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN> ;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN> @@ -971,24 +972,53 @@ (define (replace-char c1 c2 s) c)) s))) -(define (substitute file pattern+procs) +(define* (substitute file pattern+procs #:key (require-matches? #t)) "PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For each line of FILE, and for each PATTERN that it matches, call the corresponding PROC as (PROC LINE MATCHES); PROC must return the line that will be written as a substitution of the original line. Be careful about using '$' to match the -end of a line; by itself it won't match the terminating newline of a line." - (let ((rx+proc (map (match-lambda - (((? regexp? pattern) . proc) +end of a line; by itself it won't match the terminating newline of a line. + +By default, SUBSTITUTE will raise a &message condition if one of the patterns +fails to match. REQUIRE-MATCHES? can be set to false when lack of matches is +acceptable (e.g. if you have multiple potential patterns not guaranteed to be +found in FILE)." + (define (rx->pattern m) + (match m + ((? regexp? pattern) + "<unknown pattern (regexp)>") + ((? regexp*? pattern) + (regexp*-pattern pattern)) + ((? string? pattern) + pattern))) + + (define (make-condition failed-matches) + (condition + (&message + (message (format #f "substitute: `~a': no match for patterns `~a'" + file failed-matches))))) + + (let ((rx+proc (map (match-lambda + (((or (? regexp? pattern) (? regexp*? pattern)) . proc) (cons pattern proc)) ((pattern . proc) - (cons (make-regexp pattern regexp/extended) - proc))) - pattern+procs))) + (cons (make-regexp* pattern regexp/extended) proc))) + pattern+procs))) (with-atomic-file-replacement file (lambda (in out) - (let loop ((line (read-line in 'concat))) + (let loop ((line (read-line in 'concat)) + (ok-matches '()) + (failed-matches '())) (if (eof-object? line) - #t + (when require-matches? + (let ((failed-patterns (lset-difference + string=? + (delete-duplicates + (map rx->pattern failed-matches)) + (delete-duplicates + (map rx->pattern ok-matches))))) + (when (not (null? failed-patterns)) + (raise (make-condition failed-patterns))))) ;; Work around the fact that Guile's regexp-exec does not handle ;; NUL characters (a limitation of the underlying GNU libc's ;; regexec) by temporarily replacing them by an unused private @@ -998,19 +1028,30 @@ (define (substitute file pattern+procs) (unused-private-use-code-point line)) #\nul)) (line* (replace-char #\nul nul* line)) - (line1* (fold (lambda (r+p line) - (match r+p - ((regexp . proc) - (match (list-matches regexp line) - ((and m+ (_ _ ...)) - (proc line m+)) - (_ line))))) - line* - rx+proc)) + (results ;line, ok-matches and failed-matches + (fold (lambda (r+p results) + (let ((line (first results)) + (ok-matches (second results)) + (failed-matches (third results))) + (match r+p + ((regexp . proc) + (match (list-matches* regexp line) + ((and m+ (_ _ ...)) + (list (proc line m+) + (cons regexp ok-matches) + failed-matches)) + (_ + (list line + ok-matches + (cons regexp failed-matches)))))))) + (list line* '() '()) + rx+proc)) + (line1* (first results)) + (ok-matches (second results)) + (failed-matches (third results)) (line1 (replace-char nul* #\nul line1*))) (display line1 out) - (loop (read-line in 'concat))))))))) - + (loop (read-line in 'concat) ok-matches failed-matches)))))))) (define-syntax let-matches ;; Helper macro for `substitute*'. @@ -1048,9 +1089,17 @@ (define-syntax substitute* Alternatively, FILE may be a list of file names, in which case they are all subject to the substitutions. +By default, SUBSTITUTE* will raise a &message condition if one of the patterns +fails to match on one of the files; REQUIRE-MATCHES? may be set to false to +avoid an error being raised in such condition. + Be careful about using '$' to match the end of a line; by itself it won't match the terminating newline of a line." ((substitute* file ((regexp match-var ...) body ...) ...) + (substitute* file #:require-matches? #t + ((regexp match-var ...) body ...) ...)) + ((substitute* file #:require-matches? require-matches? + ((regexp match-var ...) body ...) ...) (let () (define (substitute-one-file file-name) (substitute @@ -1074,7 +1123,8 @@ (define-syntax substitute* (begin body ...) (substring l o (match:start m)) r)))))))) - ...))) + ...) + #:require-matches? require-matches?)) (match file ((files (... ...)) diff --git a/tests/build-utils.scm b/tests/build-utils.scm index 3babf5d544..890fbca16f 100644 --- a/tests/build-utils.scm +++ b/tests/build-utils.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@HIDDEN> ;;; Copyright © 2019 Ricardo Wurmus <rekado@HIDDEN> -;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN> +;;; Copyright © 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN> ;;; Copyright © 2021 Maxime Devos <maximedevos@HIDDEN> ;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN> ;;; @@ -289,26 +289,47 @@ (define (arg-test bash-args) (test-assert "wrap-script, argument handling, bash --norc" (arg-test " --norc")) -(test-equal "substitute*, text contains a NUL byte, UTF-8" - "c\0d" - (with-fluids ((%default-port-encoding "UTF-8") - (%default-port-conversion-strategy 'error)) - ;; The GNU libc is locale sensitive. Depending on the value of LANG, the - ;; test could fail with "string contains #\\nul character: ~S" or "cannot - ;; convert wide string to output locale". - (setlocale LC_ALL "en_US.UTF-8") - (call-with-temporary-output-file - (lambda (file port) - (format port "a\0b") - (flush-output-port port) - - (substitute* file - (("a") "c") - (("b") "d")) - - (with-input-from-file file - (lambda _ - (get-string-all (current-input-port)))))))) +(test-group "substitute*" + (define-syntax-rule (define-substitute*-test test-type name expected + content clauses ...) + (test-type + name + expected + (with-fluids ((%default-port-encoding "UTF-8") + (%default-port-conversion-strategy 'error)) + ;; The GNU libc is locale sensitive. Depending on the value of LANG, + ;; the test could fail with "string contains #\\nul character: ~S" or + ;; "cannot convert wide string to output locale". + (setlocale LC_ALL "en_US.UTF-8") + (call-with-temporary-output-file + (lambda (file port) + (format port content) + (flush-output-port port) + + (substitute* file + clauses ...) + + (with-input-from-file file + (lambda _ + (get-string-all (current-input-port))))))))) + + (define-substitute*-test test-equal + "substitute*, text contains a NUL byte, UTF-8" + "c\0d" ;expected + "a\0b" ;content + (("a") "c") + (("b") "d")) + + (define-substitute*-test test-error "substitute*, no match error" + #t ;expected + "a\0b" ;content + (("Oops!") "c")) + + (define-substitute*-test test-error "substitute*, partial no match error" + #t ;expected + "a\0b" ;content + (("a") "c" + ("Oops!") "c"))) (test-equal "search-input-file: exception if not found" `((path) -- 2.41.0
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH 3/3] build: bootstrap-configure: Allow lack of matches in substitute. Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: kuba@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 20:35:02 +0000 Resent-Message-ID: <handler.42146.B42146.16977476893582 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> X-Debbugs-Original-Xcc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.16977476893582 (code B ref 42146); Thu, 19 Oct 2023 20:35:02 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:34:49 +0000 Received: from localhost ([127.0.0.1]:37946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtZjF-0000vh-44 for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:49 -0400 Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:46194) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtZj9-0000v2-52 for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:44 -0400 Received: by mail-qk1-x736.google.com with SMTP id af79cd13be357-7788fb06997so4984485a.0 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 13:34:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697747650; x=1698352450; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=r4Q9z/d9a8INLP5xbQe9cf87MBMZAubiof6Yyn2YFqk=; b=XU2qcXCic7CtC3U6rZZsrzgNdL6xmjp+0/8Fr3h05S4DHQSifeWWUySNaRSc5+Z3EZ o5e6+VJFvsFMBpSJhvkH+CsSamYQZZRu6XT0M6G2H/aV0oHuS0eYvXoNKnAAz5lhH09J O0tXpfx+2+hms9i4mafcEgOKdQ1tSiZwHoXK1K6w6diaQFXcbRW9V7IWrSBLfzmMLcNJ viRFwRclMi1BnA5Ocw1eLBU3hFxtWyH1ko2lGcYCvm32RgOQUzfZZ41/xlLq/gbX3oEO hfotn7Hz3TBmyEQr2qZ5KECiEt42cZMV/oHLvG6BgwLxgWpqis7J0z40Lz7J2lmd/fW4 EFgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697747650; x=1698352450; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r4Q9z/d9a8INLP5xbQe9cf87MBMZAubiof6Yyn2YFqk=; b=S5D4/S/Ffe6ipqqSGYNiuJVp//GteoixmBgasgHLckwYFHR7lFR0AUDNeLVBOZ+7vm RLWcSkQPm5JD26QD9CCbjm/bVqM+/VY8IlTzB17JcuzSmIPLpH27Q4Ga4k6JqHPlVtm4 10d8V0Be6KIMOgt/MbvER1uqraXFmAjheHuIYTQicshU2/9oRR94MY8wMAeyF/35mPsz 8sdoikNT68TeSARVa6BerxvTkv0qUj1ot2DNNDNtFw7ziwsfy65DfoifcC6iV83kg7Oz mtVSPoAzwY2agXUeIXI/zlAijiBo328RewWGGFmWoNWyME2kGhW0Rk/+MufWgZ9kVjn4 pyyw== X-Gm-Message-State: AOJu0Yzx7/+rmIv2yHDqV8ylv6Zpvw8DK8iWHgEGG43YlxYeas4S4WSz gV79w+5AxBIi/i1HCLIRPQJiepiOfI2waw== X-Google-Smtp-Source: AGHT+IFAl3wHepBCuXv7hTlSDku/g7bxD+o60LKTzOyTWfkHQlZU7JJLfblDAc02FszRhsTDFCnjdA== X-Received: by 2002:a05:620a:430f:b0:76e:f638:bcd9 with SMTP id u15-20020a05620a430f00b0076ef638bcd9mr3523055qko.38.1697747650613; Thu, 19 Oct 2023 13:34:10 -0700 (PDT) Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id 2-20020a05620a070200b0077413b342e9sm76591qkc.128.2023.10.19.13.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 13:34:10 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 16:33:34 -0400 Message-ID: <28fd2bd2039b4a4c0fe8fdaf1adbfb5956f683d5.1697747385.git.maxim.cournoyer@HIDDEN> X-Mailer: git-send-email 2.41.0 In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) From: Jakub Kądziołka <kuba@HIDDEN> Matches are not required here, as not every file will use every variable. * guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass #:require-matches? #f to substitute*. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN> --- guix/build/gnu-bootstrap.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/build/gnu-bootstrap.scm b/guix/build/gnu-bootstrap.scm index b4257a3717..d044c8acd9 100644 --- a/guix/build/gnu-bootstrap.scm +++ b/guix/build/gnu-bootstrap.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020, 2022 Timothy Sample <samplet@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +52,7 @@ (define (bootstrap-configure name version modules scripts) (let ((target (string-drop-right template 3))) (copy-file template target) (substitute* target + #:require-matches? #f (("@PACKAGE_NAME@") name) (("@VERSION@") version)))) (append-map (lambda (dir) (find-files dir "\\.in$")) @@ -60,14 +62,14 @@ (define (bootstrap-configure name version modules scripts) (let ((target (string-drop-right template 3))) (copy-file template target) (substitute* target + #:require-matches? #f (("@GUILE@") guile) (("@MODDIR@") moddir) (("@GODIR@") godir)) (chmod target #o755))) (find-files scripts (lambda (fn st) - (string-suffix? ".in" fn)))) - #t))) + (string-suffix? ".in" fn))))))) (define (bootstrap-build modules) "Create a procedure that builds an early bootstrap package. The -- 2.41.0
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 20:42:02 +0000 Resent-Message-ID: <handler.42146.B42146.16977480874239 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.16977480874239 (code B ref 42146); Thu, 19 Oct 2023 20:42:02 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:41:27 +0000 Received: from localhost ([127.0.0.1]:37976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtZpe-00016J-PQ for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:41:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37940) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1qtZpZ-000162-Ma for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:41:25 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1qtZp2-00005J-Nn; Thu, 19 Oct 2023 16:40:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=fVfnr0IPelKl3mq4+SXmIo7JR0GBYjPEYKfseEK3XMs=; b=aCuNaP0lqIjpyvHmmivk MQRMRHQkGO/KWvbE6cY7/QwP3j0kBC5ljrcJ/Rz57yUzS9DQtaa06s+9hU0ptMn/0KD0ACRdESVGb lSIOki+EYAItmaLr27K81QFx3RI3JblUO3gUyYwObFdy07Ac6gfS6lmZrp7VZfCVkdmSX5Bq8ivFS 3wVu8ppUaloGRJkokICCA8i2+cn+zmOOieAJQdKQKxgWTPDM+4ayju/43ETMtlxMWbOjttwXPWBAD BbKlAwGwlMpVmgrrxN28Obyxt8dqRX5YpOqvM3z56se92wIR16s1+sjsWzPtLz+TTnRhc8Ic8sYaM 8bckEgjJtBtlvA==; From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> (Maxim Cournoyer's message of "Thu, 19 Oct 2023 16:33:32 -0400") References: <20200630220913.14665-1-kuba@HIDDEN> <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 22:40:45 +0200 Message-ID: <87lebyxs4y.fsf_-_@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi, Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > * etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to... > * guix/build/utils.scm: ... here. > (list-matches*): New procedure. [...] > +++ b/guix/build/utils.scm [...] > +;;; > +;;; Extend regexp objects with a pattern field. > +;;; > +(define-record-type <regexp*> > + (%make-regexp* pat flag rx) > + regexp*? > + (pat regexp*-pattern) ;the regexp pattern, a string > + (flag regexp*-flag) ;regexp flags > + (rx regexp*-rx)) ;the compiled regexp object > + > +;;; Work around regexp implementation. > +;;; This record allows to track the regexp pattern and then display it. > +(define* (make-regexp* pat #:optional (flag regexp/extended)) I=E2=80=99m skeptical about the concrete benefits. I would not include it = in (guix build utils), or at least not in this patch series. (I tend to be super conservative about (guix build utils) because we rarely get a chance to change it.) Ludo=E2=80=99.
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 20:51:01 +0000 Resent-Message-ID: <handler.42146.B42146.169774862515272 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.169774862515272 (code B ref 42146); Thu, 19 Oct 2023 20:51:01 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:50:25 +0000 Received: from localhost ([127.0.0.1]:37982 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtZyK-0003yF-R5 for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:50:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38680) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1qtZyF-0003xz-Lc for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:50:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1qtZxi-0004tl-PQ; Thu, 19 Oct 2023 16:49:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=zuWWY0EBa6XTUOyTJOGcuek5mx1N2NbbFt3fZW8glSg=; b=cqY4Eog/vabsZCVrfZrC Z1Nwl7xXWRiKfkEC8nIy4hYkJxvOmVNz+UljIG6GQ6fe8hgac42bKWLMFzea+UzEEO5aRLOc2arrE 40bh3AXtjAphGWo/pUITBXvgibapg0I9cf1/QpdwNUFWEOIARHMfKN62LA2IW4WBLXfzw5LOHXsqr cpUHXTZ5iKhhNgAgztdPQVf/YCmmgFg5hK7VsTUECUzdI6OxcmuzIAHlQHhr5ph3nAbFKddgxnK7Z vtAyl9TBtaKxqYlyvuetfNLxpc//fXGDplQ30eW9QeiI+yoz4kTLVwrD0QHf5DsusNbujv1g1eas1 M/1dQKhLABRa2g==; From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> In-Reply-To: <cafb034c8454eff36ab6f8c40df6fc1699915923.1697747385.git.maxim.cournoyer@HIDDEN> (Maxim Cournoyer's message of "Thu, 19 Oct 2023 16:33:33 -0400") References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> <cafb034c8454eff36ab6f8c40df6fc1699915923.1697747385.git.maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 22:49:44 +0200 Message-ID: <878r7yxrpz.fsf_-_@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > From: Jakub K=C4=85dzio=C5=82ka <kuba@HIDDEN> > > * guix/build/utils.scm (substitute, substitute*) > [require-matches?]: New argument. > * tests/build-utils.scm ("substitute*"): New test group. > ("substitute*, no match error") > ("substitute*, partial no match error"): New tests. > > Co-authored-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN> > Change-Id: I66ed33d72aa73cd35e5642521efec70bf756f86e [...] > -(define (substitute file pattern+procs) > +(define* (substitute file pattern+procs #:key (require-matches? #t)) > "PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For = each > line of FILE, and for each PATTERN that it matches, call the correspondi= ng As discussed on IRC recently, I=E2=80=99d suggest: #:key (require-matches? (%substitute-requires-matches?)) where: (define %substitute-requires-matches? (make-parameter #t)) That way it=E2=80=99ll be easier to change the default for entire builds if= we need to. > + (when require-matches? > + (let ((failed-patterns (lset-difference > + string=3D? > + (delete-duplicates > + (map rx->pattern failed-matches= )) > + (delete-duplicates > + (map rx->pattern ok-matches))))) That=E2=80=99s potentially costly. Would it be enough to thread a list of unmatched regexps, and to (delq rx unmatched) every time RX is matched? (This is O(N) but N, the number of regexps, is typically a handful.) Then at the end, we=E2=80=99d check whether UNMATCHED is empty. > + (when (not (null? failed-patterns)) > + (raise (make-condition failed-patterns))))) SRFI-35 =E2=80=98make-condition=E2=80=99 expects different arguments. Should probably be: (raise (condition (&substitute-error =E2=80=A6))). > + ((substitute* file #:require-matches? require-matches? > + ((regexp match-var ...) body ...) ...) Maybe rather: (substitute* file ((regexp match-var ...) body ...) ... #:require-matches? require-matches?) That way we formatting remains unchanged. > +(test-group "substitute*" I=E2=80=99d avoid groups: they=E2=80=99re not super useful and the output w= ith the Automake driver is terrible. Ludo=E2=80=99.
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 20:53:01 +0000 Resent-Message-ID: <handler.42146.B42146.169774873815454 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.169774873815454 (code B ref 42146); Thu, 19 Oct 2023 20:53:01 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:52:18 +0000 Received: from localhost ([127.0.0.1]:37987 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qta0A-00041B-DV for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:52:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1qta08-00040y-9e for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:52:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1qtZzb-0005V0-RC; Thu, 19 Oct 2023 16:51:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=bMYJvslEynCB9T5ZdVE0Wrj4VsSFqeYTNnpymSI5xP0=; b=K1mFWsPd9gEKGyl/y7zo LMAHGHq10GG4fEYcdtw4KGUJ4M8S5WKdvVoJIKsHp0bYqWwHqIBSUcAJiMgJSQzIiE4Bw1rrPedak XskicOK8aDYjlPgCpXh45V0Zp+FvaKRrRm8c4Vp+8EfQHon/IPGIjBiEmJvdI6MqiZw1TTEGm8a0u l9IQF0vqVG9DQU24EWeOKBeAf4DOTyrGFTV621nnpQ5Oow2lmuc/mSCW5gv25orkv+A/APcoieLOA q1awNcef4bTupL7CVP3psyLk/Jduzo99vtqA1kNXE+CC2hSMYCzF6UYoiKQvQT1PoAjyKFqMUi39a 0pxq1q9xWJUDZg==; From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> In-Reply-To: <28fd2bd2039b4a4c0fe8fdaf1adbfb5956f683d5.1697747385.git.maxim.cournoyer@HIDDEN> (Maxim Cournoyer's message of "Thu, 19 Oct 2023 16:33:34 -0400") References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> <28fd2bd2039b4a4c0fe8fdaf1adbfb5956f683d5.1697747385.git.maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 22:51:40 +0200 Message-ID: <874jimxrmr.fsf_-_@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > From: Jakub K=C4=85dzio=C5=82ka <kuba@HIDDEN> > > Matches are not required here, as not every file will use every > variable. > > * guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass > #:require-matches? #f to substitute*. > > Signed-off-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN> To me these two special cases suggest we may discover other more cases where it=E2=80=99s okay to not match and we=E2=80=99d think. We=E2=80=99ll= need a dedicated branch built on ci.guix to assess that. Thanks for working on it! Ludo=E2=80=99.
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Thu, 19 Oct 2023 23:56:02 +0000 Resent-Message-ID: <handler.42146.B42146.16977597396241 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.16977597396241 (code B ref 42146); Thu, 19 Oct 2023 23:56:02 +0000 Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 23:55:39 +0000 Received: from localhost ([127.0.0.1]:38224 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtcrW-0001cS-Ns for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 19:55:39 -0400 Received: from mail-yb1-xb2a.google.com ([2607:f8b0:4864:20::b2a]:53435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtcrQ-0001c5-Ev for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 19:55:33 -0400 Received: by mail-yb1-xb2a.google.com with SMTP id 3f1490d57ef6-d9c2420e417so260083276.2 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 16:55:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697759695; x=1698364495; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=L9kLZcRUZlfCXVUUHPUJL7lHrlzZ74gYL10hQlIy3O0=; b=TjBy8VO9eDtND+MhbhRbpbBxako95TrGBxHwFcdGHHS4LnZM9sEkJfleWV7AgQvKBC vJWEf2QKLEkmATTHB9lcq1J+sOpKMo7D9pd5Ev6HVFliYtT1LEo6CoGfMfpgbrZ+4Tff 62UxcPcIudnzM7a78yCcnhaUlymfV2X2JByca8Lo/mnO919GHmK7AN0FbasgWaD2vn8e 1wlBc9JodQl7XtHaKM+wlR9LZBceLZf4/4/pJtriHVSh0zguL7nKDWL7mUT0V7BROYga D7r5etrA0BSLxJGoozNkSkGPzWS0mT7+clGNiGNj0A5vkRCz9G7a95SMsplO0qY/LTFE R8FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697759695; x=1698364495; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=L9kLZcRUZlfCXVUUHPUJL7lHrlzZ74gYL10hQlIy3O0=; b=SbpuvJlsBVK426Ncu7NyReBAXl5G8WyWDzjh7rMR4OG/lStP8k+2zYKlREHomO8V+1 HT7D7rdqCSUnWFzx+BZgOC/qpwH3hsDYhWuVC7q15ic+NN/Y7c9eqy0KDG6rdE4b09S1 /89Z0lmwbGdciWoNg19Gu4YgsNpRAa8UVh5Bo22B2O7DMEBSNS1m02/I2ugBinUfNk3q d+bcKvHVwgf1PedpP06BPeH7HNF7mixwioj9LjEHnnukYyNYzS40Yb7ew8aNQEB6qlFs zQB0c9PwbLR9f59qG6ZzTzEF8bDS20gvGWM3JDA/u4h0yDN7TfJ1EIbyB7li1NAkmxEw PG3A== X-Gm-Message-State: AOJu0YwyQQRegc5QzelfIJ+4/dpQHwP2yv5VDKdnw4vZ2p25tq7sSyPG u0uoPh9asr9WkzO4CDjdiEggJUZZc/jm6g== X-Google-Smtp-Source: AGHT+IFu3+yU+d0J3kp1Tu8835UPtlMfXCbkPMONduRw7O8ZPGgAnM19FMezz+qr93D9aYo+CnD36A== X-Received: by 2002:a05:6902:136d:b0:d9a:3bf2:54a6 with SMTP id bt13-20020a056902136d00b00d9a3bf254a6mr254754ybb.46.1697759695337; Thu, 19 Oct 2023 16:54:55 -0700 (PDT) Received: from hurd (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id fu8-20020a05622a5d8800b004181138e0c0sm188009qtb.31.2023.10.19.16.54.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 16:54:54 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> In-Reply-To: <87lebyxs4y.fsf_-_@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Thu, 19 Oct 2023 22:40:45 +0200") References: <20200630220913.14665-1-kuba@HIDDEN> <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> <87lebyxs4y.fsf_-_@HIDDEN> Date: Thu, 19 Oct 2023 19:54:53 -0400 Message-ID: <87pm1anp6a.fsf_-_@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Ludo, Ludovic Court=C3=A8s <ludo@HIDDEN> writes: > Hi, > > Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > >> * etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to... >> * guix/build/utils.scm: ... here. >> (list-matches*): New procedure. > > > [...] > >> +++ b/guix/build/utils.scm > > [...] > >> +;;; >> +;;; Extend regexp objects with a pattern field. >> +;;; >> +(define-record-type <regexp*> >> + (%make-regexp* pat flag rx) >> + regexp*? >> + (pat regexp*-pattern) ;the regexp pattern, a string >> + (flag regexp*-flag) ;regexp flags >> + (rx regexp*-rx)) ;the compiled regexp object >> + >> +;;; Work around regexp implementation. >> +;;; This record allows to track the regexp pattern and then display it. >> +(define* (make-regexp* pat #:optional (flag regexp/extended)) > > I=E2=80=99m skeptical about the concrete benefits. I would not include i= t in > (guix build utils), or at least not in this patch series. > > (I tend to be super conservative about (guix build utils) because we > rarely get a chance to change it.) The original users are substitute* and the teams.scm script. Since substitute* is from (guix build utils), it makes sense to add it there as well, since they are coupled. The benefit is concrete: it makes it possible to show which regexp pattern failed to match (its textual representation), instead of something much less useful such as a generic placeholder such as "<unknown> (regexp)". It's in actual use if you look at the definition of substitute: --8<---------------cut here---------------start------------->8--- (let ((rx+proc (map (match-lambda (((or (? regexp? pattern) (? regexp*? pattern)) . p= roc) (cons pattern proc)) ((pattern . proc) (cons (make-regexp* pattern regexp/extended) proc)= )) pattern+procs))) --8<---------------cut here---------------end--------------->8--- The previous version followed a different approach, annotating the rx+proc list with the raw pattern; I think the approach here is a bit cleaner, and it should also enable users to pass pre-computed regexp* objects to substitute* and have useful error messages produced. --=20 Thanks, Maxim
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH v3 2/3] build: substitute: Error when no substitutions were done. Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: kuba@HIDDEN, maxim.cournoyer@HIDDEN, ludo@HIDDEN, guix-patches@HIDDEN Resent-Date: Fri, 20 Oct 2023 00:59:02 +0000 Resent-Message-ID: <handler.42146.B42146.169776351414362 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> X-Debbugs-Original-Xcc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.169776351414362 (code B ref 42146); Fri, 20 Oct 2023 00:59:02 +0000 Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 00:58:34 +0000 Received: from localhost ([127.0.0.1]:38243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtdqT-0003jY-OW for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:34 -0400 Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]:54714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtdqR-0003jD-CA for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:32 -0400 Received: by mail-vs1-xe33.google.com with SMTP id ada2fe7eead31-4580a2ec248so87551137.1 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 17:58:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697763478; x=1698368278; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2eiEVVW1YIPDVs3/30xqVWj4WCnrhALxoLlMnwbevBc=; b=IoKCbPRX35cahet1V/Dzbj+HX18OnMOHFotZRlCTd0/B2kTHs+RJ+oWcO9lZYOmEtI IioWxCnUsx+iYskfZ/Ia0gFGf2Q4DBgTtfhTNflV+aZPRUk1HAt1WBGoGN5Yq22feKdL DpObCGX4Fe9zc5iB/Y+bFifLdMgNL7fzVrI3rfHdjH8c/hyq/JSzlywM1ZRXq9yLXd6p Uk3AYW2OWCneLucuGejW6+T4ZLJ0Eayg9Oqwhb81Tbun6IvD71Xc2Ahh8U7FInv9ZSRR 8eIu2PyHsF2U6Afqz/5YE0TA54GtoUe9LxXQdL7m5uXHub5U1QGX0SsVCnGvxIUS5z88 Bupg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697763478; x=1698368278; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2eiEVVW1YIPDVs3/30xqVWj4WCnrhALxoLlMnwbevBc=; b=rPZ7FPqphoYnjKWiQXsX5Jzd3eWsiX2jVdmppg82AQZIU9VccaN0uz59d/GqcA3/bV Vf2674tTO7TvV7/XY6lB7Pu1HYyVsGB5EOc+qhYYz+IxfpJW5n8QC0xS8ctSBE0d1+5t ZDvyOUgMzWt/NwqoXJRS2byes2CRnscOsjBcVS9IOcJAiVkSt5KCPB1T66zJroxxVEB1 BN1yO1QHkaiRXzfUHE6wYPCWGsibAOKX6NN0ZOTlhJT/aurOXisP/VBSskO5EKySsxRl +cTEfcbZ6H6HAZnMp/GKCh7RYLxIgvUshSLoCzVXV2eUQ3+jXQHYy0Ngv7Ia6qnMSWKZ Dk6g== X-Gm-Message-State: AOJu0Ywt1LJcsT05HvPH15a66wqfiunS6j/VTDmRqA+lZo4t762dKpcA yFeSz0uAXSxeq7qdmebYmXcgh5rgVsUp3g== X-Google-Smtp-Source: AGHT+IFfRU5dHNsQoMCxDMmAySoleppZPRIpE66fblrMLPEF5zzKO8dSii5CS3s278SeXBnLIP/A1A== X-Received: by 2002:a05:6102:20c4:b0:457:7138:fa74 with SMTP id i4-20020a05610220c400b004577138fa74mr552529vsr.35.1697763478521; Thu, 19 Oct 2023 17:57:58 -0700 (PDT) Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id h9-20020a0cf8c9000000b0065d0a4262e0sm279097qvo.70.2023.10.19.17.57.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 17:57:58 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 20:57:39 -0400 Message-ID: <d80dd0e1134cf608c69f3aaa0769f95a37f35e55.1697763444.git.maxim.cournoyer@HIDDEN> X-Mailer: git-send-email 2.41.0 In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN> References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) From: Jakub Kądziołka <kuba@HIDDEN> * guix/build/utils.scm (substitute, substitute*) [require-matches?]: New argument. * tests/build-utils.scm ("substitute*"): New test group. ("substitute*, no match error") ("substitute*, partial no match error"): New tests. Co-authored-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Change-Id: I66ed33d72aa73cd35e5642521efec70bf756f86e --- guix/build/utils.scm | 93 +++++++++++++++++++++++++++++++++---------- tests/build-utils.scm | 68 +++++++++++++++++++++---------- 2 files changed, 118 insertions(+), 43 deletions(-) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 2b3a8e278b..8e4b8321dd 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -6,7 +6,8 @@ ;;; Copyright © 2018, 2022 Arun Isaac <arunisaac@HIDDEN> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@HIDDEN> ;;; Copyright © 2020 Efraim Flashner <efraim@HIDDEN> -;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> +;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN> ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN> ;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN> ;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN> @@ -111,8 +112,14 @@ (define-module (guix build utils) modify-phases with-atomic-file-replacement + %substitute-requires-matches? substitute substitute* + &substitute-error + substitute-error? + substitute-error-file + substitute-error-patterns + dump-port set-file-time patch-shebang @@ -971,24 +978,51 @@ (define (replace-char c1 c2 s) c)) s))) -(define (substitute file pattern+procs) +(define-condition-type &substitute-error &error + substitute-error? + (file substitute-error-file) + (patterns substitute-error-patterns)) + +(define %substitute-requires-matches? + (make-parameter #t)) + +(define* (substitute file pattern+procs + #:key (require-matches? (%substitute-requires-matches?))) "PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For each line of FILE, and for each PATTERN that it matches, call the corresponding PROC as (PROC LINE MATCHES); PROC must return the line that will be written as a substitution of the original line. Be careful about using '$' to match the -end of a line; by itself it won't match the terminating newline of a line." - (let ((rx+proc (map (match-lambda - (((? regexp? pattern) . proc) +end of a line; by itself it won't match the terminating newline of a line. + +By default, SUBSTITUTE will raise a &substitute-error condition if one of the +patterns fails to match. REQUIRE-MATCHES? can be set to false when lack of +matches is acceptable (e.g. if you have multiple potential patterns not +guaranteed to be found in FILE)." + (define (rx->pattern m) + (match m + ((? regexp? pattern) + "<unknown pattern (regexp)>") + ((? regexp*? pattern) + (regexp*-pattern pattern)) + ((? string? pattern) + pattern))) + + (let ((rx+proc (map (match-lambda + (((or (? regexp? pattern) (? regexp*? pattern)) . proc) (cons pattern proc)) ((pattern . proc) - (cons (make-regexp pattern regexp/extended) - proc))) - pattern+procs))) + (cons (make-regexp* pattern regexp/extended) proc))) + pattern+procs))) (with-atomic-file-replacement file (lambda (in out) - (let loop ((line (read-line in 'concat))) + (let loop ((line (read-line in 'concat)) + (unmatched-regexps (map first rx+proc))) (if (eof-object? line) - #t + (when (and require-matches? (not (null? unmatched-regexps))) + (raise (condition + (&substitute-error + (file file) + (patterns (map rx->pattern unmatched-regexps)))))) ;; Work around the fact that Guile's regexp-exec does not handle ;; NUL characters (a limitation of the underlying GNU libc's ;; regexec) by temporarily replacing them by an unused private @@ -998,19 +1032,23 @@ (define (substitute file pattern+procs) (unused-private-use-code-point line)) #\nul)) (line* (replace-char #\nul nul* line)) - (line1* (fold (lambda (r+p line) - (match r+p - ((regexp . proc) - (match (list-matches regexp line) - ((and m+ (_ _ ...)) - (proc line m+)) - (_ line))))) - line* - rx+proc)) + (results ;line, unmatched-regexps + (fold (lambda (r+p results) + (let ((line (first results)) + (unmatched (second results))) + (match r+p + ((regexp . proc) + (match (list-matches* regexp line) + ((and m+ (_ _ ...)) + (list (proc line m+) + (delq regexp unmatched))) + (_ (list line unmatched))))))) + (list line* unmatched-regexps) + rx+proc)) + (line1* (first results)) (line1 (replace-char nul* #\nul line1*))) (display line1 out) - (loop (read-line in 'concat))))))))) - + (loop (read-line in 'concat) (second results))))))))) (define-syntax let-matches ;; Helper macro for `substitute*'. @@ -1048,9 +1086,19 @@ (define-syntax substitute* Alternatively, FILE may be a list of file names, in which case they are all subject to the substitutions. +By default, SUBSTITUTE* will raise a &message condition if one of the patterns +fails to match on one of the files; REQUIRE-MATCHES? may be set to false to +avoid an error being raised in such condition. + Be careful about using '$' to match the end of a line; by itself it won't match the terminating newline of a line." ((substitute* file ((regexp match-var ...) body ...) ...) + (substitute* file + ((regexp match-var ...) body ...) ... + #:require-matches? #t)) + ((substitute* file + ((regexp match-var ...) body ...) ... + #:require-matches? require-matches?) (let () (define (substitute-one-file file-name) (substitute @@ -1074,7 +1122,8 @@ (define-syntax substitute* (begin body ...) (substring l o (match:start m)) r)))))))) - ...))) + ...) + #:require-matches? require-matches?)) (match file ((files (... ...)) diff --git a/tests/build-utils.scm b/tests/build-utils.scm index 3babf5d544..35c66faa3c 100644 --- a/tests/build-utils.scm +++ b/tests/build-utils.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@HIDDEN> ;;; Copyright © 2019 Ricardo Wurmus <rekado@HIDDEN> -;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN> +;;; Copyright © 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN> ;;; Copyright © 2021 Maxime Devos <maximedevos@HIDDEN> ;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN> ;;; @@ -289,26 +289,52 @@ (define (arg-test bash-args) (test-assert "wrap-script, argument handling, bash --norc" (arg-test " --norc")) -(test-equal "substitute*, text contains a NUL byte, UTF-8" - "c\0d" - (with-fluids ((%default-port-encoding "UTF-8") - (%default-port-conversion-strategy 'error)) - ;; The GNU libc is locale sensitive. Depending on the value of LANG, the - ;; test could fail with "string contains #\\nul character: ~S" or "cannot - ;; convert wide string to output locale". - (setlocale LC_ALL "en_US.UTF-8") - (call-with-temporary-output-file - (lambda (file port) - (format port "a\0b") - (flush-output-port port) - - (substitute* file - (("a") "c") - (("b") "d")) - - (with-input-from-file file - (lambda _ - (get-string-all (current-input-port)))))))) +(define-syntax-rule (define-substitute*-test test-type name expected + content clauses ...) + (test-type + name + expected + (with-fluids ((%default-port-encoding "UTF-8") + (%default-port-conversion-strategy 'error)) + ;; The GNU libc is locale sensitive. Depending on the value of LANG, + ;; the test could fail with "string contains #\\nul character: ~S" or + ;; "cannot convert wide string to output locale". + (setlocale LC_ALL "en_US.UTF-8") + (call-with-temporary-output-file + (lambda (file port) + (format port content) + (flush-output-port port) + + (substitute* file + clauses ...) + + (with-input-from-file file + (lambda _ + (get-string-all (current-input-port))))))))) + +(define-substitute*-test test-equal + "substitute*, text contains a NUL byte, UTF-8" + "c\0d" ;expected + "a\0b" ;content + (("a") "c") + (("b") "d")) + +(define-substitute*-test test-error "substitute*, no match error" + #t ;expected + "a\0b" ;content + (("Oops!") "c")) + +(define-substitute*-test test-equal "substitute*, no match, ignored" + "abc" ;expected + "abc" ;content + (("Oops!") "c") + #:require-matches? #f) + +(define-substitute*-test test-error "substitute*, partial no match error" + #t ;expected + "a\0b" ;content + (("a") "c" + ("Oops!") "c")) (test-equal "search-input-file: exception if not found" `((path) -- 2.41.0
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH v3 1/3] build: Relocate <regexp*> record and associated procedures here. References: <20200630220913.14665-1-kuba@HIDDEN> In-Reply-To: <20200630220913.14665-1-kuba@HIDDEN> Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: kuba@HIDDEN, maxim.cournoyer@HIDDEN, ludo@HIDDEN, guix-patches@HIDDEN Resent-Date: Fri, 20 Oct 2023 00:59:02 +0000 Resent-Message-ID: <handler.42146.B42146.169776351814380 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Cc: Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> X-Debbugs-Original-Xcc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.169776351814380 (code B ref 42146); Fri, 20 Oct 2023 00:59:02 +0000 Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 00:58:38 +0000 Received: from localhost ([127.0.0.1]:38246 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtdqU-0003jb-Ix for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:38 -0400 Received: from mail-qv1-xf2f.google.com ([2607:f8b0:4864:20::f2f]:47167) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtdqO-0003j9-BQ for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:32 -0400 Received: by mail-qv1-xf2f.google.com with SMTP id 6a1803df08f44-66d13ac2796so1888046d6.2 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 17:58:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697763475; x=1698368275; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=; b=fYv1je81APKTsJHbV9G021GqdvuqdJEOrNmp2WQ0WUiazmrxHuYtz55PnspYBzl4Jv +SJvcGjrxjruNQubqTyG7mBtoZsH/ahkc2MiJMfhEnoibnrTnGmG5VGE4d62N0PliE7w dRDRHSSoVQKm/kFSg5cYVNB0dOQkxSdKTDh0bIp/MaqY6WAdYy3yvx5pewi4cgMKgtAt ER8vRy2C7hcyzSIMWjQ1ey+ZZzIPG2eWu53aKXlEu+TtMUE3ZJmEeu1RcuAGRvgSCdbe RATJ1pr8FtANKROMccMw+9qnB3LJN6ZwIIlnRScAtDCDEn0+5RPoHwG6S8DDNxQ9m83y 2GCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697763475; x=1698368275; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=; b=jitFJH448g91fKKm8O63DROdN0WXC6kDIFLu4/y8v5qBNghHnNqJoZh36eC6wHGfN5 guzbG/HSupt4R6wi8fzzYTMwR90i+5mRKQvzRSK2lrxj3zO8S4OB365NL/aSTcnFWWmc pP2RFI1dmoGCxOn2z2nhMIbe08Da4h+tzjW/Zp5sghLiRWV14uiq2Kc6w9ptWVEz3h4q KKOVPP4lkio5vKwUmK8lx9ZxAXPcuj90idZ1ZUYwdUd/1H6T3w81unkBJzp7kAJTDvCi oLFyNpMaPXieuzsBSLmYf29PlX6bstVMTnEVfmpSr6EQ6mT4fHHajGxsZnhakHqMtsRy qMVw== X-Gm-Message-State: AOJu0YwJ8ifcE6Qv/WP766lzudr0cvdBf66kYDUlFIbyaQdN0FfXmzir +z4UOR48fF/UXxh/W3FTkhFspNuNvwAVxQ== X-Google-Smtp-Source: AGHT+IEJVakeO2yux+B7vvrMP2473/ogqwLqgym3fKCN/Q3Do0ZvCANcovJqXZBFZSkb7PR+sQaKaQ== X-Received: by 2002:a05:6214:230f:b0:66d:62b7:53f4 with SMTP id gc15-20020a056214230f00b0066d62b753f4mr517492qvb.45.1697763475332; Thu, 19 Oct 2023 17:57:55 -0700 (PDT) Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id h9-20020a0cf8c9000000b0065d0a4262e0sm279097qvo.70.2023.10.19.17.57.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 17:57:54 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 20:57:38 -0400 Message-ID: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to... * guix/build/utils.scm: ... here. (list-matches*): New procedure. Change-Id: I566ac372f7d8ba08de94e19b54dcc68da2106a23 --- etc/teams.scm.in | 19 +------------------ guix/build/utils.scm | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/etc/teams.scm.in b/etc/teams.scm.in index 55242caad1..8af25b9802 100644 --- a/etc/teams.scm.in +++ b/etc/teams.scm.in @@ -34,29 +34,12 @@ (srfi srfi-9) (srfi srfi-26) (ice-9 format) - (ice-9 regex) (ice-9 match) (ice-9 rdelim) + (guix build utils) (guix ui) (git)) -(define-record-type <regexp*> - (%make-regexp* pat flag rx) - regexp*? - (pat regexp*-pattern) - (flag regexp*-flag) - (rx regexp*-rx)) - -;;; Work around regexp implementation. -;;; This record allows to track the regexp pattern and then display it. -(define* (make-regexp* pat #:optional (flag regexp/extended)) - "Alternative to `make-regexp' producing annotated <regexp*> objects." - (%make-regexp* pat flag (make-regexp pat flag))) - -(define (regexp*-exec rx* str) - "Execute the RX* regexp, a <regexp*> object." - (regexp-exec (regexp*-rx rx*) str)) - (define-record-type <team> (make-team id name description members scope) team? diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 8e630ad586..2b3a8e278b 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN> ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN> ;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN> +;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN> ;;; Copyright © 2023 Carlo Zancanaro <carlo@HIDDEN> ;;; ;;; This file is part of GNU Guix. @@ -28,6 +29,7 @@ (define-module (guix build utils) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) @@ -55,6 +57,14 @@ (define-module (guix build utils) package-name->name+version parallel-job-count + make-regexp* + regexp*-exec + regexp*? + regexp*-pattern + regexp*-flag + regexp*-rx + list-matches* + compressor tarball? %xz-parallel-args @@ -163,6 +173,35 @@ (define-syntax-rule (define-constant name val) (module-replace! (current-module) '(setvbuf))) (else #f)) + +;;; +;;; Extend regexp objects with a pattern field. +;;; +(define-record-type <regexp*> + (%make-regexp* pat flag rx) + regexp*? + (pat regexp*-pattern) ;the regexp pattern, a string + (flag regexp*-flag) ;regexp flags + (rx regexp*-rx)) ;the compiled regexp object + +;;; Work around regexp implementation. +;;; This record allows to track the regexp pattern and then display it. +(define* (make-regexp* pat #:optional (flag regexp/extended)) + "Alternative to `make-regexp' producing annotated <regexp*> objects." + (%make-regexp* pat flag (make-regexp pat flag))) + +(define (regexp*-exec rx* str) + "Execute the RX* regexp, a <regexp*> object." + (regexp-exec (regexp*-rx rx*) str)) + +(define* (list-matches* regexp str #:optional (flags regexp/extended)) + "Like 'list-matches', but also accepting a regexp* as REGEXP." + (match regexp + ((or (? string?) (? regexp?)) + (list-matches regexp str flags)) + ((? regexp*?) + (list-matches (regexp*-rx regexp) str flags)))) + ;;; ;;; Compression helpers. base-commit: d59653b7c9e43ebdbba20e2ca071429507f94c67 -- 2.41.0
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH v3 3/3] build: bootstrap-configure: Allow lack of matches in substitute. Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: kuba@HIDDEN, maxim.cournoyer@HIDDEN, ludo@HIDDEN, guix-patches@HIDDEN Resent-Date: Fri, 20 Oct 2023 00:59:03 +0000 Resent-Message-ID: <handler.42146.B42146.169776352014389 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42146 <at> debbugs.gnu.org Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> X-Debbugs-Original-Xcc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.169776352014389 (code B ref 42146); Fri, 20 Oct 2023 00:59:03 +0000 Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 00:58:40 +0000 Received: from localhost ([127.0.0.1]:38248 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtdqZ-0003k0-Ou for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:40 -0400 Received: from mail-qv1-xf2b.google.com ([2607:f8b0:4864:20::f2b]:57766) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtdqU-0003jI-8T for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:34 -0400 Received: by mail-qv1-xf2b.google.com with SMTP id 6a1803df08f44-66d1ef93284so1846436d6.3 for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 17:58:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697763481; x=1698368281; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Okco+31FqmL/2OCY1wTsGhnDcafE/pDvBRDkBKQDPMQ=; b=aD+J7qj0wzdhyo/s9o/3AXEL9x8CD1em8R2Uv0XT/GngQFOEA0Ix+I8kK5HrLpBBEF KNvgbAI+cRKYyI2sXjBoGvZkihQTh3T6AePJ1kMnW1BEOXgrSBIBp8W4aGg/ZXxwYwTJ Vvf4yaUgfC3odrFRSCiEuPoq2UKX+TDCnRNHFT8aP8dyjqjzA/8Y2XcEZctx1U/NSraH eAj2BL4ry5bh92M50x5NLMBoUM2G2gvYcTD5DMZuRRrAsGZZO+0p6GoBNyNwqNKCAKE2 AnWOZTn6QGBciMF4WpZw+B7+YZO+VoN2RME7VhcWVsyeGQg1TMgKcDk75qmMGAAoAvn3 PpMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697763481; x=1698368281; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Okco+31FqmL/2OCY1wTsGhnDcafE/pDvBRDkBKQDPMQ=; b=PDtSoIX3DO67IsKMPhqlLqR4Wu7bhKvbvBA3rHLoDcxCmYq4ZmJwexsdbDbwCPLS6H KHqPsV2rWqt3SJvBot/o1VxLIsZfa90ENWsjFu2LMSxoXILQ3SUVJGReegyJk/nWJYsI 5C2sk5S1DPCm6xoVVZVAkvRyFa2dgffO3xxIByMvHi37wgnhDxyRny0kjk8TkbJ1vNSO AHOBPRcdBY266CXuRMNO+s3K+Nndy15lynHkP7Ua88a6k2vxL0P/NhhkSQbrvE9NUx1i U4EYzWUfwx8AH4Cf3LWPxJq36Mz5Xa8CsvPo2r+SkQAzbprS7Nc2/pAqIB09XLRT7jgi sC7A== X-Gm-Message-State: AOJu0YwrplRQ8NAbe0WGf8ELyQ7u+L8CSX4B45oHPzWfWhq+BhcB2TMr /yzV4LnMeYL+QQwDqOYYet3Za0OK0L23sA== X-Google-Smtp-Source: AGHT+IHOeyg2TlEhzsDG7QYDtqv0C6wCL/uCNhGfkHtGddGZCAeNQkqnKQPedJhYS+Ay1qDn0g0RDg== X-Received: by 2002:a05:6214:519e:b0:66d:140a:18f3 with SMTP id kl30-20020a056214519e00b0066d140a18f3mr541647qvb.45.1697763481643; Thu, 19 Oct 2023 17:58:01 -0700 (PDT) Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id h9-20020a0cf8c9000000b0065d0a4262e0sm279097qvo.70.2023.10.19.17.58.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 17:58:01 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 20:57:40 -0400 Message-ID: <0d8764ba1b635d49c07cc1d47f3dcc620bbf482d.1697763444.git.maxim.cournoyer@HIDDEN> X-Mailer: git-send-email 2.41.0 In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN> References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) From: Jakub Kądziołka <kuba@HIDDEN> Matches are not required here, as not every file will use every variable. * guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass #:require-matches? #f to substitute*. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Change-Id: I7eee433a3af5fa310b3f2e8b8b58ac9befb4b56a --- guix/build/gnu-bootstrap.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/guix/build/gnu-bootstrap.scm b/guix/build/gnu-bootstrap.scm index b4257a3717..b097f410ad 100644 --- a/guix/build/gnu-bootstrap.scm +++ b/guix/build/gnu-bootstrap.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020, 2022 Timothy Sample <samplet@HIDDEN> +;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,7 +53,8 @@ (define (bootstrap-configure name version modules scripts) (copy-file template target) (substitute* target (("@PACKAGE_NAME@") name) - (("@VERSION@") version)))) + (("@VERSION@") version) + #:require-matches? #f))) (append-map (lambda (dir) (find-files dir "\\.in$")) modules)) (for-each (lambda (template) @@ -62,12 +64,12 @@ (define (bootstrap-configure name version modules scripts) (substitute* target (("@GUILE@") guile) (("@MODDIR@") moddir) - (("@GODIR@") godir)) + (("@GODIR@") godir) + #:require-matches? #f) (chmod target #o755))) (find-files scripts (lambda (fn st) - (string-suffix? ".in" fn)))) - #t))) + (string-suffix? ".in" fn))))))) (define (bootstrap-build modules) "Create a procedure that builds an early bootstrap package. The -- 2.41.0
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Simon Tournier <zimon.toutoune@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Fri, 20 Oct 2023 15:27:02 +0000 Resent-Message-ID: <handler.42146.B42146.16978155831610 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.16978155831610 (code B ref 42146); Fri, 20 Oct 2023 15:27:02 +0000 Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 15:26:23 +0000 Received: from localhost ([127.0.0.1]:41208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtrOJ-0000Pp-47 for submit <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:26:23 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:38220) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <zimon.toutoune@HIDDEN>) id 1qtrOE-0000P0-Ej for 42146 <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:26:19 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-32da4180ca2so151971f8f.1 for <42146 <at> debbugs.gnu.org>; Fri, 20 Oct 2023 08:25:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697815545; x=1698420345; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=2mZk0WVr6Xg0sCIQhm6espXC6FInpPUvKaLbGTuBdfw=; b=fSVmO7gnZQy14s4wPr+RZ+CcCqY+q9icqsxD6oRK8PEaYEbPx3JSUCPkZhz9Z9CdQo bhBhR2p+e7uA+/8GrS/isWQOiuYKagV2w8V0K/fR0FC1eYxc60jd7DjJY6OAzTfGTwIe ZMjvu7bxYm3kJa6QhGowTpXCO3gdga6JJrVGC++fUDx/702ro+MiUUD1kedRd3znint0 GZsKgbQGR5RahrOgyx1f6L+f1e1Wxd05k1XtvilpSDm5n/ELVBvzc9JC/ShrZ4rUVwi5 MAnRU+fJNhzW5tdp2FSLnkXa6jkUZY4CIZZBUda4EML0GsYekNP3e0i3fo7GcgifEoe7 v4Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697815545; x=1698420345; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2mZk0WVr6Xg0sCIQhm6espXC6FInpPUvKaLbGTuBdfw=; b=xBnHR3kfKDl56CJik4+ibyrHwRYW+weaUn63kxa/Nlt039+HsGmGbJoSU83tg8zfmk Pp7nuxYBgdGyHMYT+6EtJAsLcn+bvvuZGlraVEWZjgQiw3AQ/sYJNE9eMw11Nxhlbrsd ac6XPDURzrJiq/zp1TYRgbc7akWblzRNsn80j0brzoLno/COcD/Y5nTCO8qebp2LQ/Di bWkM90Lf1iFh8y672woTvanMjCGZzQsl3n629nzZZwlT6CewXPPuWl90uXhZBjo7I/TL c5SkQrZKyDsUIdR8zT+j6DJFkYGkgsJoyeyJ2kehR16bTk4YjIkLsdkB5inuPCwumSZ3 +b8g== X-Gm-Message-State: AOJu0YwwuvOPe+KRCd0HUIzccjtqFCkVLYycuUYYGGeCHQg8y2Zpqm9X 4aoxyz4E2pJw75Lu/oOPx+gPQaGwSqI= X-Google-Smtp-Source: AGHT+IFxqtEoRIYyH3qMBkrAmXe1hzS4V3GzYEuPfUUNenkIO+mCuiDupUj8ZnKYG1qvaD6KCXm56Q== X-Received: by 2002:adf:ef52:0:b0:32d:e4b9:4851 with SMTP id c18-20020adfef52000000b0032de4b94851mr1470848wrp.7.1697815545402; Fri, 20 Oct 2023 08:25:45 -0700 (PDT) Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id f4-20020a5d50c4000000b0032da319a27asm1928471wrt.9.2023.10.20.08.25.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 08:25:45 -0700 (PDT) From: Simon Tournier <zimon.toutoune@HIDDEN> In-Reply-To: <87lebyxs4y.fsf_-_@HIDDEN> References: <20200630220913.14665-1-kuba@HIDDEN> <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> <87lebyxs4y.fsf_-_@HIDDEN> Date: Fri, 20 Oct 2023 17:11:05 +0200 Message-ID: <874jilmira.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Ludo, On Thu, 19 Oct 2023 at 22:40, Ludovic Court=C3=A8s <ludo@HIDDEN> wrote: >> +;;; >> +;;; Extend regexp objects with a pattern field. >> +;;; >> +(define-record-type <regexp*> >> + (%make-regexp* pat flag rx) >> + regexp*? >> + (pat regexp*-pattern) ;the regexp pattern, a string >> + (flag regexp*-flag) ;regexp flags >> + (rx regexp*-rx)) ;the compiled regexp object >> + >> +;;; Work around regexp implementation. >> +;;; This record allows to track the regexp pattern and then display it. >> +(define* (make-regexp* pat #:optional (flag regexp/extended)) > > I=E2=80=99m skeptical about the concrete benefits. I would not include i= t in > (guix build utils), or at least not in this patch series. > > (I tend to be super conservative about (guix build utils) because we > rarely get a chance to change it.) If I remember correctly, the record was introduced in #58660 [1]. Basically, if you have, (make-regexp "^gnu/packages/python(-.+|)\\.scm$") then you only have access to some #<regexp 7f6315fb3500>. Other said, you lost the human-readable "^gnu/packages/python(-.+|)\\.scm$" regexp pattern. The workaround just stores this human-readable regexp pattern. Later, it is thus possible to display it; for debugging or else. For the location of such feature, I do not have an opinion. For the concrete benefits, I have one. :-) Well, maybe the feature =E2=80=93 keep an access to the human-readable rege= xp pattern =E2=80=93 could be implemented on Guile-side. Or maybe there is another simpler way that I am not aware of? Cheers, simon 1: https://issues.guix.gnu.org/58660
X-Loop: help-debbugs@HIDDEN Subject: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Fri, 20 Oct 2023 15:40:01 +0000 Resent-Message-ID: <handler.42146.B42146.16978163813474 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 42146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Simon Tournier <zimon.toutoune@HIDDEN> Cc: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, 42146 <at> debbugs.gnu.org Received: via spool by 42146-submit <at> debbugs.gnu.org id=B42146.16978163813474 (code B ref 42146); Fri, 20 Oct 2023 15:40:01 +0000 Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 15:39:41 +0000 Received: from localhost ([127.0.0.1]:41238 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtrbB-0000ty-Bd for submit <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:39:41 -0400 Received: from mail-qk1-x735.google.com ([2607:f8b0:4864:20::735]:54370) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtrb9-0000th-7A for 42146 <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:39:39 -0400 Received: by mail-qk1-x735.google.com with SMTP id af79cd13be357-7789a4c01easo59274685a.0 for <42146 <at> debbugs.gnu.org>; Fri, 20 Oct 2023 08:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697816346; x=1698421146; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=F3SxY+yyDTuA7OsgScSzM199hGmcfhJYuYfLKzt67FQ=; b=cufi3ZipZqp27gh/vy1VccyQgZrcynUh6ifKn1rIUNFe3ADMlKoiscPWDnO8+ZGHbA 8xh02rpb8KI91awPsoX0PhkTzvQ+qzYdgXkrP60WEhZdqfKWzfOE+E04CKOgSxRwSosz veWPmUi57J+BYVFLtRKXPJ4JdZYnDbbcKHnskWxqwLG4mEfc1m+nHDNK3xKz/608GJjq Lks4MmZWtRrf8aSLLsFK9mRfkXK6TnS85HVRtaBu35fHWeJRmDbaOIh4D6qLhQmh+s3t GH6HUu9l9165sfGcZaPeQk7QskiYmeo5uC75jfyNpfI8Vyx+q1C31m6FlcwEbDhpzGGy FAvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697816346; x=1698421146; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=F3SxY+yyDTuA7OsgScSzM199hGmcfhJYuYfLKzt67FQ=; b=KcDbWKN+NlvQzuIpSBNDC6GAQm7i99QJ5kpUPvQ8GWUeGfuaAi+uUeYJHnXKYTpsfD nlcMLCkVox7pP20cQ5Tit978H1Ws0YmjV+DE9DJ9htztHKvoMENa1TYij7tbY+x+h2/M ey0nxAGq4PoU22u+ChGV3iPWzM+z99msu7s/elkPxG6ADikVcSeMtsC0gCN2xpHPecje FsI3QKmK1L/Zh3sgiupPf2Wx6l/6QfoCdWrG4nwKJEwLteVU+ujxkkHUBkiN6hjfzrnJ skePE8qPlIm/rcR+j7cWzcBeY8P35gOqPaglLi9oxA8qDqdtcuJjmviLRgajIbZOYMa8 1E5Q== X-Gm-Message-State: AOJu0Yz0x9egm4E6YJrl+dEmuuWIyyiFEpx2CR3xHYUz3cPOeuU5mOUt Lcdh/hDlwAFrr7GyK5oi4jT/C7xuv20= X-Google-Smtp-Source: AGHT+IHelFMBTH9UQ0OdAnaITOiMmu/lvjVWtsq46WxR/3LTMDiKJeZ62U1/aCrnxYESiGIeFSD3wA== X-Received: by 2002:a05:6214:2aa4:b0:66d:4d2c:b0d3 with SMTP id js4-20020a0562142aa400b0066d4d2cb0d3mr2499970qvb.4.1697816346230; Fri, 20 Oct 2023 08:39:06 -0700 (PDT) Received: from hurd (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id d9-20020a0cf0c9000000b0066d12d1351fsm751108qvl.143.2023.10.20.08.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 08:39:05 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> In-Reply-To: <874jilmira.fsf@HIDDEN> (Simon Tournier's message of "Fri, 20 Oct 2023 17:11:05 +0200") References: <20200630220913.14665-1-kuba@HIDDEN> <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> <87lebyxs4y.fsf_-_@HIDDEN> <874jilmira.fsf@HIDDEN> Date: Fri, 20 Oct 2023 11:39:04 -0400 Message-ID: <8734y5i9rb.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi, Simon Tournier <zimon.toutoune@HIDDEN> writes: > Hi Ludo, > > On Thu, 19 Oct 2023 at 22:40, Ludovic Court=C3=A8s <ludo@HIDDEN> wrote: > >>> +;;; >>> +;;; Extend regexp objects with a pattern field. >>> +;;; >>> +(define-record-type <regexp*> >>> + (%make-regexp* pat flag rx) >>> + regexp*? >>> + (pat regexp*-pattern) ;the regexp pattern, a string >>> + (flag regexp*-flag) ;regexp flags >>> + (rx regexp*-rx)) ;the compiled regexp object >>> + >>> +;;; Work around regexp implementation. >>> +;;; This record allows to track the regexp pattern and then display it. >>> +(define* (make-regexp* pat #:optional (flag regexp/extended)) >> >> I=E2=80=99m skeptical about the concrete benefits. I would not include = it in >> (guix build utils), or at least not in this patch series. >> >> (I tend to be super conservative about (guix build utils) because we >> rarely get a chance to change it.) > > If I remember correctly, the record was introduced in #58660 [1]. > Basically, if you have, > > (make-regexp "^gnu/packages/python(-.+|)\\.scm$") > > then you only have access to some #<regexp 7f6315fb3500>. Other said, > you lost the human-readable "^gnu/packages/python(-.+|)\\.scm$" regexp > pattern. The workaround just stores this human-readable regexp pattern. > Later, it is thus possible to display it; for debugging or else. > > For the location of such feature, I do not have an opinion. For the > concrete benefits, I have one. :-) > > Well, maybe the feature =E2=80=93 keep an access to the human-readable re= gexp > pattern =E2=80=93 could be implemented on Guile-side. Agreed, for the long haul (as with many cool bits that are Guix specific currently). --=20 Thanks, Maxim
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.