Some people will remember this from a previous discussion:
(defvar test-read-table (copy-readtable))
(set-macro-character #\: #'(lambda (stream char) :colon)
nil test-read-table)
(defun s (string)
(let ((words '())
(index 0)
(*readtable* test-read-table))
(loop
(multiple-value-bind (word next-index)
(read-from-string string nil nil :start index)
(setq index next-index)
(cond (word
(push word words))
(t
(return (nreverse words)))))))))
In KCl, (s "x:x") returns the error "There is no package named X."
I believe the correct behavior would be to return (X :COLON X).
Suggestions, workarounds?
--eliot