Count before you post; Emacs now boasts over 300,000 lines of C.
"Encompassing Massive Amount of C Source"
Count before you post; Emacs now boasts over 300,000 lines of C.
"Encompassing Massive Amount of C Source"
Emacs 29.1, excluding the test directory; top ten languages:
all SLOC=2618374 (100.00%) LLOC=182918 in 2584 files
elisp SLOC=1188181 (45.38%) LLOC=0 in 1566 files
man SLOC=501820 (19.17%) LLOC=0 in 48 files
C SLOC=387169 (14.79%) LLOC=159681 in 317 files
Texinfo SLOC=288384 (11.01%) LLOC=0 in 182 files
Lisp SLOC=175786 (6.71%) LLOC=0 in 1 files
Objective-C SLOC=18289 (0.70%) LLOC=8480 in 8 files
Tex SLOC=16031 (0.61%) LLOC=0 in 23 files
m4 SLOC=10436 (0.40%) LLOC=0 in 133 files
shell SLOC=6819 (0.26%) LLOC=0 in 28 files
C++ SLOC=6240 (0.24%) LLOC=2924 in 5 filesThe C base supports many platforms and variants, so only a part of it is used in a running Emacs instance. And to the 1+M lines of elisp one typically had many more extension packages. That's the the "relative".
In practice, when I want to change things I don't hit the C layer. Anytime I had to introspect Emacs to change something I was firmly in the lisp world. I don't remember having been limited by something being at the C level, which are things that cannot be changed dynamically. This is really what I meant: in practice to change Emacs the C level (although big in the absolute, and definitely complex) doesn't show up much and hasn't been a limitation at least to me.