This code came originally from v7/32v and thence from 4.4BSD. It was
freed by Caldera. Todd Miller cleaned up and ANSIfied the code, and
then changed it to use the mmap/binary search algorithm for looking up
words in the dictionary that look(1) uses, replacing the hash based
lookups which were faster but broken by the size of the current
dictionary.
I've done a teeny bit of additional cleanup and replaced Todd's ksh
spell(1) script with a /bin/sh script, and re-structured the code to
follow the bsd makefile way, with one executable per directory.
I also added a TODO list recommending a bunch of kinds of cleanup.
The code is, frankly, awful. It was fine in the 1970s, a time of much
more limited resources and tastes, but the world has moved on a bunch
since then. The reason for pulling this in at all is that it will make
it much easier to check in-tree documentation for spelling errors
automatically.