Luke Gorrie replied:
I'm thinking of robustness in the opposite sense: if I'm looking up the definition of FOO, but FOO has been modified, then a hash won't find it but a best-prefix-match search quite possibly will. Looking for definitions that have been modified since compilation is fairly common for me I think.
Yes, If the definition has been recompiled, and the preceeding part of the buffer has been modified, we have the wrong buffer position. This is where the ZMACS (ZWEI) buffer sectionization was a winner. The question is how to limit the best-prefix-match search so that alternative versions can be distinguished, but modifications can be made to a definition and still be found.
Does the existing best-prefix-match search distinguish between versions of the definition that are prefixed by reader conditionals that fail for the current Lisp? This is probably the situation that annoys me the most: finding a definition that is impossible for the current Lisp.
More ideas would be welcome. But hashing seems more sensitive to changes in the sought-after definition than I'd like.
I agree, unless there is a way to "mark" the buffer position of a recompiled definition in some manner that is insensitive to insertions and/or deletions in the preceeding part of the buffer.