[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]

EQUALP hash tables were absolutely essential in keeping LMI in
business, maybe thats why they were excluded. But seriously folks, the
digital CAD program we use in-house, "NewDraw," broke when moving from
pre-common-lisp system to post-common-lisp. Right at the time when
major new hardware development was going on, and the "NewDraw" users
wanted to move to post-common-lisp because of vast speed improvements
such as microcoded ethernet. There clearly wasnt any time for major
rewrites, so that the only thing to do was to change all functions
which inductively called EQUAL in the pre-common-lisp to ones that
call EQUALP in the new system.  EQUAL => EQUALP, and ASSOC =>
ASSOC-EQUALP are the kind of obvious cases, but the program still
didnt work until a clever hardware engineer realized that he was being
screwed by hash table lookup, and changed MAKE-HASH-TABLE :TEST 'EQUAL
=> :TEST 'EQUALP.  Which of course didnt work until a software person
implemented it.

The problem was that (EQUAL "foo" "FOO") used to be T, but now is NIL,
and all the hardware databases had chip and signal names in both
upper and lowercase, depending on what the user first typed in.

So from practical experience I can definitely put in a vote for
having :TEST 'EQUALP in hash tables.