Recent trends in the codebase size
Eric S. Raymond
esr at thyrsus.com
Sun Jan 29 13:35:23 UTC 2017
Here are the full current stats:
all 71320 (100.00%) in 298 files
c 60694 (85.10%) in 152 files
python 7472 (10.48%) in 48 files
shell 1444 (2.02%) in 7 files
yacc 1255 (1.76%) in 1 files
waf 455 (0.64%) in 11 files
We're down to a hair over 26% of the original bulk of C. The main
possible place to cut that's left is the ntp_io.c code; removing
interface scanning and going with one wildcard socket seems likely
to cut a couple KLOC. Past that, we're running out of crap to clean
up unless we decide to drop more obsolete refclocks or Hal is
able to rewrite the async-DNS code and seriously shrink it.
Accordingly I've recently done a pass through the reclocks. The
dumbclock driver should probably go - it's an obvious dorm-room stunt
that doesn't correspond to any production hardware anywhere.
Otherwise it's hard to see what else to cut without a policy change.
A couple other interesting points:
* The size of the waf recipe has been dropping recently. The crypto
cleanup helped with that. More needs to be done here; it's still
overcomplicated and somewhat buggy.
* 10% of the code is now Python. That's better than I thought we
would do in terms of moving from C to a memory-safe language (that
is, shy of a rewrite in Go or something). It would be good to
increase that further, but this is unlikely; what's left in C either
needs to be there for performace reasons (ntpd) or would be
difficult to shift out of all proportion to its size(ntptime,
ntpfrob, sht).
* Most of the shell code (975 lines) is autorevision.sh.
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
Live free or die; death is not the worst of evils.
-- General George Stark.
More information about the devel
mailing list