It appears that the Kate editor has a lot of xml
files describing various languages, for highlighting purposes. For example, commonlisp.xml
contains all 978 standard Common Lisp symbols. Other projects depends on these files, like Skylighting in Haskell and then indirectly matterhorn.
But commonlisp.xml
also define a mysterious TRUNCASE
function at line 901, which does not exist in the standard.
The vim editor also define this function, in runtime/syntax/lisp.vim.
I suspect the vim file to be generated from the Kate one, or inversely, or from the same source as Kate.
The above file also says:
Clisp additions courtesy of http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/emacs/lisp.vim
We can find the file on sourceforge, but there is no mention of truncase
here:
https://sourceforge.net/p/clisp/clisp/ci/default/tree/emacs/lisp.vim
But maybe there is another Lisp implementation that used to define this function.
So I’m wondering if this is all just a bug that survived the passage of time and made its way into various projects, or if there is a good reason for this function to be added to the list of Lisp symbols.
Was there ever a TRUNCASE
function defined as part of a Lisp dialect?
3
I examined the top of several versions of the mentioned lisp.vim
and all of them had truncase
. I checked out linked-to CVS repo for clisp and examined lisp.vim, it did NOT have truncase
.
Other nails in the coffin:
- There is no
TRUNCASE
in the index of my copy of Common Lisp, the Language, 2nd Edition, onlyTRUNCATE
. - It’s not in ZetaLisp’s index, either the 3rd or 6th edition.
- It’s not in the HyperSpec.
- It’s not in clasp.
Pretty sure it was just a typo for truncate
.
1
There is no mention of this symbol anywhere else and it is unlikely that it ever existed. The linked code is probably a bug and a fix was submitted and merged.