[racket] 5.3's "mzc optimizer" log-debug, and log "facility" in general

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Aug 30 10:49:27 EDT 2012

I conjecture that the log messages you are seeing are 
intended for the optimization coach only. It is worth
our while to check into making these messages 'private'. 

-- Matthias

On Aug 30, 2012, at 10:32 AM, Greg Hendershott wrote:

> Thanks, Robby.
> Do you mean I could do something like this?
> (define (enable-log-output level)
>  (let ([r (make-log-receiver (current-logger) level)])
>    (thread
>     (lambda ()
>       (let loop ()
>         (match (sync r)
>                [(vector lvl msg v)
>                 (printf "; [~a] ~a\n" lvl msg)])
>         (loop))))))
> (enable-log-output 'debug)
> If so, then:
> 1. I don't see what you mean re being able to do more than string
> munging. `v' is a continuation-mark-set. Is that the struct you mean?
> But stipulating I could filter in whatever fashion ...
> 2. Putting this in every source file doesn't seem practical? I'm
> talking about doing interactive development, using XREPL's ,log
> command. Open a file, evaluate it, make some changes, maybe use ,log
> to tweak the log output level, evaluate, move on to another file. That
> sort of work-flow.
> 3. I have to ask users of my collections to use code like this, to
> avoid getting "drowned" in my log-debug output? That doesn't sound
> good.
> ,log already does filtering on one "dimension" ("severity") without
> touching your source, which is great. It seems odd to have to use
> per-file code, in order to filter on another dimension ("facility" or
> "module").
> On Thu, Aug 30, 2012 at 8:55 AM, Robby Findler
> <robby at eecs.northwestern.edu> wrote:
>> On Thu, Aug 30, 2012 at 6:29 AM, Greg Hendershott
>> <greghendershott at gmail.com> wrote:
>>> I have some code with copious log-debug calls. Occasionally I set
>>> ",log debug" to see the output.
>>> New in 5.3, I'm seeing many dozens of outputs like the following:
>>> ; [debug] mzc optimizer: inlining: involving: core727 in: unpack728 in
>>> module: 's3 size: 149 threshold: 320
>>> These are interleaved with and badly obscuring my own debug output.
>>> I've been trying to ignore these and live with it the last couple
>>> weeks, but it's proving difficult.
>>> 1. Narrow question: Is there a way I can disable the mzc debug output,
>>> while preserving my own?
>> You can set up your own log receiver and filter out the messages that
>> you want (note that you can filter based on racket data structures,
>> not just string munging as log messages have a value associated with
>> them that you can query).
>> Robby
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4373 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20120830/98d9ccb5/attachment.p7s>

Posted on the users mailing list.