Article View: comp.std.c
Article #2773Re: ANSI C standard library
From: Chris Torek
Date: Sun, 21 Apr 1991 00:39
Date: Sun, 21 Apr 1991 00:39
74 lines
3141 bytes
3141 bytes
>lewine@cheshirecat.webo.dg.com (Donald Lewine) writes:
>>If there is [an ANSI C] library that is 60% ANSI conforming C,
>>you are doing very well.
In article <677@taumet.com> steve@taumet.com (Stephen Clamage) writes:
>This is simply untrue.
Well, the percentage is off, but...
>We have a complete hosted ANSI C library written in ANSI C ...
>[with `about 10' system support calls].
>Considering there are over 150 functions in the library written in ANSI
>C, and less than a dozen tiny functions which are machine-specific, I'd
>say we do considerably better than 60%.
Just for comparison: the `free' BSD project has gotten fairly far along
in terms of the C library. I ran the following commands:
% tar cfFF - hp300 | wc
4640 31024 233472
% tar cfFF - i386 | wc
2393 15243 122880
% tar cfFF - vax | wc
5767 35098 253952
% tar cfFF - tahoe | wc
6102 34337 253952
% tar cfFF - db gen locale net stdio stdlib string sys | wc
85910 371098 2564096
(the undocumented capital-FF skips SCCS and RCS files). This gives an
`overall' library ratio of about 5-to-10 percent machine dependent
code, depending on the machine (lower on the Intel-386, primarily due
to lack of tuning)---but this value is affected by several things:
A. The library includes POSIX and BSD functions as well as `pure' ANSI
C functions.
B. There are `semiportable' versions of all of the string functions in
the portable code, with CPU-specific versions in the machine
directories. Thus memcpy is counted once in `string' and once in
`tahoe/string', for instance.
C. The math library, which *should* be largely machine-dependent (for
performance reasons), is not included above. Adding them in:
$ for i in [a-n]* tahoe vax
> do
> echo $i; tar cfFF - $i | wc; done
common
780 4063 32768
common_source
5927 29102 208896
ieee
960 4608 36864
mc68881
1433 8765 65536
national
854 3972 24576
tahoe
830 4792 32768
vax
1951 9572 65536
will require more analysis than I am willing to do here, because again
there are many functions that have `semiportable' versions and rely on
underlying pieces.
and of course
D. `tar' throws the numbers off a bit. (It was just a convenient way of
not counting the revision control data.)
--
In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427)
Berkeley, CA Domain: torek@ee.lbl.gov
Technical Details
Message-ID:
<12320@dog.ee.lbl.gov>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!ucbvax!dog.ee.lbl.gov!elf.ee.lbl.gov!torekReferences:
<1991Apr11.185038.108@cpqhou.uucp> <1991Apr15.194430.18673@webo.dg.com> <677@taumet.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!ucbvax!dog.ee.lbl.gov!elf.ee.lbl.gov!torek From: torek@elf.ee.lbl.gov (Chris Torek) Newsgroups: comp.std.c Subject: Re: ANSI C standard library Message-ID: <12320@dog.ee.lbl.gov> Date: 21 Apr 91 00:39:04 GMT References: <1991Apr11.185038.108@cpqhou.uucp> <1991Apr15.194430.18673@webo.dg.com> <677@taumet.com> Reply-To: torek@elf.ee.lbl.gov (Chris Torek) Organization: Lawrence Berkeley Laboratory, Berkeley Lines: 74 X-Local-Date: Sat, 20 Apr 91 17:39:04 PDT