[racket-dev] confused by output of macro stepper -- ooh, I see why! --> UI suggestion.
I was trying to investigate the expansion behavior of a piece of code for which I just submitted a bug, and used the macro stepper. I was confused by what I saw. Here's the program:
#lang racket
(define (takes-kwd-arg #:kwd-arg opt)
(not opt))
(let ([named-val (takes-kwd-arg #:kwd-arg #t)])
named-val)
I ran the macro stepper button, and got this as the result of the step:
(module anonymous-module racket
(#%module-begin
(define (takes-kwd-arg #:kwd-arg opt) (not opt))
(let ([named-val
(let ((named-val takes-kwd-arg) (temp6 #t))
(if (variable-reference-constant? (#%variable-reference takes-kwd-arg5))
(takes-kwd-arg3 temp6)
((checked-procedure-check-and-extract struct:keyword-procedure named-val keyword-procedure-extract '(#:kwd-arg) 2)
'(#:kwd-arg)
(list temp6))))])
named-val)))
There are a bunch of identifiers without obvious binding instances here: for instance, "takes-kwd-arg3". I'm guessing that these identifiers have binding information that's not shown by the macro stepper.
What was much *more* confusing, though, was that when I turned *off* "Hide Library Syntax", the bottom half suddenly turned into:
(module anonymous-module racket
(#%module-begin
(printing-module-begin (define (takes-kwd-arg #:kwd-arg opt) (not opt)))
(printing-module-begin (let ([named-val (takes-kwd-arg #:kwd-arg #t)]) named-val))))
... which suggested that "hiding Library Syntax" caused *more* detail to be shown.
I've been mulling this over, and finally realized that when the box was checked, I was seeing step 1 of 1. When the box was unchecked, I was seeing only the first of several steps.
Can I suggest that it might be clearer what's going on if the macro stepper displays something like "step <n> of <n>" somewhere? This might have clued me in to my oversight.
John
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4624 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20120214/bc2fdf21/attachment.p7s>