R we type yet?

Type-checking results for 7 CRAN packages — generated 2026-07-09 23:46 · checker unknown

7
Packages analysed
223
Entrypoints found
.Call 212 · .C 10 · .Fortran 0 · .External 1
1689
C functions analysed
68.4%
Analysed functions typed
59.2%
Entrypoints typed
132 / 223
41
Functions timed out
7 / 7
Packages without crash

Per-package results

PackageEntrypoints.Call.C.Fortran.ExternalEP typing progressFunctions analysedTimed outTyping progressTyping timeStatus
askpass00000no functions analysed00no functions analysed0 sOK
clue1001000
10 / 10 (100.0%)
223
19 / 22 (86.4%)
83 sOK
curl4141000
28 / 41 (68.3%)
1260
92 / 126 (73.0%)
43 sOK
jsonlite2121000
10 / 21 (47.6%)
1098
73 / 109 (67.0%)
245 sOK
sys22000
2 / 2 (100.0%)
350
27 / 35 (77.1%)
2 sOK
utf844000
3 / 4 (75.0%)
876
71 / 87 (81.6%)
145 sOK
vctrs145144001
79 / 145 (54.5%)
131024
873 / 1310 (66.6%)
839 sOK

Per-function inference timing sum of --log-times per function

PackageFunctions timedTimed outTotalAvgMedianSDMinMax
vctrs1294 / 131024817.61 s0.632 s0.021 s2.99 s0.000 s20.55 s
jsonlite109 / 1098244.29 s2.24 s0.059 s5.65 s0.003 s20.01 s
utf885 / 876141.53 s1.67 s0.057 s5.12 s0.000 s20.01 s
clue12 / 22382.21 s6.85 s1.65 s8.76 s0.006 s20.01 s
curl121 / 126042.45 s0.351 s0.011 s1.83 s0.001 s16.66 s
sys35 / 3502.02 s0.058 s0.011 s0.147 s0.001 s0.550 s

Pipeline phase breakdown from Phase: lines under --log-times

Σ infer_ast is the sum of every function's infer_ast body-inference timing (the same total as in the table above). overhead = fundef_pass − Σ infer_ast: time spent inside the Fundef loop that isn't attributed to any function body — PAst.transform per function, dispatch (StrMap lookups, idenv union), and GC between calls.

PackageWallload_typarsingcall_graphnon_fundeffundef_passΣ infer_astoverhead
fundef_pass − Σ infer_ast
vctrs839.44 s0.025 s2.02 s0.140 s0.167 s836.89 s817.61 s19.28 s
jsonlite245.32 s0.020 s0.442 s0.004 s0.009 s244.78 s244.29 s0.490 s
utf8145.01 s0.037 s3.33 s0.008 s0.018 s141.57 s141.53 s0.041 s
clue82.78 s0.022 s0.303 s0.002 s0.006 s82.37 s82.21 s0.169 s
curl43.09 s0.022 s0.464 s0.007 s0.023 s42.52 s42.45 s0.071 s
sys2.36 s0.019 s0.267 s0.002 s0.012 s2.03 s2.02 s0.012 s
askpass0.343 s0.024 s0.271 s0.000 s0.013 s0.000 s

Error and timeout categories

ErrorCount
untypeable application302
unbound variable181
timeout41
untypeable projection10

Functions typed as empty typed, but the inferred result is empty (bottom)

An empty return means inference found no usable value — usually a red flag, though it can be legitimate for bail-out helpers (e.g. bail_if-style functions that never return). Drill into a package and use the empty return only filter to see which functions.

PackageEmpty returns% of pkg typed
All packages13411.6%
vctrs667.6%
curl3032.6%
utf81825.4%
jsonlite1419.2%
sys518.5%
clue15.3%