Skip site navigation (1)Skip section navigation (2)
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>