<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">&lt;<a href="mailto:bil@ccrma.stanford.edu" target="_blank">bil@ccrma.stanford.edu</a>&gt;</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>
&gt; 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&#39;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&#39;t know what you mean, but I&#39;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="">
&gt; The feature is to give<br>
&gt; warnings for undefined variables and functions.<br>
<br>
</span>Ok -- I&#39;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&#39;t quite follow. Do you mean why they started to give</div><div>these warnings in the first place? (I&#39;m 99% sure it&#39;s possible</div><div>to turn off though, but I haven&#39;t been reading the mailing</div><div>list closely for many years). Or why they don&#39;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>&quot;</div><div><div>scheme@(guile-user)&gt; (define (a) (b))</div><div>;;; &lt;stdin&gt;:2:0: warning: possibly unbound variable `b&#39;</div></div><div><div>scheme@(guile-user)&gt; (define (b) 50)</div></div><div><div>scheme@(guile-user)&gt; </div></div><div>&quot;<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&#39;t know.</div><div><br></div><div>(of course, guile doesn&#39;t give warnings if the functions</div><div>are defined in the other order:</div><div><div>&quot;</div><div>scheme@(guile-user)&gt; (define (b) 50)</div><div>scheme@(guile-user)&gt; (define (a) (b))</div></div><div><div>scheme@(guile-user)&gt; </div></div><div>&quot;)</div><div><br></div></div></div></div>