facebook / mariana-trench
File Change Frequency

File change frequency (churn) shows the distribution of file updates (days with at least one commit).

File Change Frequency Overall
File Change Frequency Overall
The number of recorded file updates
  • There are 203 files with 23,622 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 0 files changed 21-50 times (0 lines of code)
    • 21 files changed 6-20 times (7,453 lines of code)
    • 182 files changed 1-5 times (16,169 lines of code)
0% | 0% | 0% | 31% | 68%
Legend:
101+
51-100
21-50
6-20
1-5
explore: zoomable circles | data
File Change Frequency per File Extension
json, cpp, java, h, sexp, md, py, js, gitignore, gradle, cmake, yml, css, txt, sh, xml, properties, svg, bat, prettierignore
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
cpp0% | 0% | 0% | 41% | 58%
h0% | 0% | 0% | 11% | 88%
py0% | 0% | 0% | 38% | 61%
java0% | 0% | 0% | 0% | 100%
cmake0% | 0% | 0% | 0% | 100%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
source0% | 0% | 0% | 30% | 69%
source/model-generator0% | 0% | 0% | 34% | 65%
shim0% | 0% | 0% | 95% | 4%
scripts0% | 0% | 0% | 0% | 100%
desugar/com/facebook/marianatrench0% | 0% | 0% | 0% | 100%
cmake0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
Model.cpp
in source
1139 56 45 232 16 6
283 4 30 249 15 8
Transfer.cpp
in source
1214 39 23 177 13 4
Options.cpp
in source
410 26 23 263 12 5
Options.h
in source
107 - 23 263 11 5
180 1 50 275 11 5
Redex.cpp
in source
259 8 22 231 10 6
ModelGenerator.cpp
in source/model-generator
472 27 74 182 9 5
197 11 108 182 8 3
shim.py
in shim
542 21 30 263 8 5
FieldModel.h
in source
46 2 108 182 7 2
Redex.h
in source
72 - 22 231 7 6
JsonModelGenerator.cpp
in source/model-generator
186 7 30 275 7 4
Model.h
in source
201 6 71 226 7 4
Taint.h
in source
6 - 43 134 6 3
179 13 38 59 6 1
ModelGenerator.h
in source/model-generator
193 10 74 171 6 4
Positions.cpp
in source
311 2 17 254 6 3
465 24 38 59 6 1
MethodConstraints.cpp
in source/model-generator
478 36 55 172 6 3
513 17 66 275 6 5
TaintInTaintThisGenerator.cpp
in source/model-generator
65 1 45 163 5 2
147 13 38 49 5 1
FieldConstraints.cpp
in source/model-generator
170 10 22 171 5 3
MethodConstraints.h
in source/model-generator
189 - 55 172 5 3
Types.cpp
in source
209 4 108 235 5 3
212 20 38 49 5 1
Registry.cpp
in source
265 15 108 170 5 2
FrameSet.cpp
in source
446 24 64 177 5 4
CallGraph.cpp
in source
626 14 23 157 5 3
TaintInTaintOutGenerator.cpp
in source/model-generator
41 1 108 156 4 2
Registry.h
in source
56 - 108 170 4 2
JsonModelGenerator.h
in source/model-generator
58 - 108 172 4 2
FieldConstraints.h
in source/model-generator
81 - 45 171 4 3
Frame.h
in source
242 15 108 177 4 3
368 14 108 276 4 2
Frame.cpp
in source
447 21 108 177 4 3
ContentProviderGenerator.h
in source/model-generator
10 1 108 275 3 3
ServiceSourceGenerator.h
in source/model-generator
10 1 108 268 3 3
Features.cpp
in source
21 - 108 147 3 2
Heuristics.h
in source
21 - 31 108 3 3
Features.h
in source
22 - 108 147 3 2
JoinOverrideGenerator.cpp
in source/model-generator
24 1 21 50 3 1
Context.cpp
in source
26 - 108 197 3 3
Fields.cpp
in source
34 3 108 197 3 3
Fields.h
in source
34 - 108 197 3 3
Context.h
in source
50 - 108 197 3 3
cmake
67 - 108 276 3 2
71 2 108 157 3 3
Transfer.h
in source
84 - 23 157 3 2
Files With Most Contributors (Top 50)
Files sorted by the number of unique email addresses found in commits.

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
Model.cpp
in source
1139 56 45 232 16 6
283 4 30 249 15 8
Transfer.cpp
in source
1214 39 23 177 13 4
Options.cpp
in source
410 26 23 263 12 5
180 1 50 275 11 5
Options.h
in source
107 - 23 263 11 5
Redex.cpp
in source
259 8 22 231 10 6
ModelGenerator.cpp
in source/model-generator
472 27 74 182 9 5
197 11 108 182 8 3
shim.py
in shim
542 21 30 263 8 5
FieldModel.h
in source
46 2 108 182 7 2
Model.h
in source
201 6 71 226 7 4
JsonModelGenerator.cpp
in source/model-generator
186 7 30 275 7 4
Redex.h
in source
72 - 22 231 7 6
179 13 38 59 6 1
465 24 38 59 6 1
Taint.h
in source
6 - 43 134 6 3
Positions.cpp
in source
311 2 17 254 6 3
MethodConstraints.cpp
in source/model-generator
478 36 55 172 6 3
ModelGenerator.h
in source/model-generator
193 10 74 171 6 4
513 17 66 275 6 5
212 20 38 49 5 1
147 13 38 49 5 1
TaintInTaintThisGenerator.cpp
in source/model-generator
65 1 45 163 5 2
Registry.cpp
in source
265 15 108 170 5 2
MethodConstraints.h
in source/model-generator
189 - 55 172 5 3
FieldConstraints.cpp
in source/model-generator
170 10 22 171 5 3
CallGraph.cpp
in source
626 14 23 157 5 3
Types.cpp
in source
209 4 108 235 5 3
FrameSet.cpp
in source
446 24 64 177 5 4
368 14 108 276 4 2
JsonModelGenerator.h
in source/model-generator
58 - 108 172 4 2
TaintInTaintOutGenerator.cpp
in source/model-generator
41 1 108 156 4 2
Registry.h
in source
56 - 108 170 4 2
FieldConstraints.h
in source/model-generator
81 - 45 171 4 3
Frame.h
in source
242 15 108 177 4 3
Frame.cpp
in source
447 21 108 177 4 3
TaintV2.h
in source
134 13 38 44 3 1
JoinOverrideGenerator.cpp
in source/model-generator
24 1 21 50 3 1
TaintV2.cpp
in source
176 23 38 44 3 1
Transfer.h
in source
84 - 23 157 3 2
Features.cpp
in source
21 - 108 147 3 2
TypeConstraints.h
in source/model-generator
124 - 108 172 3 2
TypeConstraints.cpp
in source/model-generator
302 18 108 172 3 2
Features.h
in source
22 - 108 147 3 2
cmake
67 - 108 276 3 2
128 20 108 197 3 3
Fields.cpp
in source
34 3 108 197 3 3
351 17 45 108 3 3
Method.cpp
in source
151 10 108 275 3 3
Correlations

