[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