<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I'd like to fold in a few changes from the trunk onto the release branch. I've pasted the diffs below, along with comments on why each change is there. First, though, let me explain the change.<div><br></div><div>The stepper has a new feature, in that you can use a choice box to jump to the expression containing the selection. &nbsp;More specifically, you can jump to the first step whose innermost before or after expression contains the beginning of the cursor selection in the definitions window. This allows you to jump to the evaluation of the code you're interested in, and should make the stepper more usable on larger programs.</div><div><br></div><div>In point of fact, the code that's currently in the release candidate has one additional restriction. &nbsp;Rather than jumping to the first step whose innermost before or after expression *contains* the beginning of the cursor selection, it jumps to the first step whose innermost before or after expression *begins with* the beginning of the cursor selection.</div><div><br></div><div>So, for instance, in this code:</div><div><br></div><div>(check-expect (f 9) 16)</div><div><br></div><div>If the cursor were between the ( and the 'f', the new feature might not find a matching step at all in the release candidate. &nbsp;With the changes I've committed to the trunk, it will halt &nbsp;just before the call to 'f', because the application (f 9) contains the cursor position.</div><div><br></div><div>To summarize: this change makes the new feature less persnickety and more useful.</div><div><br></div><div>It's still not what I'd like, because putting the cursor before the test case doesn't halt at all; this is because currently, there is no explicit step associated with the check-expect itself. Doing this "right" probably involves interacting with the definitions window to determine s-expression shapes within the definitions window, and is not something that I would try to add at this stage of the release.</div><div><br></div><div>I think that the diff below will demonstrate that this is the kind of change that should be feasible; even if you don't read it carefully, its existence should suggest that I have.</div><div><br></div><div>Thanks for your time,</div><div><br></div><div>John</div><div><br></div><div><br></div><div><br></div><div><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">pcp063697pcs:~/plt/collects/stepper clements$ svn diff -r 14506 .&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">Index: view-controller.ss</font></div><div><font class="Apple-style-span" color="#000000">===================================================================</font></div><div><font class="Apple-style-span" color="#000000">--- view-controller.ss</font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#000000">        </font></span><font class="Apple-style-span" color="#000000">(revision 14506)</font></div><div><font class="Apple-style-span" color="#000000">+++ view-controller.ss</font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#000000">        </font></span><font class="Apple-style-span" color="#000000">(working copy)</font></div><div><font class="Apple-style-span" color="#000000">@@ -169,8 +169,15 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; ;; is this step on the selected expression?</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; (define (selected-exp-step? history-entry)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp;(member selection-posn (step-posns history-entry)))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp;(ormap (posn-in-span selection-posn) (step-posns history-entry)))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;(define ((posn-in-span selection-posn) source-posn-info)</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp;(match source-posn-info</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp;[#f #f]</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp;[(struct model:posn-info (posn span))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; (and posn</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(&lt;= posn selection-posn)</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(&lt; selection-posn (+ posn span)))]))</font></div></blockquote><div><br></div><div>This is the main change. &nbsp;Rather than checking the source position against a list, it checks to see whether the source position is in one of a sequence of ranges.</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; ;; build gui object:</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">@@ -358,7 +365,10 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(list x:finished-text 'finished-stepping (list))])])</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; (hand-off-and-block step-text step-kind posns)))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp;;; need to capture the custodian as the thread starts up:</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;;; program-expander-prime : wrap the program-expander for a couple of reasons:</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;;; 1) we need to capture the custodian as the thread starts up:</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;;; ok, it was just one.</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;;;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; (define (program-expander-prime init iter)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; (program-expander</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp;(lambda args</font></div></blockquote><div><br></div>This is just a change to a comment.</div><div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">Index: private/model.ss</font></div><div><font class="Apple-style-span" color="#000000">===================================================================</font></div><div><font class="Apple-style-span" color="#000000">--- private/model.ss</font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#000000">        </font></span><font class="Apple-style-span" color="#000000">(revision 14506)</font></div><div><font class="Apple-style-span" color="#000000">+++ private/model.ss</font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#000000">        </font></span><font class="Apple-style-span" color="#000000">(working copy)</font></div><div><font class="Apple-style-span" color="#000000">@@ -11,7 +11,7 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;; held = NO-HELD-STEP :</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;; &nbsp;first(x) : held := HELD(x)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;; &nbsp;skipped-first : held := SKIPPED-STEP</font></div><div><font class="Apple-style-span" color="#000000">-; &nbsp;second(x) : trigger(NO-HELD-STEP, x), held := NO-HELD-STEP</font></div><div><font class="Apple-style-span" color="#000000">+; &nbsp;second(x) : trigger(NO-HELD-STEP, x), held := NO-HELD-STEP.</font></div></blockquote><div><br></div>Ditto.</div><div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;; &nbsp; &nbsp; &nbsp;this happens when evaluating unannotated code</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;; &nbsp;skipped-second : held := NO-HELD-STEP</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;; &nbsp; &nbsp; &nbsp;I believe this can also arise in unannotated code</font></div><div><font class="Apple-style-span" color="#000000">@@ -72,6 +72,12 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; . -> .</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; void?)])</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">+(define-struct posn-info (posn span))</font></div><div><font class="Apple-style-span" color="#000000">+</font></div><div><font class="Apple-style-span" color="#000000">+(provide (struct-out posn-info))</font></div><div><font class="Apple-style-span" color="#000000">+</font></div><div><font class="Apple-style-span" color="#000000">+</font></div></blockquote><div><br></div><div>I'm now passing ranges instead of numbers. &nbsp;This is the new structure that holds them.</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;; go starts a stepper instance</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;; see provide stmt for contract</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;(define (go program-expander receive-result render-settings</font></div><div><font class="Apple-style-span" color="#000000">@@ -94,7 +100,7 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; ;; the "held" variables are used to store the "before" step.</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; (define held-exp-list the-no-sexp)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp;(define-struct held (exps was-app? source-pos))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;(define-struct held (exps was-app? source-info))</font></div></blockquote><div><br></div><div>pos turns into info</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; (define held-finished-list null)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">@@ -215,7 +221,9 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mark-list returned-value-list render-settings)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #f))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (r:step-was-app? mark-list)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(syntax-position (mark-source (car mark-list))))))]</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(make-posn-info</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (syntax-position (mark-source (car mark-list)))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (syntax-span (mark-source (car mark-list)))))))]</font></div></blockquote><div><br></div><div>passing a posn-info rather than just a number</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [(result-exp-break result-value-break)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(let ([reconstruct&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">@@ -248,7 +256,7 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (append (reconstruct-all-completed) (reconstruct))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'normal</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #f #f))]</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [(struct held (held-exps held-step-was-app? held-source-pos))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [(struct held (held-exps held-step-was-app? held-posn-info))</font></div></blockquote><div><br></div><div>pos turns into info</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (let*-values</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ([(step-kind)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (if (and held-step-was-app?</font></div><div><font class="Apple-style-span" color="#000000">@@ -267,8 +275,11 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (send-result</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(make-before-after-result</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;left-exps right-exps step-kind held-source-pos</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(syntax-position (mark-source (car mark-list))))))]))]</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;left-exps right-exps step-kind&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;held-posn-info</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(make-posn-info</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (syntax-position (mark-source (car mark-list)))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (syntax-span (mark-source (car mark-list)))))))]))]</font></div></blockquote><div><br></div><div>passing a posn-info rather than just a number</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [(double-break)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;; a double-break occurs at the beginning of a let's</font></div><div><font class="Apple-style-span" color="#000000">@@ -284,13 +295,16 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (maybe-lift (car reconstruct-result) #f))]</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [right-side (map (lambda (exp) (unwind exp render-settings))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(maybe-lift (cadr reconstruct-result) #t))])</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;; add highlighting code as for other cases...</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (receive-result</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(make-before-after-result</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (append new-finished-list left-side)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (append new-finished-list right-side)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'normal</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #f #f)))]</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (let ([posn-info (make-posn-info</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (syntax-position (mark-source (car mark-list)))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (syntax-span (mark-source (car mark-list))))])</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (receive-result</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(make-before-after-result</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (append new-finished-list left-side)</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (append new-finished-list right-side)</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'normal</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; posn-info</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; posn-info))))]</font></div></blockquote><div><br></div><div>define a new posn-info, pass it twice instead of #f</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [(expr-finished-break)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(unless (not mark-list)</font></div><div><font class="Apple-style-span" color="#000000">@@ -323,13 +337,13 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; (match held-exp-list</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; [(struct no-sexp ())</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (receive-result (make-error-result message))]</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp;[(struct held (exps dc source-pos))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp;[(struct held (exps dc posn-info))</font></div></blockquote><div><br></div>pos turns into info&nbsp;</div><div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(begin</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(receive-result</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (make-before-error-result (append held-finished-list exps)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; message</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #f</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;source-pos))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;posn-info))</font></div></blockquote><div><br></div>pos turns into info</div><div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(set! held-exp-list the-no-sexp))]))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; (program-expander</font></div><div><font class="Apple-style-span" color="#000000">Index: private/annotate.ss</font></div><div><font class="Apple-style-span" color="#000000">===================================================================</font></div><div><font class="Apple-style-span" color="#000000">--- private/annotate.ss</font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#000000">        </font></span><font class="Apple-style-span" color="#000000">(revision 14506)</font></div><div><font class="Apple-style-span" color="#000000">+++ private/annotate.ss</font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#000000">        </font></span><font class="Apple-style-span" color="#000000">(working copy)</font></div><div><font class="Apple-style-span" color="#000000">@@ -35,18 +35,6 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp;. -> .</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp;syntax?)] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; results</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">- [annotate/not-top-level &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;; SAME CONTRACT AS ANNOTATE!</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp;(syntax? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; syntax to annotate</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; (((or/c continuation-mark-set? false/c)&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; break-kind?)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp;(list?)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp;. opt->* .</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp;(any/c)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; procedure for runtime break</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; boolean? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; show-lambdas-as-lambdas?</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; (union any/c (symbols 'testing)); language-level</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; . -> .</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; syntax?)] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; results</font></div><div><font class="Apple-style-span" color="#000000">-</font></div></blockquote><div><br></div><div>dead code removal</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;#;[top-level-rewrite (-> syntax? syntax?)])</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;; &nbsp;;; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;;;; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;</font></div><div><font class="Apple-style-span" color="#000000">@@ -272,7 +260,7 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">-(define ((annotate/master input-is-top-level?) main-exp break show-lambdas-as-lambdas? language-level)</font></div><div><font class="Apple-style-span" color="#000000">+(define (annotate main-exp break show-lambdas-as-lambdas? language-level)</font></div></blockquote><div><br></div><div>dead code removal</div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; #;(define _ (>>> main-exp #;(syntax->datum main-exp)))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">@@ -1135,12 +1123,13 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (#%plain-lambda () . rest3)))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exp]</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; [else</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; ;; I think we can re-enable this error now. I don't want to do it right before a release, though. 2009-05-20</font></div></blockquote><div><br></div>Comment change only.</div><div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(error `annotate/top-level "unexpected top-level expression: ~a\n"</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (syntax->datum exp))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(annotate/module-top-level exp)])))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp;(define/contract annotate/top-level/acl2</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;#;(define/contract annotate/top-level/acl2</font></div></blockquote><div><br></div>dead code commenting-out</div><div><br><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; (syntax? . -> . syntax?)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; (lambda (exp)</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; (syntax-case exp (begin define-values #%plain-app)</font></div><div><font class="Apple-style-span" color="#000000">@@ -1222,18 +1211,13 @@</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #;(error `annotate/module-top-level "unexpected module-top-level expression to annotate: ~a\n" (syntax->datum exp))])]))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp;&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;&nbsp; ; body of local</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp;(if input-is-top-level?</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp;(let* ([annotated-exp (cond&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[(and (not (eq? language-level 'testing))</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(string=? (language-level->name language-level) "ACL2 Beginner (beta 8)"))</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (annotate/top-level/acl2 main-exp)]</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[else&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (annotate/top-level main-exp)])])</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp;annotated-exp)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp;(let*-2vals ([(annotated dont-care)</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(annotate/inner (top-level-rewrite main-exp) 'all #f #f)])</font></div><div><font class="Apple-style-span" color="#000000">- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;annotated)))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp;(let* ([annotated-exp (cond&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;; support for ACL2 is commented out.</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#;[(and (not (eq? language-level 'testing))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(string=? (language-level->name language-level) "ACL2 Beginner (beta 8)"))</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (annotate/top-level/acl2 main-exp)]</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[else&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (annotate/top-level main-exp)])])</font></div><div><font class="Apple-style-span" color="#000000">+ &nbsp; &nbsp;annotated-exp))</font></div><div><font class="Apple-style-span" color="#000000">&nbsp;</font></div><div><font class="Apple-style-span" color="#000000">-;; !@#$ defs have to appear after annotate/master.</font></div><div><font class="Apple-style-span" color="#000000">-(define annotate (annotate/master #t))</font></div><div><font class="Apple-style-span" color="#000000">-(define annotate/not-top-level (annotate/master #f))</font></div><div><font class="Apple-style-span" color="#000000">+</font></div></blockquote><div><br></div><div>dead code removal.</div><div><br></div><blockquote type="cite" class=""><div><font class="Apple-style-span" color="#000000">pcp063697pcs:~/plt/collects/stepper clements$ svn info .</font></div><div><font class="Apple-style-span" color="#000000">Path: .</font></div><div><font class="Apple-style-span" color="#000000">URL: <a href="http://svn.plt-scheme.org/plt/trunk/collects/stepper">http://svn.plt-scheme.org/plt/trunk/collects/stepper</a></font></div><div><font class="Apple-style-span" color="#000000">Repository Root: <a href="http://svn.plt-scheme.org/plt">http://svn.plt-scheme.org/plt</a></font></div><div><font class="Apple-style-span" color="#000000">Repository UUID: dd0f82c0-e3f7-0310-82dd-f13d63558e96</font></div><div><font class="Apple-style-span" color="#000000">Revision: 14894</font></div><div><font class="Apple-style-span" color="#000000">Node Kind: directory</font></div><div><font class="Apple-style-span" color="#000000">Schedule: normal</font></div><div><font class="Apple-style-span" color="#000000">Last Changed Author: clements</font></div><div><font class="Apple-style-span" color="#000000">Last Changed Rev: 14893</font></div><div><font class="Apple-style-span" color="#000000">Last Changed Date: 2009-05-20 17:04:17 -0700 (Wed, 20 May 2009)</font></div><div><font class="Apple-style-span" color="#000000"><br></font></div><div><font class="Apple-style-span" color="#000000">pcp063697pcs:~/plt/collects/stepper clements$ svn status .</font></div><div><font class="Apple-style-span" color="#000000">pcp063697pcs:~/plt/collects/stepper clements$&nbsp;</font></div><div><br></div></blockquote></div><div><br></div><div><br><div><br></div></div></body></html>