The problem is that GCL's readline is looking at the names of Lisp symbols as the possible completions of the user input. (The canonical name of a Lisp symbol is actually uppercase, although if it is entered as lowercase, it's automatically mapped to uppercase. This business about case inversion is one of the ill-considered compromises that were accepted at the origin of Common Lisp circa 1985 or so.)
I looked at a few possibilities. (1) Disable symbol name completion but leave other readline functionality (line editing) enabled. (2) Tell GCL readline to complete symbol names in the symbol package (i.e., namespace) "MAXIMA". (3) Supply an explicit list of strings for completion instead of letting GCL readline infer the list from SYSTEM:*READLINE-PREFIX*.
For (1), I couldn't find an option for that. For (2), I can set SYSTEM:*READLINE-PREFIX* to "MAXIMA::$" and then it completes Maxima symbols, but it inverts the case. I couldn't figure out how to disable case inversion. For (3), I don't see a way to specify a completion list; SYSTEM:*READLINE-PREFIX* is the only global parameter I found.
So, circling back to (1). setting SYSTEM:*READLINE-PREFIX* to a nonexistent package name has the effect of disabling symbol completion, since there are no completable symbols. I implemented that in commit 1982c57.
That's a suboptimal bug fix, so if anyone has a better way to fix it, I'm all for it. Closing this report as fixed.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The problem is that GCL's readline is looking at the names of Lisp symbols as the possible completions of the user input. (The canonical name of a Lisp symbol is actually uppercase, although if it is entered as lowercase, it's automatically mapped to uppercase. This business about case inversion is one of the ill-considered compromises that were accepted at the origin of Common Lisp circa 1985 or so.)
I looked at a few possibilities. (1) Disable symbol name completion but leave other readline functionality (line editing) enabled. (2) Tell GCL readline to complete symbol names in the symbol package (i.e., namespace) "MAXIMA". (3) Supply an explicit list of strings for completion instead of letting GCL readline infer the list from
SYSTEM:*READLINE-PREFIX*.For (1), I couldn't find an option for that. For (2), I can set
SYSTEM:*READLINE-PREFIX*to "MAXIMA::$" and then it completes Maxima symbols, but it inverts the case. I couldn't figure out how to disable case inversion. For (3), I don't see a way to specify a completion list;SYSTEM:*READLINE-PREFIX*is the only global parameter I found.So, circling back to (1). setting
SYSTEM:*READLINE-PREFIX*to a nonexistent package name has the effect of disabling symbol completion, since there are no completable symbols. I implemented that in commit 1982c57.That's a suboptimal bug fix, so if anyone has a better way to fix it, I'm all for it. Closing this report as fixed.