[slime-devel] broken clojure REPL

Tobias C. Rittweiler tcr at freebits.de
Mon Jan 11 14:23:20 UTC 2010


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.





More information about the slime-devel mailing list