From 4df2fb5e154e72ade0e6fccd994e0710dc868a8e Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 01/12] Fix 1 occurrence of `cond-else-cond-to-cond` The `else` clause of this `cond` expression is another `cond` expression and can be flattened. --- .../scribble/private/define-popup.rkt | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/scribble-lib/scribble/private/define-popup.rkt b/scribble-lib/scribble/private/define-popup.rkt index 946d02ca49..8e7fa40db5 100644 --- a/scribble-lib/scribble/private/define-popup.rkt +++ b/scribble-lib/scribble/private/define-popup.rkt @@ -13,21 +13,12 @@ [found-open? (cond [(char=? char #\}) - (regexp-replace - #rx"^[\n ]*" - (regexp-replace - #rx"[\n ]*$" - (apply string (reverse chars)) - "") - "")] - [else - (loop (+ pos 1) #t (cons char chars))])] - [else - (cond - [(char=? char #\{) - (loop (+ pos 1) #t '())] - [else - (loop (+ pos 1) #f '())])])] + (regexp-replace #rx"^[\n ]*" + (regexp-replace #rx"[\n ]*$" (apply string (reverse chars)) "") + "")] + [else (loop (+ pos 1) #t (cons char chars))])] + [(char=? char #\{) (loop (+ pos 1) #t '())] + [else (loop (+ pos 1) #f '())])] [else #f]))) (define define-popup From 378d3208d59f418be65f7b8394d83a006f7f461d Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 02/12] Fix 7 occurrences of `tidy-require` Keep imports in `require` sorted and grouped by phase, with collections before files. --- scribble-lib/scribble/base/lang.rkt | 3 ++- scribble-lib/scriblib/figure.rkt | 6 +++--- scribble-lib/scriblib/footnote.rkt | 4 ++-- scribble-lib/scriblib/gui-eval.rkt | 12 ++++++------ scribble-lib/scriblib/render-cond.rkt | 4 ++-- scribble-test/tests/scribble/main.rkt | 10 ++++++++-- scribble-test/tests/scribble/markdown.rkt | 8 ++++++-- 7 files changed, 29 insertions(+), 18 deletions(-) diff --git a/scribble-lib/scribble/base/lang.rkt b/scribble-lib/scribble/base/lang.rkt index f8411b65f6..8faa4a3862 100644 --- a/scribble-lib/scribble/base/lang.rkt +++ b/scribble-lib/scribble/base/lang.rkt @@ -1,5 +1,6 @@ #lang racket/base -(require scribble/doclang scribble/base) +(require scribble/base + scribble/doclang) (provide (all-from-out scribble/doclang scribble/base)) (module configure-runtime racket/base (require scribble/base/lang/configure-runtime)) diff --git a/scribble-lib/scriblib/figure.rkt b/scribble-lib/scriblib/figure.rkt index ff250b9585..fde186e560 100644 --- a/scribble-lib/scriblib/figure.rkt +++ b/scribble-lib/scriblib/figure.rkt @@ -1,13 +1,13 @@ #lang racket/base (require racket/contract/base - scribble/manual scribble/core scribble/decode scribble/html-properties scribble/latex-properties + scribble/manual + scribble/private/lang-parameters setup/main-collects - "private/counter.rkt" - scribble/private/lang-parameters) + "private/counter.rkt") (provide figure figure* diff --git a/scribble-lib/scriblib/footnote.rkt b/scribble-lib/scriblib/footnote.rkt index c40ad6972f..ead830cce4 100644 --- a/scribble-lib/scriblib/footnote.rkt +++ b/scribble-lib/scriblib/footnote.rkt @@ -1,10 +1,10 @@ #lang racket/base -(require scribble/core +(require racket/promise + scribble/core scribble/decode scribble/html-properties scribble/latex-properties - racket/promise setup/main-collects "private/counter.rkt") diff --git a/scribble-lib/scriblib/gui-eval.rkt b/scribble-lib/scriblib/gui-eval.rkt index 69b3ee3576..1a0b8a77a6 100644 --- a/scribble-lib/scriblib/gui-eval.rkt +++ b/scribble-lib/scriblib/gui-eval.rkt @@ -1,16 +1,16 @@ #lang racket/base -(require scribble/eval - scribble/core - scribble/scheme +(require (for-syntax racket/base) racket/class racket/file racket/runtime-path + racket/sandbox racket/serialize - "private/gui-eval-exn.rkt" racket/system - racket/sandbox - (for-syntax racket/base)) + scribble/core + scribble/eval + scribble/scheme + "private/gui-eval-exn.rkt") (define-syntax define-mr (syntax-rules () diff --git a/scribble-lib/scriblib/render-cond.rkt b/scribble-lib/scriblib/render-cond.rkt index b76eabd8ea..afe7422069 100644 --- a/scribble-lib/scriblib/render-cond.rkt +++ b/scribble-lib/scriblib/render-cond.rkt @@ -1,6 +1,6 @@ #lang racket/base -(require scribble/core - (for-syntax racket/base)) +(require (for-syntax racket/base) + scribble/core) (provide cond-element cond-block) diff --git a/scribble-test/tests/scribble/main.rkt b/scribble-test/tests/scribble/main.rkt index cb542ae1ee..3e23cbe883 100644 --- a/scribble-test/tests/scribble/main.rkt +++ b/scribble-test/tests/scribble/main.rkt @@ -1,8 +1,14 @@ #lang racket/base (require tests/eli-tester - "reader.rkt" "text-collect.rkt" "text-lang.rkt" "text-wrap.rkt" - "docs.rkt" "render.rkt" "xref.rkt" "markdown.rkt") + "docs.rkt" + "markdown.rkt" + "reader.rkt" + "render.rkt" + "text-collect.rkt" + "text-lang.rkt" + "text-wrap.rkt" + "xref.rkt") (test do (reader-tests) do (begin/collect-tests) diff --git a/scribble-test/tests/scribble/markdown.rkt b/scribble-test/tests/scribble/markdown.rkt index 8cc7dd7033..434284d99b 100644 --- a/scribble-test/tests/scribble/markdown.rkt +++ b/scribble-test/tests/scribble/markdown.rkt @@ -2,8 +2,12 @@ ;; Use text renderer to check some Scribble functionality -(require scribble/base-render (prefix-in markdown: scribble/markdown-render) - racket/file racket/class racket/runtime-path tests/eli-tester) +(require racket/class + racket/file + racket/runtime-path + scribble/base-render + tests/eli-tester + (prefix-in markdown: scribble/markdown-render)) (define-runtime-path source-dir "markdown-docs") (define work-dir (build-path (find-system-path 'temp-dir) From 86595b0fe298018dd6733d8f3dd98579ffcb3233 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 03/12] Fix 2 occurrences of `let-to-define` Internal definitions are recommended instead of `let` expressions, to reduce nesting. --- scribble-lib/scriblib/footnote.rkt | 32 +++++++++-------------- scribble-test/tests/scribble/markdown.rkt | 16 ++++++------ 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/scribble-lib/scriblib/footnote.rkt b/scribble-lib/scriblib/footnote.rkt index ead830cce4..a91efd8634 100644 --- a/scribble-lib/scriblib/footnote.rkt +++ b/scribble-lib/scriblib/footnote.rkt @@ -44,27 +44,19 @@ (define (footnote-part . text) (do-footnote-part footnotes id)))) (define (do-footnote footnotes id text) - (let ([tag (generated-tag)] - [content (decode-content text)]) - (make-traverse-element - (lambda (get set) - (set id (cons (cons - (make-element footnote-target-style - (make-element - 'superscript - (counter-target footnotes tag #f))) + (define tag (generated-tag)) + (define content (decode-content text)) + (make-traverse-element + (lambda (get set) + (set id + (cons (cons (make-element footnote-target-style + (make-element 'superscript (counter-target footnotes tag #f))) content) - (get id null))) - (make-element footnote-style - (list - (make-element - footnote-ref-style - (make-element - 'superscript - (counter-ref footnotes tag #f))) - (make-element - footnote-content-style - content))))))) + (get id null))) + (make-element footnote-style + (list (make-element footnote-ref-style + (make-element 'superscript (counter-ref footnotes tag #f))) + (make-element footnote-content-style content)))))) (define (do-footnote-part footnotes id) (make-part diff --git a/scribble-test/tests/scribble/markdown.rkt b/scribble-test/tests/scribble/markdown.rkt index 434284d99b..87df63fb90 100644 --- a/scribble-test/tests/scribble/markdown.rkt +++ b/scribble-test/tests/scribble/markdown.rkt @@ -14,14 +14,14 @@ "scribble-docs-tests")) (define (build-markdown-doc src-file dest-file) - (let* ([renderer (new (markdown:render-mixin render%) [dest-dir work-dir])] - [docs (list (dynamic-require src-file 'doc))] - [fns (list (build-path work-dir dest-file))] - [fp (send renderer traverse docs fns)] - [info (send renderer collect docs fns fp)] - [r-info (send renderer resolve docs fns info)]) - (send renderer render docs fns r-info) - (send renderer get-undefined r-info))) + (define renderer (new (markdown:render-mixin render%) [dest-dir work-dir])) + (define docs (list (dynamic-require src-file 'doc))) + (define fns (list (build-path work-dir dest-file))) + (define fp (send renderer traverse docs fns)) + (define info (send renderer collect docs fns fp)) + (define r-info (send renderer resolve docs fns info)) + (send renderer render docs fns r-info) + (send renderer get-undefined r-info)) (provide markdown-tests) (module+ main (markdown-tests)) From 8a0b0bff812bacdd932239adf8195f4d2cff8625 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 04/12] Fix 1 occurrence of `map-to-for` This `map` operation can be replaced with a `for/list` loop. --- scribble-lib/scriblib/footnote.rkt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/scribble-lib/scriblib/footnote.rkt b/scribble-lib/scriblib/footnote.rkt index a91efd8634..bfa31617fa 100644 --- a/scribble-lib/scriblib/footnote.rkt +++ b/scribble-lib/scriblib/footnote.rkt @@ -70,9 +70,6 @@ (lambda (get set) (make-compound-paragraph footnote-block-style - (map (lambda (content) - (make-paragraph - footnote-block-content-style - content)) - (reverse (get id null))))))) + (for/list ([content (in-list (reverse (get id null)))]) + (make-paragraph footnote-block-content-style content)))))) null)) From f0569ec1e34de32dddfff86a547cad22a8bf0adc Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 05/12] Fix 1 occurrence of `inline-unnecessary-begin` This `begin` form can be flattened into the surrounding definition context. --- scribble-test/tests/scribble/text-lang.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scribble-test/tests/scribble/text-lang.rkt b/scribble-test/tests/scribble/text-lang.rkt index 364821b279..1f886cb469 100644 --- a/scribble-test/tests/scribble/text-lang.rkt +++ b/scribble-test/tests/scribble/text-lang.rkt @@ -67,4 +67,4 @@ (call-with-trusted-sandbox-configuration (lambda () (for ([t (in-list (doc:tests))]) - (begin (apply text-test t)))))) + (apply text-test t))))) From 50a87d470745d93da258f3374543f0a0b32cc64b Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 06/12] Fix 1 occurrence of `define-syntax-syntax-rules-to-define-syntax-rule` This `define-syntax` macro can be replaced with a simpler, equivalent `define-syntax-rule` macro. --- scribble-lib/scriblib/gui-eval.rkt | 42 ++++++++++++++---------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/scribble-lib/scriblib/gui-eval.rkt b/scribble-lib/scriblib/gui-eval.rkt index 1a0b8a77a6..0aa63f9813 100644 --- a/scribble-lib/scriblib/gui-eval.rkt +++ b/scribble-lib/scriblib/gui-eval.rkt @@ -12,28 +12,26 @@ scribble/scheme "private/gui-eval-exn.rkt") -(define-syntax define-mr - (syntax-rules () - [(_ mr orig) - (begin - (provide mr) - (define-syntax (mr stx) - (syntax-case stx () - [(_ #:eval+opts the-eval get-predicate? get-render get-get-width get-get-height x (... ...)) - #'(let ([the-eval-x the-eval]) - (parameterize ([scribble-eval-handler (gui-eval-handler the-eval-x - get-predicate? - get-render - get-get-width - get-get-height)]) - (orig #:eval the-eval-x x (... ...))))] - [(_ x (... ...)) - #'(parameterize ([scribble-eval-handler (gui-eval-handler gui-eval - (λ () (gui-eval 'pict?)) - (λ () (gui-eval 'draw-pict)) - (λ () (gui-eval 'pict-width)) - (λ () (gui-eval 'pict-height)))]) - (orig #:eval gui-eval x (... ...)))])))])) +(define-syntax-rule (define-mr mr orig) + (begin + (provide mr) + (define-syntax (mr stx) + (syntax-case stx () + [(_ #:eval+opts the-eval get-predicate? get-render get-get-width get-get-height x (... ...)) + #'(let ([the-eval-x the-eval]) + (parameterize ([scribble-eval-handler (gui-eval-handler the-eval-x + get-predicate? + get-render + get-get-width + get-get-height)]) + (orig #:eval the-eval-x x (... ...))))] + [(_ x (... ...)) + #'(parameterize ([scribble-eval-handler (gui-eval-handler gui-eval + (λ () (gui-eval 'pict?)) + (λ () (gui-eval 'draw-pict)) + (λ () (gui-eval 'pict-width)) + (λ () (gui-eval 'pict-height)))]) + (orig #:eval gui-eval x (... ...)))])))) (define gui-eval (make-base-eval #:pretty-print? #f)) From e052a6cb76fb93d86000b586ab7ca4f7e600a808 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 07/12] Fix 1 occurrence of `if-let-to-cond` `cond` with internal definitions is preferred over `if` with `let`, to reduce nesting --- scribble-lib/scriblib/gui-eval.rkt | 112 +++++++++++++++-------------- 1 file changed, 57 insertions(+), 55 deletions(-) diff --git a/scribble-lib/scriblib/gui-eval.rkt b/scribble-lib/scriblib/gui-eval.rkt index 0aa63f9813..c45313e55b 100644 --- a/scribble-lib/scriblib/gui-eval.rkt +++ b/scribble-lib/scriblib/gui-eval.rkt @@ -66,61 +66,63 @@ "exprs.dat")) (define gui-eval-handler - (if mred? - (let ([eh (scribble-eval-handler)] - [log-file (open-output-file exprs-dat-file #:exists 'truncate/replace)]) - (λ (gui-eval get-predicate? get-render get-get-width get-get-height) - (lambda (ev catching-exns? expr) - (write (serialize (if (syntax? expr) (syntax->datum expr) expr)) log-file) - (newline log-file) - (flush-output log-file) - (let ([result - (with-handlers ([exn:fail? - (lambda (exn) - (make-gui-exn (exn-message exn)))]) - ;; put the call to fixup-picts in the handlers - ;; so that errors in the user-supplied predicates & - ;; conversion functions show up in the rendered output - (fixup-picts (get-predicate?) (get-render) (get-get-width) (get-get-height) - (eh ev catching-exns? expr)))]) - (write (serialize result) log-file) - (newline log-file) - (flush-output log-file) - (if (gui-exn? result) - (raise (make-exn:fail - (gui-exn-message result) - (current-continuation-marks))) - result))))) - (let ([log-file (with-handlers ([exn:fail:filesystem? - (lambda (exn) - (open-input-string ""))]) - (open-input-file exprs-dat-file))]) - (λ (gui-eval get-predicate? get-render get-get-width get-get-height) - (lambda (ev catching-exns? expr) - (with-handlers ([exn:fail? (lambda (exn) - (if catching-exns? - (raise exn) - (void)))]) - (let ([v (read log-file)]) - (if (eof-object? v) - (error "expression not in log file") - (let ([v (deserialize v)]) - (if (equal? v (if (syntax? expr) - (syntax->datum expr) - expr)) - (let ([v (read log-file)]) - (if (eof-object? v) - (error "expression result missing in log file") - (let ([v (deserialize v)]) - (if (gui-exn? v) - (raise (make-exn:fail - (gui-exn-message v) - (current-continuation-marks))) - v)))) - (error 'mreval - "expression does not match log file: ~e versus: ~e" - expr - v))))))))))) + (cond + [mred? + (define eh (scribble-eval-handler)) + (define log-file (open-output-file exprs-dat-file #:exists 'truncate/replace)) + (λ (gui-eval get-predicate? get-render get-get-width get-get-height) + (lambda (ev catching-exns? expr) + (write (serialize (if (syntax? expr) + (syntax->datum expr) + expr)) + log-file) + (newline log-file) + (flush-output log-file) + (let ([result (with-handlers ([exn:fail? (lambda (exn) (make-gui-exn (exn-message exn)))]) + ;; put the call to fixup-picts in the handlers + ;; so that errors in the user-supplied predicates & + ;; conversion functions show up in the rendered output + (fixup-picts (get-predicate?) + (get-render) + (get-get-width) + (get-get-height) + (eh ev catching-exns? expr)))]) + (write (serialize result) log-file) + (newline log-file) + (flush-output log-file) + (if (gui-exn? result) + (raise (make-exn:fail (gui-exn-message result) (current-continuation-marks))) + result))))] + [else + (define log-file + (with-handlers ([exn:fail:filesystem? (lambda (exn) (open-input-string ""))]) + (open-input-file exprs-dat-file))) + (λ (gui-eval get-predicate? get-render get-get-width get-get-height) + (lambda (ev catching-exns? expr) + (with-handlers ([exn:fail? (lambda (exn) + (if catching-exns? + (raise exn) + (void)))]) + (let ([v (read log-file)]) + (if (eof-object? v) + (error "expression not in log file") + (let ([v (deserialize v)]) + (if (equal? v + (if (syntax? expr) + (syntax->datum expr) + expr)) + (let ([v (read log-file)]) + (if (eof-object? v) + (error "expression result missing in log file") + (let ([v (deserialize v)]) + (if (gui-exn? v) + (raise (make-exn:fail (gui-exn-message v) + (current-continuation-marks))) + v)))) + (error 'mreval + "expression does not match log file: ~e versus: ~e" + expr + v))))))))])) (define image-counter 0) From 672aea343fabc5ee67eb72cf369cdf273c7e84cf Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 08/12] Fix 1 occurrence of `cond-let-to-cond-define` Internal definitions are recommended instead of `let` expressions, to reduce nesting. --- scribble-lib/scriblib/gui-eval.rkt | 67 +++++++++++++++--------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/scribble-lib/scriblib/gui-eval.rkt b/scribble-lib/scriblib/gui-eval.rkt index c45313e55b..a1dc5eb652 100644 --- a/scribble-lib/scriblib/gui-eval.rkt +++ b/scribble-lib/scriblib/gui-eval.rkt @@ -133,41 +133,40 @@ (let loop ([v v]) (cond [(predicate? v) - (let ([fn (build-string-path img-dir - (format "img~a.png" image-counter))]) - (set! image-counter (add1 image-counter)) - (let ([dc (let ([pss (make-object (gui-eval 'ps-setup%))]) - (send pss set-mode 'file) - (send pss set-file (path-replace-suffix fn #".pdf")) - (parameterize ([(gui-eval 'current-ps-setup) pss]) - (let ([xb (box 0)] - [yb (box 0)]) - (send pss get-scaling xb yb) - (new (gui-eval 'pdf-dc%) - [interactive #f] - [width (* (unbox xb) (get-width v))] - [height (* (unbox yb) (get-height v))]))))]) - (send dc start-doc "Image") - (send dc start-page) - (render v dc 0 0) - (send dc end-page) - (send dc end-doc)) - (let* ([bm (make-object (gui-eval 'bitmap%) + (define fn (build-string-path img-dir (format "img~a.png" image-counter))) + (set! image-counter (add1 image-counter)) + (let ([dc (let ([pss (make-object (gui-eval 'ps-setup%))]) + (send pss set-mode 'file) + (send pss set-file (path-replace-suffix fn #".pdf")) + (parameterize ([(gui-eval 'current-ps-setup) pss]) + (let ([xb (box 0)] + [yb (box 0)]) + (send pss get-scaling xb yb) + (new (gui-eval 'pdf-dc%) + [interactive #f] + [width (* (unbox xb) (get-width v))] + [height (* (unbox yb) (get-height v))]))))]) + (send dc start-doc "Image") + (send dc start-page) + (render v dc 0 0) + (send dc end-page) + (send dc end-doc)) + (define bm + (make-object (gui-eval 'bitmap%) (inexact->exact (ceiling (get-width v))) - (inexact->exact (ceiling (get-height v))))] - [dc (make-object (gui-eval 'bitmap-dc%) bm)]) - (send dc set-smoothing 'aligned) - (send dc clear) - (render v dc 0 0) - (send bm save-file fn 'png) - (make-image-element - #f - (list "[image]") - ;; Be sure to use a string rather than a path, because - ;; it gets recorded in "exprs.dat". - (path->string (path-replace-suffix fn #"")) - '(".pdf" ".png") - 1.0)))] + (inexact->exact (ceiling (get-height v))))) + (define dc (make-object (gui-eval 'bitmap-dc%) bm)) + (send dc set-smoothing 'aligned) + (send dc clear) + (render v dc 0 0) + (send bm save-file fn 'png) + (make-image-element #f + (list "[image]") + ;; Be sure to use a string rather than a path, because + ;; it gets recorded in "exprs.dat". + (path->string (path-replace-suffix fn #"")) + '(".pdf" ".png") + 1.0)] [(pair? v) (cons (loop (car v)) (loop (cdr v)))] [(serializable? v) v] From 945d1cdf883f0d1f75e648951777ad1ce53051ca Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 09/12] Fix 1 occurrence of `always-throwing-if-to-when` Using `when` and `unless` is simpler than a conditional with an always-throwing branch. --- scribble-test/tests/scribble/reader.rkt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scribble-test/tests/scribble/reader.rkt b/scribble-test/tests/scribble/reader.rkt index 1fa756db15..ed0627b692 100644 --- a/scribble-test/tests/scribble/reader.rkt +++ b/scribble-test/tests/scribble/reader.rkt @@ -947,14 +947,14 @@ END-OF-TESTS (define m (or (regexp-match #px"^(.*)\n\\s*(-\\S+->)\\s*\n(.*)$" t) (regexp-match #px"^(.*\\S)\\s+(-\\S+->)\\s+(\\S.*)$" t))) - (if (not (and m (= 4 (length m)))) - (error 'bad-test "~a" t) - (let-values ([(x y) ((string->tester (caddr m)) (cadr m) (cadddr m))]) - (test #:failure-message (format "bad result in\n ~a\n results:\n ~s != ~s" - (regexp-replace* #rx"\n" t "\n ") - x - y) - (matching? x y))))))) + (unless (and m (= 4 (length m))) + (error 'bad-test "~a" t)) + (let-values ([(x y) ((string->tester (caddr m)) (cadr m) (cadddr m))]) + (test #:failure-message (format "bad result in\n ~a\n results:\n ~s != ~s" + (regexp-replace* #rx"\n" t "\n ") + x + y) + (matching? x y)))))) ;; Check static versus dynamic readtable for command (dynamic when "c" in the ;; name) and datum (dynamic when "d" in the name) parts: From 701870fa5cdbe2397f873736f637a18a1bc6cfe1 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 10/12] Fix 1 occurrence of `when-expression-in-for-loop-to-when-keyword` Use the `#:when` keyword instead of `when` to reduce loop body indentation. --- scribble-test/tests/scribble/markdown.rkt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/scribble-test/tests/scribble/markdown.rkt b/scribble-test/tests/scribble/markdown.rkt index 87df63fb90..8de726a003 100644 --- a/scribble-test/tests/scribble/markdown.rkt +++ b/scribble-test/tests/scribble/markdown.rkt @@ -44,11 +44,9 @@ (define (contents file) (regexp-replace #rx"\n+$" (file->string file) "")) (define undefineds (build-markdown-doc src-file "gen.md")) - (for ([u (in-list undefineds)]) - (when (eq? 'tech (car u)) - (test #:failure-message - (format "undefined tech: ~e" u) - #f))) + (for ([u (in-list undefineds)] + #:when (eq? 'tech (car u))) + (test #:failure-message (format "undefined tech: ~e" u) #f)) (test #:failure-message (format "mismatch for: \"~a\", expected text in: \"~a\", got:\n~a" From 0c112535a4eba0808adc7ff01a246ca295a513cc Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 11/12] Fix 2 occurrences of `let-to-define` Internal definitions are recommended instead of `let` expressions, to reduce nesting. --- scribble-lib/scriblib/gui-eval.rkt | 68 +++++++++++++++--------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/scribble-lib/scriblib/gui-eval.rkt b/scribble-lib/scriblib/gui-eval.rkt index a1dc5eb652..7af5d1caa8 100644 --- a/scribble-lib/scriblib/gui-eval.rkt +++ b/scribble-lib/scriblib/gui-eval.rkt @@ -78,21 +78,22 @@ log-file) (newline log-file) (flush-output log-file) - (let ([result (with-handlers ([exn:fail? (lambda (exn) (make-gui-exn (exn-message exn)))]) - ;; put the call to fixup-picts in the handlers - ;; so that errors in the user-supplied predicates & - ;; conversion functions show up in the rendered output - (fixup-picts (get-predicate?) - (get-render) - (get-get-width) - (get-get-height) - (eh ev catching-exns? expr)))]) - (write (serialize result) log-file) - (newline log-file) - (flush-output log-file) - (if (gui-exn? result) - (raise (make-exn:fail (gui-exn-message result) (current-continuation-marks))) - result))))] + (define result + (with-handlers ([exn:fail? (lambda (exn) (make-gui-exn (exn-message exn)))]) + ;; put the call to fixup-picts in the handlers + ;; so that errors in the user-supplied predicates & + ;; conversion functions show up in the rendered output + (fixup-picts (get-predicate?) + (get-render) + (get-get-width) + (get-get-height) + (eh ev catching-exns? expr)))) + (write (serialize result) log-file) + (newline log-file) + (flush-output log-file) + (if (gui-exn? result) + (raise (make-exn:fail (gui-exn-message result) (current-continuation-marks))) + result)))] [else (define log-file (with-handlers ([exn:fail:filesystem? (lambda (exn) (open-input-string ""))]) @@ -103,26 +104,23 @@ (if catching-exns? (raise exn) (void)))]) - (let ([v (read log-file)]) - (if (eof-object? v) - (error "expression not in log file") - (let ([v (deserialize v)]) - (if (equal? v - (if (syntax? expr) - (syntax->datum expr) - expr)) - (let ([v (read log-file)]) - (if (eof-object? v) - (error "expression result missing in log file") - (let ([v (deserialize v)]) - (if (gui-exn? v) - (raise (make-exn:fail (gui-exn-message v) - (current-continuation-marks))) - v)))) - (error 'mreval - "expression does not match log file: ~e versus: ~e" - expr - v))))))))])) + (define v (read log-file)) + (if (eof-object? v) + (error "expression not in log file") + (let ([v (deserialize v)]) + (if (equal? v + (if (syntax? expr) + (syntax->datum expr) + expr)) + (let ([v (read log-file)]) + (if (eof-object? v) + (error "expression result missing in log file") + (let ([v (deserialize v)]) + (if (gui-exn? v) + (raise (make-exn:fail (gui-exn-message v) + (current-continuation-marks))) + v)))) + (error 'mreval "expression does not match log file: ~e versus: ~e" expr v)))))))])) (define image-counter 0) From 968f40f1b1f95a7dd1ca6b0ebbccf19ea5430fd5 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:15:50 +0000 Subject: [PATCH 12/12] Fix 1 occurrence of `always-throwing-if-to-when` Using `when` and `unless` is simpler than a conditional with an always-throwing branch. --- scribble-lib/scriblib/gui-eval.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scribble-lib/scriblib/gui-eval.rkt b/scribble-lib/scriblib/gui-eval.rkt index 7af5d1caa8..bb8e7c661d 100644 --- a/scribble-lib/scriblib/gui-eval.rkt +++ b/scribble-lib/scriblib/gui-eval.rkt @@ -101,9 +101,9 @@ (λ (gui-eval get-predicate? get-render get-get-width get-get-height) (lambda (ev catching-exns? expr) (with-handlers ([exn:fail? (lambda (exn) - (if catching-exns? - (raise exn) - (void)))]) + (when catching-exns? + (raise exn)) + (void))]) (define v (read log-file)) (if (eof-object? v) (error "expression not in log file")