From: Sam S. <sd...@gn...> - 2002-12-02 00:37:37
|
> * In message <87b...@bi...> > * On the subject of "[clisp-list] (DRIBBLE) in debugger" > * Sent on 01 Dec 2002 00:14:07 +0100 > * Honorable Edi Weitz <ed...@ag...> writes: > > edi@bird:/tmp > clisp > [1]> (dribble "foo") > #<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"foo" @1> > [2]> (/ 1 0) > > *** - division by zero > 1. Break [3]> (dribble) > #<CLOSED OUTPUT BUFFERED FILE-STREAM CHARACTER #P"foo" @1> > 1. Break [3]> :a > > > *** - The value of SYSTEM::*DRIBBLE-STREAM* is not a stream: NIL > 1. Break [5]> (quit) > > *** - The value of SYSTEM::*DRIBBLE-STREAM* is not a stream: NIL > 1. Break [6]> this is because debug loop binds i/o stream vars which interferes with dribble "bindings". basically, starting and stopping dribble should be on the same debug loop level. > I don't think this is a bug but I'd say it is a bit > uncomfortable. CMUCL shows the same behaviour, LispWorks - on > executing (DRIBBLE) - will automatically take you back to the top this is not hard to go - just do (UNWIND-TO-DRIVER T) at the beginning of DRIBBLE. personally, I would find this behavior inconvenient. > level while AllegroCL just carries on without problems - I think this > is done by setting EXCL::*DRIBBLE-ACTIVE* to NIL. > > I prefer ACL's behaviour and think it would be worthwhile to add it to > CLISP. Instead of the current (quite complicated) implementation, we could just check SYS::*DRIBBLE-STREAM* whenever a stream action is done on a strmtype_terminal and act appropriately on SYS::*DRIBBLE-STREAM*. This will not be too hard to implement. The drawback is some (probably negligible) slowdown of terminal i/o (which should not be too important since people generally do not use terminal to do much i/o). Bruno, what do you think? Edi, are you prepared to check out the CVS head and test this change? -- Sam Steingold (http://www.podval.org/~sds) running RedHat8 GNU/Linux <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.palestine-central.com/links.html> The difference between genius and stupidity is that genius has its limits. |