I think I've solved a problem in clisp's REPL for t-expressions.

The Common Lisp implementation has been working just fine on SBCL,
and it also works fine on clisp outside the REPL.  If you use the clisp REPL,
and separate each t-expression with a blank line, it also works fine.

However, there's been some oddness in the clisp REPL.
After reading a line, the clisp REPL throws away the line afterwards.
This means that in:
'(1 2 3)
'(4 5 6)
'(7 8 9)
The clisp REPL would throw away the line with '(4 5 6).

As long as you separated expressions with blank lines it worked, but
this but interferes with cut-and-paste.
This problem does NOT happen when clisp reads a file, or in SBCL at all.
It appears to be a bug in the clisp REPL's internal sys::read-form.

Re-implementing a REPL is doable, but it
wouldn't easily hook into the clisp debugging system, and it turns
out to be nontrivial to redo the clisp REPL initialization.

So after trying (unsuccessfully) to tackle it other ways, I've
taken a sledgehammer to it.  The new "sweet-clisp" program
actually *overrides* the definition of sys::read-form.
The sys::read-eval-print routine calls it, but using C linkage...
so I have to override it, too.  Eeek!

It's ugly, but it seems to work.  There's a command-line option
to skip the override, if you don't want to do it.

The overriding code is derived from clisp, and clisp is GPLv2
(probably GPLv2+).  It's a small snippet, and heavily modified,
so I'm not sure if the license really applies here.  I'm guessing that
for safety's sake, though, sweet-clisp becomes MIT and GPLv2 (+?).
Since that script's only purpose is to call clisp, which is already GPLv2,
that is no change to the license from user's point of view, though it'll
be tricky to explain.

--- David A. Wheeler

------------------------------------------------------------------------------
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