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