[racket-dev] XREPL , log not working with extra log-receiver vector element in 5.3.2.1?

From: Greg Hendershott (greghendershott at gmail.com)
Date: Thu Jan 17 14:14:38 EST 2013

Building as of 3312a806 from Jan 7:

Welcome to Racket v5.3.2.1.
-> ,log debug
-> (log-debug "hi")
-> ; match: no matching clause for '#(debug "hi"
#<continuation-mark-set> #f) [,bt
;   for context]

Whereas:

Welcome to Racket v5.3.1.
-> ,log debug
-> (log-debug "hi")
-> ; [debug] hi #<continuation-mark-set>

It's re the `match` in this code in xrepl.rkt:

  (when level
    (let ([r (make-log-receiver global-logger level)])
      (current-log-receiver-thread
       (thread
        (λ ()
          (let loop ()
            (match (sync r)
              [(vector l m v)
               (display (format "; [~a] ~a~a\n"
                                l m (if v (format " ~.s" v) "")))
               (flush-output)])
            (loop))))))))

It looks like the log-receiver vector got an extra, 4th element?


p.s. I'm doing a fetch of latest, and rebuild as I type this...


p.p.s. I have an open pull request to enhance XREPL for the loggers
added in 5.3.1:

https://github.com/plt/racket/pull/188

Eli had some concerns about it, and I wasn't expecting it to be merged
for 5.3.2.

Anyway that's a different matter, from what I'm emailing about now.
AFIK the change with log-receiver sync vector popped up fairly
recently (I think??).


Posted on the dev mailing list.