File Size vs. Number of Changes: 203 points

source/Positions.cpp x: 311 lines of code y: 6 # changes source/model-generator/JoinOverrideGenerator.cpp x: 24 lines of code y: 3 # changes source/Redex.cpp x: 259 lines of code y: 10 # changes source/Redex.h x: 72 lines of code y: 7 # changes source/model-generator/FieldConstraints.cpp x: 170 lines of code y: 5 # changes scripts/compare_models.py x: 73 lines of code y: 2 # changes source/Options.cpp x: 410 lines of code y: 12 # changes source/Options.h x: 107 lines of code y: 11 # changes source/CallGraph.cpp x: 626 lines of code y: 5 # changes source/Transfer.cpp x: 1214 lines of code y: 13 # changes source/Transfer.h x: 84 lines of code y: 3 # changes shim/shim.py x: 542 lines of code y: 8 # changes source/EventLogger.cpp x: 10 lines of code y: 1 # changes source/EventLogger.h x: 13 lines of code y: 1 # changes source/MarianaTrench.cpp x: 283 lines of code y: 15 # changes source/model-generator/JsonModelGenerator.cpp x: 186 lines of code y: 7 # changes source/Heuristics.h x: 21 lines of code y: 3 # changes source/CallPositionFrames.cpp x: 465 lines of code y: 6 # changes source/CallPositionFrames.h x: 179 lines of code y: 6 # changes source/CalleeFrames.cpp x: 212 lines of code y: 5 # changes source/CalleeFrames.h x: 147 lines of code y: 5 # changes source/TaintV2.cpp x: 176 lines of code y: 3 # changes source/TaintV2.h x: 134 lines of code y: 3 # changes source/TaintV1.cpp x: 226 lines of code y: 2 # changes source/TaintV1.h x: 150 lines of code y: 2 # changes source/Taint.h x: 6 lines of code y: 6 # changes source/model-generator/TaintInTaintThisGenerator.cpp x: 65 lines of code y: 5 # changes source/Model.cpp x: 1139 lines of code y: 16 # changes source/model-generator/FieldConstraints.h x: 81 lines of code y: 4 # changes source/LifecycleMethod.cpp x: 161 lines of code y: 3 # changes source/ClassProperties.cpp x: 351 lines of code y: 3 # changes source/ClassProperties.h x: 57 lines of code y: 2 # changes source/ModelGeneration.cpp x: 180 lines of code y: 11 # changes source/model-generator/BuilderPatternGenerator.cpp x: 17 lines of code y: 1 # changes source/model-generator/MethodConstraints.cpp x: 478 lines of code y: 6 # changes source/model-generator/MethodConstraints.h x: 189 lines of code y: 5 # changes source/Main.cpp x: 49 lines of code y: 2 # changes source/FulfilledPartialKindState.cpp x: 81 lines of code y: 2 # changes source/FrameSet.cpp x: 446 lines of code y: 5 # changes source/FulfilledPartialKindState.h x: 42 lines of code y: 2 # changes source/Issue.cpp x: 126 lines of code y: 2 # changes source/Issue.h x: 92 lines of code y: 2 # changes source/PostprocessTraces.cpp x: 116 lines of code y: 2 # changes source/Highlights.cpp x: 513 lines of code y: 6 # changes source/AnalysisEnvironment.cpp x: 300 lines of code y: 2 # changes source/Model.h x: 201 lines of code y: 7 # changes source/model-generator/ReturnsThisAnalyzer.cpp x: 170 lines of code y: 1 # changes source/model-generator/ReturnsThisAnalyzer.h x: 7 lines of code y: 1 # changes source/ClassHierarchies.cpp x: 97 lines of code y: 2 # changes source/Dependencies.cpp x: 105 lines of code y: 2 # changes source/Overrides.cpp x: 75 lines of code y: 2 # changes source/Positions.h x: 60 lines of code y: 2 # changes source/model-generator/ModelGenerator.cpp x: 472 lines of code y: 9 # changes source/model-generator/ModelGenerator.h x: 193 lines of code y: 6 # changes source/CanonicalName.cpp x: 124 lines of code y: 2 # changes source/CanonicalName.h x: 85 lines of code y: 2 # changes cmake/FindAndroidSDK.cmake x: 23 lines of code y: 1 # changes cmake/FindRedex.cmake x: 67 lines of code y: 3 # changes desugar/com/facebook/marianatrench/Desugar.java x: 51 lines of code y: 2 # changes desugar/com/facebook/marianatrench/MethodHandleVisitor.java x: 58 lines of code y: 1 # changes desugar/com/facebook/marianatrench/NestVisitor.java x: 14 lines of code y: 1 # changes desugar/com/facebook/marianatrench/RunCommand.java x: 21 lines of code y: 2 # changes scripts/build_static_binary.py x: 368 lines of code y: 4 # changes scripts/cmake_shim.py x: 42 lines of code y: 1 # changes scripts/explore_models.py x: 128 lines of code y: 3 # changes scripts/setup.py x: 210 lines of code y: 2 # changes shim/configuration.py x: 26 lines of code y: 2 # changes shim/package.py x: 2 lines of code y: 1 # changes source/AbstractTreeDomain.h x: 557 lines of code y: 2 # changes source/Access.cpp x: 206 lines of code y: 1 # changes source/Access.h x: 226 lines of code y: 1 # changes source/AccessPathTreeDomain.h x: 200 lines of code y: 2 # changes source/AnalysisEnvironment.h x: 91 lines of code y: 1 # changes source/ArtificialMethods.cpp x: 35 lines of code y: 1 # changes source/ArtificialMethods.h x: 27 lines of code y: 1 # changes source/Assert.h x: 25 lines of code y: 1 # changes source/CallGraph.h x: 162 lines of code y: 2 # changes source/Compiler.h x: 45 lines of code y: 1 # changes source/Constants.cpp x: 19 lines of code y: 2 # changes source/Constants.h x: 14 lines of code y: 2 # changes source/Context.cpp x: 26 lines of code y: 3 # changes source/Context.h x: 50 lines of code y: 3 # changes source/Dependencies.h x: 31 lines of code y: 1 # changes source/FeatureMayAlwaysSet.cpp x: 122 lines of code y: 1 # changes source/FeatureMayAlwaysSet.h x: 79 lines of code y: 1 # changes source/FeatureSet.cpp x: 60 lines of code y: 1 # changes source/FeatureSet.h x: 75 lines of code y: 1 # changes source/Field.cpp x: 40 lines of code y: 2 # changes source/Field.h x: 37 lines of code y: 2 # changes source/FieldCache.h x: 27 lines of code y: 2 # changes source/FieldModel.cpp x: 197 lines of code y: 8 # changes source/FieldModel.h x: 46 lines of code y: 7 # changes source/FieldSet.cpp x: 96 lines of code y: 2 # changes source/Fields.cpp x: 34 lines of code y: 3 # changes source/Flags.h x: 111 lines of code y: 1 # changes source/Frame.cpp x: 447 lines of code y: 4 # changes source/Frame.h x: 242 lines of code y: 4 # changes source/GroupHashedSetAbstractDomain.h x: 279 lines of code y: 1 # changes source/Highlights.h x: 36 lines of code y: 1 # changes source/Interprocedural.cpp x: 227 lines of code y: 3 # changes source/JsonValidation.cpp x: 253 lines of code y: 1 # changes source/JsonValidation.h x: 54 lines of code y: 1 # changes source/Kinds.cpp x: 38 lines of code y: 1 # changes source/Kinds.h x: 51 lines of code y: 1 # changes source/LifecycleMethod.h x: 66 lines of code y: 1 # changes source/Log.h x: 55 lines of code y: 2 # changes source/MarianaTrench.h x: 18 lines of code y: 1 # changes source/MemoryLocation.cpp x: 123 lines of code y: 3 # changes source/MemoryLocation.h x: 107 lines of code y: 2 # changes source/Method.cpp x: 151 lines of code y: 3 # changes source/Method.h x: 68 lines of code y: 2 # changes source/MethodContext.cpp x: 103 lines of code y: 3 # changes source/MethodContext.h x: 71 lines of code y: 3 # changes source/Methods.h x: 40 lines of code y: 1 # changes source/ModelGeneration.h x: 13 lines of code y: 2 # changes source/MultiSourceMultiSinkRule.cpp x: 77 lines of code y: 1 # changes source/MultiSourceMultiSinkRule.h x: 48 lines of code y: 1 # changes source/OperatingSystem.h x: 3 lines of code y: 1 # changes source/Overrides.h x: 29 lines of code y: 1 # changes source/PartialKind.cpp x: 21 lines of code y: 1 # changes source/Propagation.cpp x: 87 lines of code y: 1 # changes source/Propagation.h x: 82 lines of code y: 1 # changes source/Registry.cpp x: 265 lines of code y: 5 # changes source/Registry.h x: 56 lines of code y: 4 # changes source/RootPatriciaTreeAbstractPartition.h x: 124 lines of code y: 1 # changes source/Rule.h x: 49 lines of code y: 1 # changes source/Rules.cpp x: 118 lines of code y: 2 # changes source/Sanitizer.cpp x: 142 lines of code y: 1 # changes source/Sanitizer.h x: 68 lines of code y: 1 # changes source/Statistics.cpp x: 72 lines of code y: 1 # changes source/Types.cpp x: 209 lines of code y: 5 # changes source/UniquePointerFactory.h x: 65 lines of code y: 1 # changes source/UnusedKinds.cpp x: 23 lines of code y: 2 # changes source/model-generator/ContentProviderGenerator.cpp x: 97 lines of code y: 3 # changes source/model-generator/ContentProviderGenerator.h x: 10 lines of code y: 3 # changes source/model-generator/JsonModelGenerator.h x: 58 lines of code y: 4 # changes source/model-generator/ModelTemplates.cpp x: 541 lines of code y: 2 # changes source/model-generator/ModelTemplates.h x: 302 lines of code y: 2 # changes source/model-generator/ServiceSourceGenerator.cpp x: 91 lines of code y: 3 # changes source/model-generator/TaintInTaintOutGenerator.cpp x: 41 lines of code y: 4 # changes source/model-generator/TaintInTaintOutGenerator.h x: 10 lines of code y: 2 # changes source/model-generator/TypeConstraints.cpp x: 302 lines of code y: 3 # changes
16.0
# changes
  min: 1.0
  average: 2.59
  25th percentile: 1.0
  median: 2.0
  75th percentile: 3.0
  max: 16.0
