Good stuff to know.   Thx.<br><br><div class="gmail_quote">On Sun, Aug 21, 2011 at 6:06 PM, Eli Barzilay <span dir="ltr">&lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">6 hours ago, Ray Racine wrote:<br>
&gt;<br>
</div><div class="im">&gt; Fire up my repl with the path to my personal collection and invoke.<br>
&gt; [ray@ray rktlib]$ rlwrap /usr/local/racket/bin/racket -i  -S /code/rktlib<br>
<br>
</div>If you&#39;re working on a shell it would be better to use readline -- but<br>
since you&#39;re using the git head, it&#39;s even better to use the new<br>
`xrepl&#39;.  Just add (require xrepl) to your ~/.racketrc, and you&#39;ll get<br>
readline and an additional bunch of tools for REPL-use.<br>
<div class="im"><br>
<br>
&gt; In the old days it seemed I generally got an accurate error line and<br>
&gt; stack trace.  In the above error, I&#39;m pretty sure the error is<br>
&gt; occurring in the &quot;worker&quot; for-each which is not lexically near line<br>
&gt; 194.  The context information is less than helpful in the sense that<br>
&gt; misc.rkt:87 is the repl&#39;s invoke and then the next thing I&#39;m given<br>
&gt; is the for-loop error.  All in all a rather thin context to work<br>
&gt; with.<br>
<br>
</div>The stack information that you see is imprecise in the sense that<br>
Matthew mentioned, and indeed errortrace compiles code with explicit<br>
annotations so that you get precise information.  (But that comes at a<br>
runtime overhead.)  With DrRacket, you get the extra errortrace<br>
information when you have the debugging option on.<br>
<div class="im"><br>
<br>
&gt; I&#39;ve tried to ask racket to provide a full stack trace with things<br>
&gt; like adding &#39;-l errortrace&#39; when invoking racket, but to no avail.<br>
&gt; So next question, how do I compel racket to provide the full call<br>
&gt; stack on errors?<br>
<br>
</div>When you add that flag you do get errortrace, but then it&#39;s tricky to<br>
get the rest.<br>
<br>
  racket -l errortrace<br>
<br>
you get no REPL -- need to add a -i flag:<br>
<br>
  racket -l errortrace -i<br>
<br>
you get a REPL, but it has no useful binding -- you&#39;re missing the<br>
language, so add `racket/init&#39; too<br>
<br>
  racket -l errortrace -l racket/init -i<br>
<br>
which finally works.  Alternative shorter syntax for that:<br>
<br>
  racket -lli errortrace racket/init<br>
<br>
And if you&#39;re using `xrepl&#39;, you get a command that turns on<br>
errortrace: &quot;,errt&quot;.<br>
<br>
(But as Matthew said, all of this depends on compiling code in an<br>
&quot;errortrace mode&quot; so if you precompile your files, you don&#39;t get the<br>
extra information.)<br>
<div><div></div><div class="h5"><br>
--<br>
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:<br>
                    <a href="http://barzilay.org/" target="_blank">http://barzilay.org/</a>                   Maze is Life!<br>
</div></div></blockquote></div><br>