Next: , Previous: xtokid invocation, Up: Top

10 Past and Future

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 idutils-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 of 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.

In 2006, Claudio Fontana modernized the build system and the code itself, and analyzed and integrated various pending patches. Package name had a minor change from id-utils to idutils, to be more consistent with the other GNU package names.

Future releases of idutils might include:

an optional coupling with GNU grep, so that grep can use an ID database for hints

a cscope work-alike query interface

incremental update of the ID database.