0 1214.0
lines of code
min: 2.0 | average: 116.36 | 25th percentile: 25.0 | median: 65.0 | 75th percentile: 134.0 | max: 1214.0

Number of Contributors vs. Number of Changes: 203 points

source/Positions.cpp x: 3 # contributors y: 6 # changes source/model-generator/JoinOverrideGenerator.cpp x: 1 # contributors y: 3 # changes source/Redex.cpp x: 6 # contributors y: 10 # changes source/Redex.h x: 6 # contributors y: 7 # changes source/model-generator/FieldConstraints.cpp x: 3 # contributors y: 5 # changes scripts/compare_models.py x: 2 # contributors y: 2 # changes source/Options.cpp x: 5 # contributors y: 12 # changes source/Options.h x: 5 # contributors y: 11 # changes source/Transfer.cpp x: 4 # contributors y: 13 # changes source/Transfer.h x: 2 # contributors y: 3 # changes shim/shim.py x: 5 # contributors y: 8 # changes source/EventLogger.cpp x: 1 # contributors y: 1 # changes source/MarianaTrench.cpp x: 8 # contributors y: 15 # changes source/model-generator/JsonModelGenerator.cpp x: 4 # contributors y: 7 # changes source/Heuristics.h x: 3 # contributors y: 3 # changes source/CallPositionFrames.cpp x: 1 # contributors y: 6 # changes source/CalleeFrames.cpp x: 1 # contributors y: 5 # changes source/TaintV1.cpp x: 1 # contributors y: 2 # changes source/model-generator/TaintInTaintThisGenerator.cpp x: 2 # contributors y: 5 # changes source/Model.cpp x: 6 # contributors y: 16 # changes source/model-generator/FieldConstraints.h x: 3 # contributors y: 4 # changes source/FrameSet.cpp x: 4 # contributors y: 5 # changes source/Highlights.cpp x: 5 # contributors y: 6 # changes source/model-generator/ModelGenerator.cpp x: 5 # contributors y: 9 # changes source/model-generator/ModelGenerator.h x: 4 # contributors y: 6 # changes scripts/build_static_binary.py x: 2 # contributors y: 4 # changes source/FieldModel.cpp x: 3 # contributors y: 8 # changes source/FieldModel.h x: 2 # contributors y: 7 # changes
16.0
# changes
  min: 1.0
  average: 2.59
  25th percentile: 1.0
  median: 2.0
  75th percentile: 3.0
  max: 16.0
0 8.0
# contributors
min: 1.0 | average: 1.89 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 2.0 | max: 8.0