Greg McGary conceived of the ideas behind the ID utilities when he
began working on the Unix kernel in 1984. He needed a navigation tool
to help him find his way around the expansive, unfamiliar landscape.
The first id-utils
-like tools were shell scripts, and produced an
ASCII database that looks much like the output of `lid ".*"'. It
took over an hour on a VAX 11/750 to build a database for a
4.1BSD derived kernel. The first version of `lid' used the
UNIX system utility look
, modified to handle very long
lines.
In 1986, Greg rewrote the shell scripts in C to improve performance.
Build times for the ID file were shortened by an order of magnitude.
The ID utilities were first posted to `comp.sources.unix' in
September 1987 under the name id
.
Over the next few years, several versions diverged from the original source. Tom Horsley at Harris Computer Systems Division stepped forward to take over maintenance and integrated some of the fixes from divergent versions. A first release of the renamed `mkid' version 2 was posted to `alt.sources' near the end of 1990. At that time, Tom wrote a Texinfo manual with the encouragement the net community. (Tom especially thanks Doug Scofield and Bill Leonard whom he dragooned into helping proofread and edit--they found several problems in the initial version.) Karl Berry revamped the manual for Texinfo style, indexing, and organization in 1995.
In January 1995, Greg McGary reemerged as the primary maintainer and launched development of `mkid' version 3, whose primary new feature is an efficient algorithm for building databases that is linear in both time and space over the size of the input text. (The old algorithm was quadratic in space so it was incapable of handling very large source trees.) For the first time, the code was released under the GNU Public License.
In June 1996, the package was renamed again to id-utils
and was
released for the first time under FSF copyright as part of the GNU
system. All programs had their command-line arguments completely
revised. The `mkid' and `xtokid' programs also gained a
file-tree walker, so that directory names can be passed on the command
line instead of the names of every individual file. Greg reorganized
and rewrote most of the Texinfo manual to reflect these changes.
Future releases of id-utils
might include:
grep
, so that grep
can use
an ID database for hints
a cscope
work-alike query interface
incremental update of the ID database.
Go to the first, previous, next, last section, table of contents.