Reason for reordering /usr/share/misc/termcap.src for /usr/share/misc/termcap ?

Kirk McKusick mckusick at mckusick.com
Mon Dec 8 16:51:48 UTC 2014


> Date: Mon, 08 Dec 2014 13:13:40 +0100
> From: Erik Trulsson <Erik.Trulsson.1013 at student.uu.se>
> To: Garrett Cooper <yaneurabeya at gmail.com>
> Cc: FreeBSD Hackers <freebsd-hackers at freebsd.org>,
>         Kirk McKusick <mckusick at mckusick.com>, jkh at freebsd.org,
>         dickey at his.com
> Subject: Re: Reason for reordering /usr/share/misc/termcap.src for /usr/share/misc/termcap ?
> X-ASK-Info: Message Queued (2014/12/08 04:13:49)
> X-ASK-Info: Confirmed by User (2014/12/08 08:34:35)
> 
> Quoting Garrett Cooper <yaneurabeya at gmail.com>:
> 
>> Hi all,
>> 	I'm trying to resolve an issue where usr.bin/vi is needed to  
>> preprocess share/termcap every time make buildworld is invoked on  
>> FreeBSD. The termcap file reordering seems to have been done since  
>> the BSD 4.4 Lite sources were imported into FreeBSD:  
>> https://svnweb.freebsd.org/base/projects/building-blocks/share/termcap/Makefile?view=markup#l15,
>> https://svnweb.freebsd.org/base?view=revision&revision=1638.
>> I don't have history behind why this should be done (it's unfortunate
>> because it appears to mangle the comment <-> entry mappings, and
>> ultimately this gets put into termcap.db), and I was hoping that
>> someone with additional history could fill in why this is being done.
>> Thank you!
> 
> It looks like it is done to put the most common (at the time it was  
> written) terminal types early in the reordered termcap file.  This  
> presumably so that programs reading termcap would be more likely to  
> find the entry they wanted as quickly as possible.
> 
> That would have been useful when termcap was just a plain text file,  
> but if you are using termcap.db to look up terminal capabilities then  
> there doesn't seem to be much point to doing such reordering beforehand.

I believe Erik Trulsson's answer is correct. Termcap had grown very
large and on sub-1-MIP computers took a noticable delay to read on
every startup of programs using it. So, it was reordered to reduce
the startup time on common terminals. As Erik points out this optimization
is no longer necessary as termcap is now placed in a database. Not to
mention that there are far fewer entries in it today than there were
at the peak of its existence.

	Kirk McKusick


More information about the freebsd-hackers mailing list