"Tobias C. Rittweiler" tcr@freebits.de writes:
Helmut Eller heller@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.