From 7ce568dc0c6ece2a3fdfcaed5c4c3a68a6cfc89a Mon Sep 17 00:00:00 2001 From: Greg Hendershott Date: Tue, 21 Jan 2025 12:04:36 -0500 Subject: [PATCH] Improve dynamic require of requires analysis Skip tests when unavailable. Issue error, if any, on the command thread so message is reflected up to Emacs for users to see. --- racket/commands/requires.rkt | 47 +++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/racket/commands/requires.rkt b/racket/commands/requires.rkt index 9c59becb..44d6d1fe 100644 --- a/racket/commands/requires.rkt +++ b/racket/commands/requires.rkt @@ -61,36 +61,39 @@ ;; derivation-parser: error on token #2: > - (when (version<=? "8.14" (version)) - (check-equal? - (requires/trim p) - '((delete 174 17) - (replace - 129 - 44 - "(require net/url\n (combine-in net/url\n racket/format))") - (replace 39 42 "(require net/uri-codec\n net/url)"))) - (check-equal? - (requires/base p) - '((delete 174 17) - (replace - 129 - 44 - "(require (for-syntax racket/base)\n net/url\n (combine-in net/url\n racket/format)\n racket/list\n racket/match)") - (replace 39 42 "(require net/uri-codec\n net/url)")))))) + (cond + [(and show-requires + (version<=? "8.14" (version))) + (check-equal? + (requires/trim p) + '((delete 174 17) + (replace + 129 + 44 + "(require net/url\n (combine-in net/url\n racket/format))") + (replace 39 42 "(require net/uri-codec\n net/url)"))) + (check-equal? + (requires/base p) + '((delete 174 17) + (replace + 129 + 44 + "(require (for-syntax racket/base)\n net/url\n (combine-in net/url\n racket/format)\n racket/list\n racket/match)") + (replace 39 42 "(require net/uri-codec\n net/url)")))] + [else + (displayln "Skipping requires analysis tests")]))) ;;; analysis by macro-debugger/analysis/check-requires -(define (error-thunk) - (error 'requires - "Cannot work until you `raco pkg install macro-debugger-lib`")) - (define show-requires (safe-dynamic-require 'macro-debugger/analysis/check-requires 'show-requires - error-thunk)) + (λ () #f))) (define (analyze path-str) + (unless show-requires + (error 'analyze-requires + "Cannot work until you `raco pkg install macro-debugger-text-lib`")) (define-values (base name _) (split-path (string->path path-str))) (parameterize ([current-load-relative-directory base] [current-directory base])