[slime-devel] broken clojure REPL

Nikolaus Demmel demmeln at in.tum.de
Fri May 21 10:08:33 UTC 2010


Am 21.05.2010 um 09:40 schrieb Tobias C. Rittweiler:

> Cyrus Harmon <ch-slime at bobobeach.com> writes:
> 
>> On Nov 17, 2009, at 12:46 PM, Tobias C. Rittweiler wrote:
>> 
>>> "Stefan Kamphausen" <skampi at gmx.net> writes:
>>> 
>>>> Hi Tobias,
>>>> 
>>>> -------- Original-Nachricht --------
>>>>> Datum: Tue, 17 Nov 2009 21:04:21 +0100 Von: "Tobias C. Rittweiler"
>>>>> <tcr at freebits.de> An: slime-devel at common-lisp.net Betreff: Re:
>>>>> [slime-devel] broken clojure REPL
>>>> 
>>>>> "Stefan Kamphausen" <skampi at 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





More information about the slime-devel mailing list