Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Oct 1995 18:06:04 +0300 (MSK)
From:      =?KOI8-R?Q?=E1=CE=C4=D2=C5=CA_=FE=C5=D2=CE=CF=D7?= (aka Andrey A. Chernov, Black Mage) <ache@astral.msk.su>
To:        Bruce Evans <bde@zeta.org.au>, phk@critter.tfs.com
Cc:        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:  <WlSJdWmeMT@ache.dialup.demos.ru>
In-Reply-To: <199510161408.AAA30026@godzilla.zeta.org.au>; from Bruce Evans at Tue, 17 Oct 1995 00:08:44 %2B1000
References:  <199510161408.AAA30026@godzilla.zeta.org.au>

next in thread | previous in thread | raw e-mail | index | archive | help
In message <199510161408.AAA30026@godzilla.zeta.org.au> Bruce Evans
    writes:

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

Yes, mkstemp is one of rare functions which is pure-ASCII.
I think direct test for '0' >= x =< '9' is preferred for pure-ASCII
functions than ctype usage.

>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()).

isspace() is purity killer.

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

vfprintf module calls too many functions besides dtoa, they are
fflush, swsetup, sfvwrite, abort, etc. I am not shure that any of them
not calls ctype functions indirectly additionly.

-- 
Andrey A. Chernov        : And I rest so composedly,  /Now, in my bed,
ache@astral.msk.su       : That any beholder  /Might fancy me dead -
FidoNet: 2:5020/230.3    : Might start at beholding me,  /Thinking me dead.
RELCOM Team,FreeBSD Team :         E.A.Poe         From "For Annie" 1849



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?WlSJdWmeMT>