From 82d8ab01f5cb6d479e3b82c08067e2442ee7cad8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 26 May 2021 22:30:31 +0200 Subject: maint: Require Guile 3.0. * configure.ac: Require Guile 3.0. * doc/guix.texi (Requirements): Adjust accordingly. * gnu/packages/package-management.scm (guile2.2-guix): Remove. * guix/lint.scm (exception-with-kind-and-args?): Remove 'cond-expand'. * guix/scripts/deploy.scm (deploy-machine*): Likewise. * guix/store.scm (call-with-store): Likewise. * guix/swh.scm (http-get*, http-post*): Likewise. * guix/ui.scm (without-compiler-optimizations, guard*) (call-with-error-handling): Likewise. --- guix/lint.scm | 11 +++-------- guix/scripts/deploy.scm | 5 +---- guix/store.scm | 16 ++++------------ guix/swh.scm | 20 ++++++-------------- guix/ui.scm | 46 ++++++++++++++++------------------------------ 5 files changed, 30 insertions(+), 68 deletions(-) (limited to 'guix') diff --git a/guix/lint.scm b/guix/lint.scm index a2d6418b85..023a179ea6 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -1003,14 +1003,9 @@ (define (follow-redirects-to-github uri) (origin-uris origin)) '()))) -(cond-expand - (guile-3 - ;; Guile 3.0.0 does not export this predicate. - (define exception-with-kind-and-args? - (exception-predicate &exception-with-kind-and-args))) - (else ;Guile 2 - (define exception-with-kind-and-args? - (const #f)))) +;; Guile 3.0.0 does not export this predicate. +(define exception-with-kind-and-args? + (exception-predicate &exception-with-kind-and-args)) (define* (check-derivation package #:key store) "Emit a warning if we fail to compile PACKAGE to a derivation." diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm index bf2e8afa7f..7c62b05d12 100644 --- a/guix/scripts/deploy.scm +++ b/guix/scripts/deploy.scm @@ -125,10 +125,7 @@ (define (deploy-machine* store machine) ;; and include a '&message'. However, that message only contains ;; the format string. Thus, special-case it here to avoid ;; displaying a bare format string. - ((cond-expand - (guile-3 - ((exception-predicate &exception-with-kind-and-args) c)) - (else #f)) + (((exception-predicate &exception-with-kind-and-args) c) (raise c)) ((message-condition? c) diff --git a/guix/store.scm b/guix/store.scm index 9d706ae590..cf5d5eeccc 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -648,18 +648,10 @@ (define (thunk) (close-connection store) (apply values results))))) - (cond-expand - (guile-3 - (with-exception-handler (lambda (exception) - (close-connection store) - (raise-exception exception)) - thunk)) - (else ;Guile 2.2 - (catch #t - thunk - (lambda (key . args) - (close-connection store) - (apply throw key args))))))) + (with-exception-handler (lambda (exception) + (close-connection store) + (raise-exception exception)) + thunk))) (define-syntax-rule (with-store store exp ...) "Bind STORE to an open connection to the store and evaluate EXPs; diff --git a/guix/swh.scm b/guix/swh.scm index 06d2957252..f6d5241e06 100644 --- a/guix/swh.scm +++ b/guix/swh.scm @@ -148,20 +148,12 @@ (define url url (string-append url "/"))) -(cond-expand - (guile-3 - ;; XXX: Work around a bug in Guile 3.0.2 where #:verify-certificate? would - ;; be ignored (). - (define* (http-get* uri #:rest rest) - (apply http-request uri #:method 'GET rest)) - (define* (http-post* uri #:rest rest) - (apply http-request uri #:method 'POST rest))) - (else ;Guile 2.2 - ;; Guile 2.2 did not have #:verify-certificate? so ignore it. - (define* (http-get* uri #:key verify-certificate? streaming?) - (http-request uri #:method 'GET #:streaming? streaming?)) - (define* (http-post* uri #:key verify-certificate? streaming?) - (http-request uri #:method 'POST #:streaming? streaming?)))) +;; XXX: Work around a bug in Guile 3.0.2 where #:verify-certificate? would +;; be ignored (). +(define* (http-get* uri #:rest rest) + (apply http-request uri #:method 'GET rest)) +(define* (http-post* uri #:rest rest) + (apply http-request uri #:method 'POST rest)) (define %date-regexp ;; Match strings like "2014-11-17T22:09:38+01:00" or diff --git a/guix/ui.scm b/guix/ui.scm index 05b3f5f84c..6b0155f563 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -196,17 +196,11 @@ (define (frame-with-source frame) (stack-ref stack 1) ;skip the 'throw' frame last)))) -(cond-expand - (guile-3 - (define-syntax-rule (without-compiler-optimizations exp) - ;; Compile with the baseline compiler (-O1), which is much less expensive - ;; than -O2. - (parameterize (((@ (system base compile) default-optimization-level) 1)) - exp))) - (else - (define-syntax-rule (without-compiler-optimizations exp) - ;; No easy way to turn off optimizations on Guile 2.2. - exp))) +(define-syntax-rule (without-compiler-optimizations exp) + ;; Compile with the baseline compiler (-O1), which is much less expensive + ;; than -O2. + (parameterize (((@ (system base compile) default-optimization-level) 1)) + exp)) (define* (load* file user-module #:key (on-error 'nothing-special)) @@ -674,22 +668,17 @@ (define (top-most-entry entry) or remove one of them from the profile.") name1 name2))))) -(cond-expand - (guile-3 - ;; On Guile 3.0, in 'call-with-error-handling' we need to re-raise. To - ;; preserve useful backtraces in case of unhandled errors, we want that to - ;; happen before the stack has been unwound, hence 'guard*'. - (define-syntax-rule (guard* (var clauses ...) exp ...) - "This variant of SRFI-34 'guard' does not unwind the stack before +;; On Guile 3.0, in 'call-with-error-handling' we need to re-raise. To +;; preserve useful backtraces in case of unhandled errors, we want that to +;; happen before the stack has been unwound, hence 'guard*'. +(define-syntax-rule (guard* (var clauses ...) exp ...) + "This variant of SRFI-34 'guard' does not unwind the stack before evaluating the tests and bodies of CLAUSES." - (with-exception-handler - (lambda (var) - (cond clauses ... (else (raise var)))) - (lambda () exp ...) - #:unwind? #f))) - (else - (define-syntax-rule (guard* (var clauses ...) exp ...) - (guard (var clauses ...) exp ...)))) + (with-exception-handler + (lambda (var) + (cond clauses ... (else (raise var)))) + (lambda () exp ...) + #:unwind? #f)) (define (call-with-error-handling thunk) "Call THUNK within a user-friendly error handler." @@ -822,10 +811,7 @@ (define (manifest-entry-output* entry) ;; Furthermore, use of 'guard*' ensures that the stack has not ;; been unwound when we re-raise, since that would otherwise show ;; useless backtraces. - ((cond-expand - (guile-3 - ((exception-predicate &exception-with-kind-and-args) c)) - (else #f)) + (((exception-predicate &exception-with-kind-and-args) c) (raise c)) ((message-condition? c) -- cgit v1.2.3