From 3b80e79f219be5357ccd7d4540ef0688184aa28c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 14 Mar 2022 09:39:33 +0100 Subject: [PATCH] transformations: '--tune' prints supported micro-architectures upon error. * guix/transformations.scm (build-system-with-tuning-compiler): Add &fix-hint condition when asked for an unsupported micro-architecture. --- guix/transformations.scm | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/guix/transformations.scm b/guix/transformations.scm index 0976f0d824..a0045e5b27 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -46,6 +46,7 @@ #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) #:use-module (ice-9 match) #:use-module (ice-9 vlist) @@ -526,10 +527,29 @@ system that builds code for MICRO-ARCHITECTURE; otherwise raise an error." micro-architecture))) (unless (member micro-architecture (or (assoc-ref lst architecture) '())) - (raise (formatted-message - (G_ "compiler ~a does not support micro-architecture ~a") - (package-full-name compiler) - micro-architecture)))) + (raise + (make-compound-condition + (formatted-message + (G_ "compiler ~a does not support micro-architecture ~a") + (package-full-name compiler) + micro-architecture) + (condition + (&fix-hint + (hint (match (assoc-ref lst architecture) + (#f (format #f (G_ "Compiler ~a does not support +micro-architectures of ~a.") + (package-full-name compiler "@@") + architecture)) + (lst + (format #f (G_ "Compiler ~a supports the following ~a +micro-architectures: + +@quotation +~a +@end quotation") + (package-full-name compiler "@@") + architecture + (string-join lst ", "))))))))))) (bag (inherit lowered)