On 23-02-2023 12:38, Ludovic Courtès wrote:
Do you have a simple reproducer and a before/after comparison showing
what Guile prints?

Simpler reproducer:

(define-syntax syntax-stuff-twice
  (lambda (s)
    (define (f x)
      (syntax-case x ()
        (#:this #''this)
        (#:that #''that)))
    (define (g y)
      (syntax-case y ()
        (#:cat #''cat)
        (#:dog #''dog)))
    (syntax-case s ()
      ((_)
       ;; Let's compute some syntax, for some reason.
       ;; (Hence, the syntax doesn't have line information
       ;; that might be an acceptable alternative to
       ;; a backtrace.)
       (let ((x (datum->syntax #f "foo"))
             (y (datum->syntax #f "bar")))
         #`(list #,(f x) #,(g y)))))))

(syntax-stuff-twice 'this #:cat) ; <- L21
;; Before:
;; .../reproducer.scm:21:0: source expression failed to match any pattern in form (quote this)
;;
;; After: ??? the same thing! Looks like another patch is needed.

Looks like the patch I sent doesn't actually accomplish what it was supposed to solve ...

Greetings,
Maxime.

Attachment: OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to