Closed kpoeck closed 3 years ago
This idiom is widely used. I claso I found until now 13 files. While I can change that in clasp, it also happens in other libraries in the quicklisp universe and it seems not possible to change all exiing libraries.
First example https://gitlab.common-lisp.net/alexandria/alexandria/blob/master/functions.lisp#L157
See also in the discussion - you were part - in #clasp
I believe the workaround posted by scymtym is:
(defun sharpsign-single-quote (stream char parameter)
(declare (ignore char))
(unless (null parameter)
(numeric-parameter-ignored stream 'sharpsign-single-quote parameter))
(let ((name (with-forbidden-quasiquotation ('sharpsign-single-quote :keep :keep #+(or) t)
(read stream t nil t))))
(if *read-suppress*
nil
`(function ,name))))
@scymtym what about making this configurable if you don't want to change that globally?
Maybe by having a "relaxed" version of the reader macro function?
The best way forward would be deriving the correct behavior from the specification, of course.
How would I use the relaxed version?
How would I use the relaxed version?
You would install the relaxed version of the reader macro function into your readtable object.
Under the current circumstances, I can't promise that I will be able to work on this anytime soon. I suggest carrying on with the workaround in https://github.com/s-expressionists/Eclector/issues/59#issuecomment-601390652 for now.
There is no short term pressure to do this, so whenver you have time. I think now I understood what you are saying and could even do a PR implementing what you said.
Installing in the read-table seems easy enough, that I can do in clasp by myself
e.g. in sbcl