openai / retro
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
c++
txt
man
mdoc
lua
in
capnp
vcxproj
ui
filters
ini
fs
m4
mk
proto
dsp
t
s
adb
mak
scm
cfg
b
com
ads
props
plist
nasm
mms
desktop
cmakein
tpl
clang-format
sco
y
el
pro
csproj
gitattributes
gdb
clp
cmd
yacc
gitmodules
make
sas
ins
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main375310 LOC (81%) 1,844 files
test8064 LOC (1%) 33 files
generated0 LOC (0%) 0 files
build and deployment1141 LOC (<1%) 33 files
other74673 LOC (16%) 3,300 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
ui
ins
vcxproj
in
filters
lua
fs
b
s
y
capnp
desktop
yacc
cfg
gdb
tpl
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 1844 files match defined criteria (375,310 LOC, 100.0% vs. main code):
    • 523 *.c files (143,904 LOC)
    • 235 *.cpp files (91,545 LOC)
    • 677 *.h files (64,565 LOC)
    • 88 *.cxx files (23,469 LOC)
    • 3 *.ts files (13,624 LOC)
    • 108 *.hxx files (11,149 LOC)
    • 29 *.ui files (9,024 LOC)
    • 1 *.ins files (3,908 LOC)
    • 49 *.py files (3,314 LOC)
    • 5 *.vcxproj files (2,675 LOC)
    • 19 *.in files (1,715 LOC)
    • 4 *.filters files (1,291 LOC)
    • 52 *.lua files (1,184 LOC)
    • 14 *.fs files (849 LOC)
    • 4 *.inc files (803 LOC)
    • 5 *.b files (767 LOC)
    • 5 *.pl files (290 LOC)
    • 1 *.m files (230 LOC)
    • 1 *.asm files (228 LOC)
    • 4 *.hpp files (200 LOC)
    • 1 *.s files (176 LOC)
    • 1 *.pm files (139 LOC)
    • 4 *.cmake files (93 LOC)
    • 1 *.y files (89 LOC)
    • 1 *.capnp files (24 LOC)
    • 2 *.desktop files (23 LOC)
    • 1 *.yacc files (12 LOC)
    • 1 *.xml files (8 LOC)
    • 2 *.cfg files (7 LOC)
    • 1 *.gdb files (3 LOC)
    • 2 *.tpl files (2 LOC)
  • " *.c" is biggest, containing 38.34% of LOC.
  • " *.tpl" is smallest, containing 0% of LOC.


*.c143904 LOC (38%) 523 files
*.cpp91545 LOC (24%) 235 files
*.h64565 LOC (17%) 677 files
*.cxx23469 LOC (6%) 88 files
*.ts13624 LOC (3%) 3 files
*.hxx11149 LOC (2%) 108 files
*.ui9024 LOC (2%) 29 files
*.ins3908 LOC (1%) 1 file
*.py3314 LOC (<1%) 49 files
*.vcxproj2675 LOC (<1%) 5 files
*.in1715 LOC (<1%) 19 files
*.filters1291 LOC (<1%) 4 files
*.lua1184 LOC (<1%) 52 files
*.fs849 LOC (<1%) 14 files
*.inc803 LOC (<1%) 4 files
*.b767 LOC (<1%) 5 files
*.pl290 LOC (<1%) 5 files
*.m230 LOC (<1%) 1 file
*.asm228 LOC (<1%) 1 file
*.hpp200 LOC (<1%) 4 files
*.s176 LOC (<1%) 1 file
*.pm139 LOC (<1%) 1 file
*.cmake93 LOC (<1%) 4 files
*.y89 LOC (<1%) 1 file
*.capnp24 LOC (<1%) 1 file
*.desktop23 LOC (<1%) 2 files
*.yacc12 LOC (<1%) 1 file
*.xml8 LOC (<1%) 1 file
*.cfg7 LOC (<1%) 2 files
*.gdb3 LOC (<1%) 1 file
*.tpl2 LOC (<1%) 2 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/test[.].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
  • 33 files match defined criteria (8,064 LOC, 2.1% vs. main code):
    • 14 *.c files (4,372 LOC)
    • 6 *.cpp files (3,304 LOC)
    • 11 *.py files (363 LOC)
    • 2 *.h files (25 LOC)
  • " *.c" is biggest, containing 54.22% of LOC.
  • " *.h" is smallest, containing 0.31% of LOC.


*.c4372 LOC (54%) 14 files
*.cpp3304 LOC (40%) 6 files
*.py363 LOC (4%) 11 files
*.h25 LOC (<1%) 2 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
mk
make
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*[.]mk".
    • files with paths like ".*[.]mak".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*[.]make".
  • 33 files match defined criteria (1,141 LOC, 0.3% vs. main code):
    • 15 *.sh files (588 LOC)
    • 5 *.bat files (370 LOC)
    • 12 *.mk files (169 LOC)
    • 1 *.make files (14 LOC)
  • " *.sh" is biggest, containing 51.53% of LOC.
  • " *.make" is smallest, containing 1.23% of LOC.


*.sh588 LOC (51%) 15 files
*.bat370 LOC (32%) 5 files
*.mk169 LOC (14%) 12 files
*.make14 LOC (1%) 1 file
Other Code
txt
ini
scm
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Mm]an/.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]plist".
    • files with paths like ".*/INSTALL[.][a-z0-9]+".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]svg".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]scm".
    • files with paths like ".*[.]dsp".
  • 3300 files match defined criteria (74,673 LOC, 19.9% vs. main code):
    • 3,086 *.json files (54,946 LOC)
    • 168 *.txt files (16,274 LOC)
    • 15 *.md files (2,217 LOC)
    • 10 *.py files (663 LOC)
    • 1 *.svg files (270 LOC)
    • 14 *.ini files (243 LOC)
    • 6 *.scm files (60 LOC)
  • " *.json" is biggest, containing 73.58% of LOC.
  • " *.scm" is smallest, containing 0.08% of LOC.


*.json54946 LOC (73%) 3,086 files
*.txt16274 LOC (21%) 168 files
*.md2217 LOC (2%) 15 files
*.py663 LOC (<1%) 10 files
*.svg270 LOC (<1%) 1 file
*.ini243 LOC (<1%) 14 files
*.scm60 LOC (<1%) 6 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-04 14:09