The Common Lisp implementation generally seems to be
working well (as does the guile implementation it's based on).
In particular, it seems to work like a champ on sbcl.

HOWEVER: I've discovered some subtle problems with clisp
when using the REPL (clisp "load" works just fine).  One problem was
with adjacent initial indents, but I've managed to work around
that problem through a small change in the Common Lisp library.
However, I then found that in the clisp REPL,
if there are 2 t-expressions that are *not* initial-indents,
AND they are NOT separated by a blank line, the first line of the
second t-expression is thrown away.  Ooops.

I haven't found a nicer solution, so I've modified sweet-clisp
so that it normally invokes its *own* REPL for clisp.  It's a sledgehammer,
but it works.  A simple rewritten REPL works just fine on clisp, so I'm pretty
sure this is a bug in clisp's REPL.  However, I have not managed
to track this down further.

So:
1. Anyone want to track down the clisp REPL bug further
   (to fix it or figure out a better work-around)? That'd be great!
2. Alternatively, if anyone wants to contribute a nicer Common Lisp
   REPL, that'd be great.  The current workaround is really bare-bones:
   it doesn't catch any exceptions, fails to support +++ and friends, etc.

--- David A. Wheeler



P.S.:
Here's the clisp workaround REPL I quickly cobbled together,
as part of the modified sweet-clisp file.
Naturally, it's written using sweet-expressions:

format t "clisp sweet-expression REPL, use quit() to exit.~%~%"
loop
  do \\ progn
    write $ eval $ read()
    format t "~%"

P.P.S:
You can use the new option "-CREPL" to use the traditional clisp REPL
if you'd like to.  If you ALWAYS insert a blank line between
expressions in the REPL, then the clisp REPL works just great.
But if you copy and paste things, then you want the *correct*
behavior, and this provides it.


------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to