<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 6, 2014 at 1:40 AM, Bill Schottstaedt <span dir="ltr"><<a href="mailto:bil@ccrma.stanford.edu" target="_blank">bil@ccrma.stanford.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Thanks very much for the praise!<br>
<span class=""><br>
> Is it possible to get this type of backtrace at all?<br>
<br>
</span>Not without slightly rewriting the scheme code -- those are all<br>
tail-calls, so there is nothing in the s7 stack that represents the<br>
call sequence.</blockquote><div><br></div><div>Ah, I didn't think of that.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> Wrap everything in dynamic-winds or the equivalent<br>
to get a C-like stacktrace.<br>
<span class=""><br></span></blockquote><div><br></div><div>Thanks! I don't know what you mean, but I'll experiment with dynamic-winds.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
> The feature is to give<br>
> warnings for undefined variables and functions.<br>
<br>
</span>Ok -- I'll add a switch for this -- did Guile (Andy Wingo?)<br>
say why they chose to handle these with warnings?<br>
<br></blockquote><div><br></div><div>I don't quite follow. Do you mean why they started to give</div><div>these warnings in the first place? (I'm 99% sure it's possible</div><div>to turn off though, but I haven't been reading the mailing</div><div>list closely for many years). Or why they don't give errors instead?</div><div><br></div><div>In the latter, errors would be incorrect. For this code:</div><div><br></div><div>(define (a)</div><div> (b))</div><div>(define (b)</div><div> 50)</div><div><br></div><div>guile gives the following output:</div><div><div>"</div><div><div>scheme@(guile-user)> (define (a) (b))</div><div>;;; <stdin>:2:0: warning: possibly unbound variable `b'</div></div><div><div>scheme@(guile-user)> (define (b) 50)</div></div><div><div>scheme@(guile-user)> </div></div><div>"<br></div></div><div><br></div><div>But of course, there is actually nothing wrong with the code,</div><div>so an error would not be appropriate. But maybe Guile</div><div>has an option to give error instead, I don't know.</div><div><br></div><div>(of course, guile doesn't give warnings if the functions</div><div>are defined in the other order:</div><div><div>"</div><div>scheme@(guile-user)> (define (b) 50)</div><div>scheme@(guile-user)> (define (a) (b))</div></div><div><div>scheme@(guile-user)> </div></div><div>")</div><div><br></div></div></div></div>