[slime-devel] broken clojure REPL
Tobias C. Rittweiler
tcr at freebits.de
Mon Jan 11 14:28:02 UTC 2010
"Tobias C. Rittweiler" <tcr at freebits.de> writes:
> Helmut Eller <heller at common-lisp.net> writes:
>
>> * Terje Norderhaug [2010-01-09 22:52+0100] writes:
>>
>>> Now that there are multiple clients and servers, I think it is time
>>> that we formalize the lisp syntax of the messages in the swank
>>> protocol. It should be simple, limited to a subset of what is allowed
>>> by Common Lisp... something parseable with say less than a page of
>>> lisp code.
>>
>> Here's a one page reader:
>>
>> (defun simple-read ()
>> (let ((c (read-char)))
>> (case c
>> (#\" (with-output-to-string (*standard-output*)
>> (loop for c = (read-char) do
>> (case c
>> (#\" (return))
>> (#\\ (write-char (read-char)))
>> (t (write-char c))))))
>> (#\( (loop collect (simple-read)
>> while (ecase (read-char)
>> (#\) nil)
>> (#\space t))))
>> (#\' `(quote ,(simple-read)))
>> (t (let ((string (with-output-to-string (*standard-output*)
>> (loop for ch = c then (read-char nil nil) do
>> (case ch
>> ((nil) (return))
>> ((#\space #\)) (unread-char ch) (return))
>> (t (write-char ch)))))))
>> (cond ((digit-char-p (aref string 0)) (parse-integer string))
>> ((intern string))))))))
>>
>> Now prove or disprove that Slime uses this syntax.
>
> The slime-fuzzy contrib uses floats over the wire. :-)
>
> -T.
Hmm, actually no, slime-fuzzy turns them into strings. I misremebered,
it's C-c C-c/C-c C-k that sends floats over the wire as part of a
compilation result.
-T.
More information about the slime-devel
mailing list