Here's some interesting project growth perspective.  I finally finished updating our enumeration script to reflect the changes to the build system and file layout since moving to CMake.  There were a variety of reasons why this was needed, but the result is a particularly interesting comparison with the state of our code from 8 years ago.

The file lists and tabulations are ever so slightly different, so care has to be taken when comparing the numbers (e.g., header counts are now just credited towards app or lib code), but the results are still interesting for big-picture comparison purposes:

sushi:brlcad.trunk morrison$ sh/enumerate.sh 
*****************************************
** BRL-CAD PROJECT ENUMERATION SUMMARY **
*****************************************
BRL-CAD Version: 7.25.0
Enumeration Run: Tue Jul  1 01:04:57 EDT 2014

Included below are various project enumeration statistics for BRL-CAD.
The format/output of this script is subject to change without notice.
Please contact devs@brlcad.org if there are any questions or comments.

Now processing, please wait...

-----------------------------------------
--       FILESYSTEM ORGANIZATION       --
-----------------------------------------
    287 BRL-CAD Directories
   5285 BRL-CAD Files
  2598 BRL-CAD Data Files
  2687 BRL-CAD Source Files
    704 3rd Party Directories
   9047 3rd Party Files
  3648 3rd Party Data Files
  5399 3rd Party Source Files

-----------------------------------------
--        COMPILATION PRODUCTS         --
-----------------------------------------
     26 BRL-CAD Libraries
    451 BRL-CAD Applications
   360 Installed
    91 Not Installed

-----------------------------------------
--          LINE COUNT TOTALS          --
-----------------------------------------
  32013 Build Infrastructure w/ws+=3306
 224456 Documentation w/ws+=27024
 367842 Scripts w/ws+=22423
 298710 Application Sources w/ws+=49267
 446938 Library Sources w/ws+=78264
-----------------------------------------
 180284 BRL-CAD Blank (ws) Lines 
2146742 3rd Party Code w/ws+=240818
-----------------------------------------
3937803 BRL-CAD Repository Total
1550243 BRL-CAD Sources w/ Spaces
1369959 BRL-CAD Source Code Total
=========================================

The basic summary is that we've eliminated a few apps and added a ton of unit tests (~75) and lots of library code (20% increase, +73k).  The build system and docs increased a bit (70% @ +13k and 13% @ 26k respectively) along with scripting code (15% increase, +48k).  The biggest growth was 3rd party code, which has more than doubled (143% increase, +1.3M).

Overall, our source code has gone from 1.2M lines of code to nearly 1.4M with our core compiled sources going from ~656k to ~746k (14% increase, +90k).

Cheers!
Sean



On Aug 15, 2006, at 5:56 AM, Christopher Sean Morrison wrote:

A week or so ago I was yet again confronted with the question of "how big is BRL-CAD?" and found myself once again writing the variety of find statements and custom shell script hacking in order to answer that relatively simple question.  This question periodically comes up and is often summarized by some generalized metric like the number of installed applications or how many lines of source code.  So this time, I decided to compute lots of different enumerations and then put all of the counting into a script that could be reused and called upon on-demand.

Just shy of a million lines of source code if you don't count blank lines or just over if you do, I found myself breaking the numbers down even more and asking even more questions.  For example I was then curious to know how much of that is library code, how big is the documentation in comparison, etc.  The result looks something like this:

*****************************************
** BRL-CAD PROJECT ENUMERATION SUMMARY **
*****************************************
Tue Aug 15 05:48:59 EDT 2006

Included below are various project enumeration statistics for BRL-CAD.
The format/output of this script is subject to change without notice.
Please contact devs@brlcad.org if there are any questions or comments.

Now processing, please wait...

-----------------------------------------
--        COMPILATION PRODUCTS         --
-----------------------------------------
    26 BRL-CAD Libraries
            22 Installed
             4 Not Installed
   380 BRL-CAD Applications
           365 Installed
            15 Not Installed
    25 3rd Party Installed Libraries
    66 3rd Party Installed Applications

-----------------------------------------
--       FILESYSTEM ORGANIZATION       --
-----------------------------------------
  2099 BRL-CAD Files
   501 BRL-CAD Directories
  1237 3rd Party Files
   295 3rd Party Directories

-----------------------------------------
--          LINE COUNT TOTALS          --
-----------------------------------------
1193497 BRL-CAD Project Total
        198919 Documentation
         18761 Build Infrastructure
        975817 Source Code
                 81098 Header
                894719 Non-Header
                        282456 Library Code
                        293100 Application Code
                        319163 Scripts
104252 Blank Lines (not counted above)
884951 3rd Party Code (not counted above)
=========================================



This new script will be included in the next release iteration as the sh/enumerate.sh in the source distribution of BRL-CAD for anyone interested in playing with it some more.

Cheers!
Sean