Am 21.05.2010 um 09:40 schrieb Tobias C. Rittweiler:
Cyrus Harmon ch-slime@bobobeach.com writes:
On Nov 17, 2009, at 12:46 PM, Tobias C. Rittweiler wrote:
"Stefan Kamphausen" skampi@gmx.net writes:
Hi Tobias,
-------- Original-Nachricht --------
Datum: Tue, 17 Nov 2009 21:04:21 +0100 Von: "Tobias C. Rittweiler" tcr@freebits.de An: slime-devel@common-lisp.net Betreff: Re: [slime-devel] broken clojure REPL
"Stefan Kamphausen" skampi@gmx.net writes:
[...]
You didn't answer the important question:
Clojure seems to conflate how symbols are named, and how they're read in. Is there no way to escape symbol names?
Just to answer this question, in case it hasn't been answered: AFAICT there is no way to escape symbol names, in particular you can't have "%".
From "http://clojure.org/reader":
"Symbols begin with a non-numeric character and can contain alphanumeric characters and *, +, !, -, _, and ? (other characters will be allowed eventually, but not all macro characters have been determined). '/' has special meaning, it can be used once in the middle of a symbol to separate the namespace from the name, e.g. my-namespace/foo. '/' by itself names the division function. '.' has special meaning - it can be used one or more times in the middle of a symbol to designate a fully-qualified class name, e.g. java.util.BitSet, or in namespace names. Symbols beginning or ending with '.' are reserved by Clojure. Symbols containing / or . are said to be 'qualified'. Symbols beginning or ending with ':' are reserved by Clojure. A symbol can contain one or more non-repeating ':'s."
I can change %cursor-marker% to have a symbol name that's nicer for clojure to cope with. But it would be an interim solution, only. I really want to see this fixed in Clojure.
Changing to slime::%cursor-marker% to, say. slime::-cursor-marker- fixes the problem. I know it may not be the ideal solution, but it would be nice to have a version of slime newer than the one from last october that worked with clojure.
Clojure's swank implementation has to replicate SIMPLE-READ in swank-rpc.lisp. It's only two dozens lines of code, should not be hard.
Having said the above you still might be able to manually handle the %cursor-marker% symbol and change it to something else in Clojure swank. But then again I don't know anything about swank / clojure / ...
Best regards, Niko