Date: Tue, 17 Oct 1995 00:08:44 +1000 From: Bruce Evans <bde@zeta.org.au> To: ache@astral.msk.su, phk@critter.tfs.com Cc: bde@zeta.org.au, hackers@freefall.freebsd.org, j@uriah.heep.sax.de, kaleb@x.org Subject: Re: A couple problems in FreeBSD 2.1.0-950922-SNAP Message-ID: <199510161408.AAA30026@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>running it on sbin: >100% use ctype!!! >So my suspection was right. This mainly proves that the library modules are even more excessively interdependent than at first appearance. I investigated why /sbin/dset references ctype: 1) dset references mkstemp() for some reason. mkstemp() uses only isdigit() from among the ctype functions. isdigit() isn't dependent on the locale, but it drags in locale stuff anyway. 2) dset references vfprintf() which references __dtoa(). __dtoa() doesn't reference ny ctype functions, but it is implemented in the same module as strtod() which does. strtod() references only isspace() among the ctype functions (it uses comparisons with '0' and '9' instead of isdigit()). Almost everything references printf so 2) applies to almost everything. Thus we have about 55 * 20K of bloat in [s]bin mainly for the stupid reason that a function that is almost never called (strtod()) needs to know what a space is. strtoul() etc. use isspace() too. They are used more often than strtod() and it's much more important that spaces work right than that bases > 36 work right, so ignore my previous mail saying that locales aren't important for strtoul() etc. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510161408.AAA30026>