robigo: progress

GNU R 4.5.0 runtime in Rust · last commit 8a33af5 (2026-11-08) · repository · raw data

Every merge to main is measured by CI (see docs/verification.md). Speed counts instructions with callgrind, which is exact and repeatable on a shared runner; a program whose output differs from GNU R's does not count.

Speed

Speed: robigo vs GNU R 4.5.0GNU R instructions ÷ robigo instructions (callgrind), geometric mean. Higher is faster.Only programs whose output matches GNU R's count: 89 of 89 programs. 1.5× 2× 3× 1× GNU R 2.74× Oct 27 Oct 30 Nov 2 Nov 5 Nov 8
Speed: robigo vs GNU R 4.5.0GNU R instructions ÷ robigo instructions (callgrind), geometric mean. Higher is faster.Only programs whose output matches GNU R's count: 89 of 89 programs. 1.5× 2× 3× 1× GNU R 2.74× Oct 27 Oct 30 Nov 2 Nov 5 Nov 8
Speed by benchmark suite GNU R instructions ÷ robigo instructions, geometric mean; one shared log scale, the gray line is GNU R. Are We Fast Yet 2.02× 5 of 5 Benchmarks Game 2.41× 36 of 36 Micro-benchmarks 5.23× 16 of 16 Real programs 2.36× 7 of 7 robigo's suite 2.41× 25 of 25
Speed by benchmark suite GNU R instructions ÷ robigo instructions, geometric mean; one shared log scale, the gray line is GNU R. Are We Fast Yet 2.02× 5 of 5 Benchmarks Game 2.41× 36 of 36 Micro-benchmarks 5.23× 16 of 16 Real programs 2.36× 7 of 7 robigo's suite 2.41× 25 of 25

Compatibility

Compatibility with GNU R 4.5.0 Share of cases whose stdout, stderr and exit status match GNU R's (each panel 0-100%); builtins implemented. FastR test snippets 99.9% 31,336 of 31,374 cases GNU R's regression tests 61.0% 36 of 59 cases Help-page examples 96.5% 1,113 of 1,153 cases GNU R's demos 93.8% 15 of 16 cases An Introduction to R 92.3% 12 of 13 cases Pure-R CRAN packages 95.1% 39 of 41 cases Top CRAN packages' tests 93.4% 8,117 of 8,693 tests, snapshot 2026-11-01 C API 97.1% 66 of 68 cases Conformance scripts 97.4% 454 of 466 cases .Primitive/.Internal builtins 92.4% 702 of 760
Compatibility with GNU R 4.5.0 Share of cases whose stdout, stderr and exit status match GNU R's (each panel 0-100%); builtins implemented. FastR test snippets 99.9% 31,336 of 31,374 cases GNU R's regression tests 61.0% 36 of 59 cases Help-page examples 96.5% 1,113 of 1,153 cases GNU R's demos 93.8% 15 of 16 cases An Introduction to R 92.3% 12 of 13 cases Pure-R CRAN packages 95.1% 39 of 41 cases Top CRAN packages' tests 93.4% 8,117 of 8,693 tests, snapshot 2026-11-01 C API 97.1% 66 of 68 cases Conformance scripts 97.4% 454 of 466 cases .Primitive/.Internal builtins 92.4% 702 of 760

Top CRAN packages at 9b86fc7

99.6% of 2,264 test blocks behave as under GNU R, and 3 of 20 packages are fully green. Packages with over 900,000 downloads a month and over 500 packages using them, at PPM snapshot 2026-11-01. Their own test suites run nightly under real testthat and tinytest. A block counts when its outcome matches GNU R 4.5.0's recording, and a package is green when every block does (see docs/verification.md).

Some shards did not report: this run is incomplete and sets no score.

8 tests regressed against the ratchet.

packagematchingscoredsharetrend time vs GNU R
R6 2.6.17373100.0%0.7×green
RcppEigen 0.3.4.0.2131131100.0%0.8×green
stringr 1.6.0212212100.0%0.7×green
tidyselect 1.2.121821999.5%1.3×
Rcpp 1.1.21,6211,62999.5%0.8×
What fails most
testspackagesfirst failure
3RcppMean relative difference: 0.5
2RcppModes: character, NULL Lengths: 2, 0 target is character, current is NULL
2RcppNames: 4 string mismatches 4 string mismatches
1tidyselect<getvarError/missingArgError/error/condition> Error in `is_negated(x)`: argument "expr" is missing, with no default
1RcppMean relative difference: 1

Package scripts as users run them

8 of 8 smoke scripts produce GNU R 4.5.0's exact stdout, stderr and exit status on the same pinned library. They run on every pull request in minutes, where the suites above are nightly; a script counts only when the whole transcript matches, so this is the "can I just use it" number. Cases that have never passed are pending gaps, not regressions (see docs/verification.md).

scriptstate
ggplot-buildpass
lubridate-datespass
own-dagricultureabsent
purrr-mappass
rlang-abortpass
stringr-gluepass
testthat-filepass
tibble-printpass
tidyverse-verbspass

Benchmarks at 8a33af5

benchmarkvs GNU Rtrendrobigo instr GNU R instr
rbench/awf/Bounce1.42×580,535,818825,850,699
rbench/awf/Bounce_nonames2.61×338,461,804884,026,419
rbench/awf/Bounce_nonames_simple2.58×309,809,132799,475,912
rbench/awf/Mandelbrot2.48×200,775,496498,340,202
rbench/awf/Storage1.40×533,865,112748,769,330
rbench/real/convolution6.23×250,686,1841,561,606,373
rbench/real/convolution_slow6.37×282,586,4431,799,669,605
rbench/real/convolution_v2.70×271,982,077734,420,116
rbench/real/flexclust0.98×5,272,741,3335,165,702,664
rbench/real/flexclust_kcca1.41×32,033,094,79545,127,257,262
rbench/real/flexclust_no_s41.02×5,692,020,6305,779,152,745
rbench/real/volcano2.75×193,434,394531,637,940
rbench/shootout/binarytrees2.86×240,329,965687,745,905
rbench/shootout/binarytrees_22.69×248,278,728669,082,797
rbench/shootout/binarytrees_naive2.69×247,011,971664,870,058
rbench/shootout/fannkuchredux2.71×269,744,529730,721,419
rbench/shootout/fannkuchredux_naive2.38×274,587,838652,493,898
rbench/shootout/fasta2.90×311,244,279901,724,058
rbench/shootout/fasta_22.64×367,261,561968,199,431
rbench/shootout/fasta_32.58×367,166,228949,023,012
rbench/shootout/fasta_naive3.89×247,485,673962,338,651
rbench/shootout/fasta_naive_23.75×254,077,709953,412,012
rbench/shootout/fastaredux3.52×272,999,028961,284,066
rbench/shootout/fastaredux_naive4.30×265,896,3881,143,264,128
rbench/shootout/knucleotide1.71×3,017,557,8135,156,471,198
rbench/shootout/knucleotide_brute0.32×21,801,512,8086,967,427,773
rbench/shootout/knucleotide_brute_20.33×23,072,131,0287,569,803,612
rbench/shootout/knucleotide_brute_30.31×117,015,062,77436,851,517,420
rbench/shootout/mandelbrot_ascii1.81×416,719,304754,610,828
rbench/shootout/mandelbrot_naive_ascii3.99×279,944,6051,117,485,013
rbench/shootout/mandelbrot_noout1.71×496,623,577848,399,226
rbench/shootout/mandelbrot_noout_naive1.99×409,993,366816,269,867
rbench/shootout/nbody1.48×691,463,0111,022,080,922
rbench/shootout/nbody_22.26×460,505,1071,039,946,053
rbench/shootout/nbody_32.24×501,596,6471,121,762,084
rbench/shootout/nbody_naive3.55×381,821,8801,356,249,730
rbench/shootout/nbody_naive_22.59×497,874,4421,291,129,818
rbench/shootout/pidigits5.44×279,323,8941,519,264,130
rbench/shootout/regexdna12.1×1,364,996,76316,574,483,619
rbench/shootout/reversecomplement1.50×2,828,604,6654,253,357,546
rbench/shootout/reversecomplement_21.51×2,649,882,1864,000,510,640
rbench/shootout/reversecomplement_naive1.38×3,161,767,6774,366,833,747
rbench/shootout/spectralnorm6.43×224,530,0871,444,083,278
rbench/shootout/spectralnorm_alt2.76×447,234,3931,236,253,893
rbench/shootout/spectralnorm_alt_23.19×519,004,5291,654,296,854
rbench/shootout/spectralnorm_alt_37.03×232,065,6791,631,896,151
rbench/shootout/spectralnorm_math1.67×510,846,428851,557,080
rbench/shootout/spectralnorm_naive7.47×233,137,9231,741,625,769
rbench/simple/bytecodes7.08×200,907,2191,422,366,465
rbench/simple/emptyFor7.01×193,292,5801,354,477,136
rbench/simple/emptyWhile8.19×193,156,8001,582,358,996
rbench/simple/lapply3.11×256,062,360796,868,179
rbench/simple/lapplyDots3.08×257,958,889793,562,251
rbench/simple/listFor3.39×280,157,740950,345,795
rbench/simple/listWhile3.25×383,876,4331,248,265,260
rbench/simple/matrixFor3.50×218,709,098765,463,071
rbench/simple/profiler-microbenchmark5.93×198,313,8261,175,333,732
rbench/simple/profiler-rsa3.95×279,884,8901,104,508,019
rbench/simple/profiler-shared6.17×1,123,558,3636,936,145,619
rbench/simple/scalarFor6.23×193,494,5131,205,818,363
rbench/simple/scalarWhile8.54×193,364,1091,650,918,675
rbench/simple/superWhile6.84×193,187,3091,322,071,849
rbench/simple/vectorFor6.17×223,199,7531,377,408,702
rbench/simple/vectorWhile6.49×233,808,8941,516,925,907
robigo/apply3.82×526,488,9792,009,732,460
robigo/binarytrees4.05×340,570,3401,379,173,141
robigo/closures1.42×885,819,8851,255,604,183
robigo/connections0.87×2,857,102,0122,472,473,361
robigo/csv1.20×1,279,773,1841,538,878,803
robigo/dataframe2.64×588,118,7021,553,774,970
robigo/fannkuch3.31×608,419,7442,016,403,679
robigo/fib3.04×355,160,5791,080,149,261
robigo/lm1.44×651,856,788936,276,563
robigo/mandelbrot4.34×226,968,792984,131,761
robigo/matrix2.17×650,616,6611,410,934,800
robigo/na-entry-alternation9.51×249,422,8552,371,289,848
robigo/nbody8.71×302,452,1532,633,784,429
robigo/queens2.16×235,632,745508,432,881
robigo/s4-generic1.79×531,047,565950,209,243
robigo/s4-new1.70×562,164,327953,479,547
robigo/s4-portfolio1.87×516,300,462963,126,844
robigo/s4-slot-read2.00×401,561,870803,886,488
robigo/s4-slot-write1.93×436,494,301844,319,652
robigo/s4-valid1.69×567,455,663960,495,162
robigo/sortorder1.19×835,286,973992,747,366
robigo/spectralnorm10.8×245,186,0352,641,629,229
robigo/strings2.29×693,259,8021,589,665,821
robigo/vecarith1.25×4,313,859,2455,409,871,372
robigo/vecops1.69×2,379,515,0264,016,388,127

Corpora at 8a33af5

corpuspassingcasesshare
FastR test snippets (fastr)31,33631,37499.9%
GNU R's regression tests (gnur-tests)365961.0%
Help-page examples (gnur-examples)1,1131,15396.5%
GNU R's demos (gnur-demos)151693.8%
An Introduction to R (r-intro)121392.3%
Pure-R CRAN packages (cran-purer)394195.1%
C API (capi)666897.1%
Conformance scripts (conformance)45446697.4%

Open gaps at 8a33af5

Cases robigo still fails, per corpus with at most a few hundred. A known gap is a conformance script or corpus case with GNU R's recorded output and no ratchet marker yet: CI tracks it without failing on it.

FastR test snippets (fastr): 38 failing
GNU R's regression tests (gnur-tests): 23 failing
Help-page examples (gnur-examples): 40 failing
GNU R's demos (gnur-demos): 1 failing
An Introduction to R (r-intro): 1 failing
Pure-R CRAN packages (cran-purer): 2 failing
C API (capi): 2 failing
Conformance scripts (conformance): 12 failing

Every commit

271 commits
commitdatespeedfastrgnur-testsgnur-examplesgnur-demosr-introcran-purerpackagescapiconformancebuiltins
8a33af5 #491: CI: run only the benchmarks a PR's changed paths can a2026-11-082.74×99.9%61.0%96.5%93.8%92.3%95.1%97.1%97.4%702/760
0d1f098 #495: gc: core collections walk the runtime graph only while2026-11-082.74×99.9%61.0%96.5%93.8%92.3%95.1%97.1%97.4%702/760
a900546 #493: perf(jit): cut scalar-complex Mandelbrot instructions 2026-11-082.74×99.9%61.0%96.5%93.8%92.3%95.1%97.1%97.4%702/760
f57b71c #492: council: spare-cores designs reviewed (#373-#381)2026-11-082.71×99.9%61.0%96.5%93.8%92.3%95.1%97.1%97.4%702/760
3669e86 #494: Spare-cores measurements: loop-compile stalls 8-18% on2026-11-082.71×99.9%61.0%96.5%93.8%92.3%95.1%97.1%97.4%702/760
49bda63 #496: Avoid repeated NA twin copies and close failed-spawn l2026-11-082.71×99.9%61.0%96.5%93.8%92.3%95.1%97.1%97.4%702/760
9b86fc7 #487: Dogfooding: tidyverse loads without natives, smoke tie2026-11-082.71×99.9%61.0%96.5%93.8%92.3%95.1%97.1%97.2%702/760
2a5ff0b #485: perf(jit): remove redundant integer NA checks from nat2026-11-072.71×99.9%61.0%96.5%93.8%92.3%95.1%97.0%97.4%702/760
2fb18b4 #484: package merge train 2: #445, #478, #453, #469, #3982026-11-072.84×99.9%61.0%96.5%93.8%92.3%95.1%93.4%97.0%97.1%702/760
49f2829 #483: ci: remove the self-hosted runners, whose privileged d2026-11-072.83×99.9%61.0%96.5%93.8%92.3%95.1%98.4%96.9%701/760
5495ef2 #300: io: gzcon(), the gzip connection wrapper2026-11-062.83×99.9%61.0%96.5%93.8%92.3%95.1%98.4%97.1%701/760
a0982fc #482: merge train 5: #312, #342, #317, #323, #333, #338, #342026-11-062.83×99.9%61.0%96.4%93.8%92.3%95.1%98.4%97.1%700/760
1f9a03d #297: io: url() connections through libcurl, and file:// thr2026-11-062.51×99.9%61.0%96.4%93.8%92.3%95.1%98.4%97.4%700/760
f964eca #272: conformance(fastr): tracemem reports copies of traced 2026-11-062.51×99.9%61.0%96.4%93.8%92.3%95.1%98.4%97.4%700/760
4835c4b #295: conditions: unhandled errors invoke the abort restart2026-11-062.51×99.9%61.0%96.4%93.8%92.3%95.1%98.4%97.4%700/760
30afc6b #290: linpack: port dtrco, kappa's exact triangular conditio2026-11-062.51×99.9%61.0%96.4%93.8%92.3%95.1%98.4%97.3%700/760
1a8edaa #481: package merge train 1: #465, #458, #470, #4772026-11-062.51×99.9%61.0%96.3%93.8%92.3%95.1%85.9%98.4%97.1%700/760
0c06832 #435: capi: R_new_custom_connection, so curl() connections w2026-11-062.51×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.3%700/760
003bff0 #448: suspendInterrupts(): an interrupt raised from C waits 2026-11-062.51×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.3%700/760
2ec8a12 #473: merge train 3+4: #316, #318, #324, #326, #329, #336, #2026-11-062.51×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.1%700/760
2789dbc #480: ci: fork PRs stay off self-hosted runners even when th2026-11-062.29×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
23db57d #479: ci: run build and corpus jobs on our own Docker runner2026-11-062.29×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
f03f611 #298: interp: in-place hand-off for complex assignment over 2026-11-052.29×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
6802969 #442: gc: one mark over both heaps, so cycles through C and 2026-11-052.29×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.7%700/760
b900075 #463: bridge: convert symbols by identity, not by hashing th2026-11-052.29×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
12bd424 #456: ledger(packages): round 3 preview, 12 of 20 green2026-11-052.29×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
1de9e8f #475: build-natives: retry the R sources download from CRAN 2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
4842ba0 #454: dotcode: .Fortran passes the first string of a charact2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
e0229b2 #436: capi: C keeps one live copy of each value it looks up 2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
2079b4c #461: capi corpus: ggplot2's test-scales segfault is #167's 2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
2f27634 #474: corpora: one GNU R recording file per capi case, so PR2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
9d2ba3d #471: rjit: installed code is what was unserialized as bytec2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.7%700/760
c587fce #467: envir: active bindings are called as GNU R calls them 2026-11-052.30×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
fe27484 #451: Promise constant arguments where GNU R's AST interpret2026-11-052.30×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
23c6015 #462: bridge: hash address-keyed tables with multiply-and-fo2026-11-052.30×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%700/760
853a2a4 #425: compiler: cmpfun() and compile() work in the default b2026-11-052.30×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.7%700/760
d493028 #444: bridge: an object's attributes come back only when C w2026-11-052.30×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.7%694/760
71ee616 #427: conditions: a missing argument read by compiled code i2026-11-052.30×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.7%694/760
468c9d0 #452: interp: sys.call()/sys.calls() report statement srcref2026-11-052.31×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.7%694/760
8e66785 #447: conditions: C errors and warnings reach R handlers thr2026-11-052.31×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
e8110a5 #440: capi: plotmath's Greek letters render as Greek in SVG:2026-11-052.31×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
64e0f22 #446: capi: a native routine's result outside the heap is an2026-11-052.31×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
f16e4dc #449: attributes: a call's argument tags are not its attribu2026-11-052.31×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
1ff0177 #424: io: one method per GNU R Rconn pointer, so a new conne2026-11-052.31×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
7a0d27b #439: dotcode: .C/.Fortran refuse NA and non-finite argument2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
3d99bae #441: regular expressions: GNU R's own TRE for the construct2026-11-052.33×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
05ffd4c #429: capi fixture: keep the cloned value protected across d2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
57e9bf8 #434: ledger(packages): round 2, 11 of 20 green2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
f74ea99 #428: build-natives: reconfigure once per newly installed pa2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
4c19fc8 #430: capi: a `...` C binds keeps its identity through gc(),2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
88bef9b #426: repl: no prompt under --no-echo and the prompt option 2026-11-052.28×99.9%59.3%96.3%93.8%92.3%95.1%100.0%97.9%694/760
9d9dff7 #421: capi: export Rstrdup and Rf_utf8ToLatin1AdobeSymbol2ut2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
d7ecc43 #4172026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
802f242 #420: build-natives: configure again once pango is installed2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
e4ab973 #418: ledger: package campaign round 1 — 9 of 20 green, 84.52026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.9%694/760
4b43af4 #408: vm: the dispatch loop keeps only hot paths inline, so 2026-11-052.28×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
dfc5412 #407: rjit: local() in a loop works with the VM off, so the 2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
8dc0ff6 #412: bind: lengths() of a plain list reads its elements in 2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
078fdc4 #404: capi corpus: envattr_eval pins that R code C evaluates2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
47ccdf6 #360: io: stderr() follows sink(type = "message"), so captur2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
249212e #394: is.nan: character and raw vectors are FALSE, not an er2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.3%694/760
6abc95f #411: interp: closure returns skip run_on_exit when there is2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
67cc57e #3922026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
e0f608c #402: core: collect the C heap when GNU R would (R_NSize/R_V2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
6058221 #395: grDevices: build and load GNU R's cairo module, so png2026-11-052.27×99.9%61.0%96.3%93.8%92.3%95.1%100.0%97.6%694/760
6222a23 #253: strings: port adist's full path so utils::adist works2026-11-052.25×99.9%61.0%96.3%93.8%92.3%92.7%100.0%97.6%694/760
c0d96b7 #3452026-11-042.25×99.8%61.0%96.3%93.8%92.3%92.7%100.0%97.6%693/760
ce9c115 #369: packages: httr goes green once skips its own code alwa2026-11-042.25×99.8%61.0%96.3%93.8%92.3%92.7%100.0%97.6%693/760
8f64679 #3582026-11-042.25×99.8%61.0%96.3%93.8%92.3%92.7%100.0%97.6%693/760
6e45e52 #361: capi: R_Busy is a no-op as in GNU R, so bit64's sorts 2026-11-042.25×99.8%61.0%96.3%93.8%92.3%92.7%100.0%97.3%693/760
3a8cc0b #356: vm: the simple-.Internal memos hold callers weakly, so2026-11-042.25×99.8%59.3%96.3%93.8%92.3%92.7%100.0%97.6%693/760
d5a4c83 #346: packages: curl's tests run against a pinned local http2026-11-042.25×99.8%61.0%96.3%93.8%92.3%92.7%100.0%97.3%693/760
93d45d4 #363: dispatch: S3 methods of primitives run in GNU R's disp2026-11-042.25×99.8%61.0%96.3%93.8%92.3%92.7%100.0%97.3%693/760
6206e55 #359: eval: run on.exit code registered in eval's own contex2026-11-042.25×99.8%61.0%96.3%93.8%92.3%92.7%100.0%97.3%693/760
eac45a9 #348: dispatch: internal generics find their S4 methods, tur2026-11-042.25×99.8%61.0%96.3%93.8%92.3%90.2%100.0%97.3%693/760
dbe74cd #339: dotcode: .External2 keeps its routine's visibility, so2026-11-042.25×99.8%61.0%96.3%93.8%92.3%90.2%100.0%97.5%693/760
1e28554 #334: jit: nested arithmetic arguments run natively, binaryt2026-11-042.25×99.8%61.0%96.3%93.8%92.3%90.2%100.0%97.5%693/760
b014f33 #314: %*%: vector times matrix 3x faster, spectralnorm_alt a2026-11-042.24×99.8%61.0%96.3%93.8%92.3%90.2%100.0%97.5%693/760
bf7332e #301: packages: score the top 20 CRAN packages' test suites 2026-11-042.22×99.8%61.0%96.3%93.8%92.3%90.2%100.0%97.5%693/760
5ce8d76 #309: memory: gctorture() really collects at every allocatio2026-11-042.22×99.8%61.0%96.2%93.8%92.3%90.2%100.0%97.5%693/760
e7de574 #308: dispatch: Ops asks chooseOpsMethod() on conflicting me2026-11-042.22×99.8%61.0%96.3%93.8%92.3%90.2%64.3%100.0%97.3%693/760
c2d0108 #307: capi: port R_check_class_etc and R_data_class so Matri2026-11-042.22×99.8%61.0%96.2%93.8%92.3%90.2%100.0%97.5%693/760
884aa54 #287: io: writeBin/readBin size 16 is C's long double2026-11-032.22×99.8%61.0%96.2%93.8%92.3%90.2%100.0%97.5%693/760
e1d893a #289: conformance(fastr): is.* predicates and time limits2026-11-032.22×99.8%61.0%96.1%93.8%92.3%90.2%100.0%97.2%693/760
732a179 #291: internet: libcurlVersion over the dlopen'd libcurl2026-11-032.22×99.8%61.0%96.1%93.8%92.3%90.2%100.0%97.5%692/760
a7cca4f #273: envir: env.profile over the hash-table model2026-11-032.22×99.8%61.0%96.0%93.8%92.3%90.2%100.0%97.5%691/760
3f7429b #265: capi: C-assembled promises bind as runtime promises2026-11-032.15×99.8%61.0%95.9%93.8%92.3%90.2%100.0%97.8%691/760
4fa3579 #271: bind: deparse.level=2 tags use deparse1line's 10-byte 2026-11-032.15×99.8%61.0%95.9%93.8%92.3%90.2%100.0%97.8%691/760
7c7f8b2 #275: conformance(fastr): envir/diag argument validation and2026-11-032.15×99.8%61.0%95.8%93.8%92.3%90.2%100.0%97.7%691/760
0ec42f9 #246: conformance: honour options(OutDec=) in as.character()2026-11-032.15×99.8%61.0%95.8%93.8%92.3%90.2%100.0%97.7%691/760
8c1b28a #270: scripts/rivals.py: measure robigo against every other 2026-11-032.15×99.8%61.0%95.8%93.8%92.3%90.2%100.0%98.0%691/760
3920a71 #274: jit: run hot closures as native code, fib(27) 53 ms ->2026-11-032.17×99.8%61.0%95.8%93.8%92.3%90.2%100.0%98.0%691/760
ac9d0c3 #267: serialize: write ASCII streams to connections (seriali2026-11-032.09×99.8%61.0%95.8%93.8%92.3%90.2%100.0%98.0%691/760
d15362e #269: aperm: a non-vector perm raises R's LENGTH error inste2026-11-032.09×99.8%61.0%95.7%93.8%92.3%90.2%100.0%98.0%691/760
10182a7 #264: conformance(fastr): runtime installs reject the empty 2026-11-032.09×99.8%61.0%95.7%93.8%92.3%90.2%100.0%98.0%691/760
52a4edc #266: jit: closures created by installed code are bytecode; 2026-11-032.09×99.8%61.0%95.7%93.8%92.3%90.2%100.0%98.0%691/760
63d68b2 #263: conformance(fastr): terms() takes a NULL response; ape2026-11-022.09×99.8%61.0%95.5%93.8%92.3%90.2%100.0%98.0%691/760
de202cd #262: CI: large PRs get a full OpenCodeReview instead of a 32026-11-022.09×99.8%61.0%95.5%93.8%92.3%90.2%100.0%98.0%691/760
9714ecc #261: conformance(fastr): matrix column labels use the escap2026-11-022.09×99.8%61.0%95.5%93.8%92.3%90.2%100.0%98.0%691/760
22d63fb #258: perf(vm): nested pure-call inlining (fib -51%)2026-11-022.09×99.8%61.0%95.5%93.8%92.3%90.2%100.0%98.0%691/760
7ec6b3b #260: conformance(fastr): keep pairlist attributes when prin2026-11-022.08×99.8%61.0%95.5%93.8%92.3%90.2%100.0%98.0%691/760
d05db01 #249: connections: PSOCK clusters work: sockets, and unseria2026-11-022.08×99.8%61.0%95.5%93.8%92.3%90.2%100.0%98.0%691/760
3cb1fac #257: io: memCompress/memDecompress (connections.c's in-memo2026-11-022.08×99.7%61.0%95.5%93.8%92.3%90.2%100.0%98.0%686/760
ab05731 #256: io: bzfile connections (libbz2), and gzfile/file magic2026-11-022.08×99.7%61.0%95.5%93.8%92.3%90.2%100.0%98.0%684/760
7ba97f8 #228: build(deps): bump fancy-regex from 0.16.2 to 0.20.02026-11-022.08×99.7%61.0%95.4%93.8%92.3%90.2%100.0%97.9%684/760
015a18d #226: build(deps): bump pprof from 0.14.1 to 0.15.02026-11-022.08×99.7%61.0%95.4%93.8%92.3%90.2%100.0%97.9%684/760
e8afe19 #242: namespace: tibbles print again: importIntoEnv keeps ac2026-11-022.08×99.7%61.0%95.4%93.8%92.3%90.2%100.0%97.9%684/760
a38821d #252: conformance: trace()/.primTrace, and S4 rep keeps its 2026-11-022.08×99.7%61.0%95.4%93.8%92.3%90.2%100.0%97.9%684/760
750fa6d #229: build(deps): bump the actions group across 1 directory2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%97.9%684/760
7ddaeb7 #255: ratchet: mark calls-promise-wrapper{,-force} passing2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%97.9%684/760
963fc9c #222: vm: promise thunks call simple-.Internal wrappers thro2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%97.9%684/760
e9046bd #250: unsafe: fix the memory bugs an audit found, and deny u2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%97.9%684/760
505d3a5 #238: capi: rlang errors print again: keep env attributes an2026-11-022.08×99.7%59.3%95.1%93.8%92.3%90.2%100.0%97.9%684/760
63b7d64 #247: iconv: cli's ASCII output works: the C library's conve2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%97.9%684/760
d570f67 #231: capi: R_NewEnv with a NULL enclosure and FRAME/ENCLOS 2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%97.9%684/760
1055fa6 #251: conformance(fastr): port qr_coef_cmplx from Lapack.c2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%97.9%684/760
b8de1d3 #244: conformance(gnur-tests): dispatch as.double, as.call a2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%98.2%683/760
5eb76b2 #248: conformance(fastr): open gzipped files through the gz 2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%98.2%683/760
8b3894e #243: conformance(fastr): port mget() argument validation an2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%98.5%683/760
466d375 #245: conformance: Recall promises, NA attribute names, as.d2026-11-022.08×99.7%61.0%95.1%93.8%92.3%90.2%100.0%98.5%683/760
b73b21a #241: natives: a fresh checkout builds grid, parallel and fr2026-11-022.08×99.7%59.3%94.6%93.8%92.3%90.2%100.0%98.5%683/760
1b8fbb8 #240: conformance(gnur-tests): ls(sorted=) orders names with2026-11-022.08×99.7%59.3%94.6%93.8%92.3%90.2%100.0%98.5%683/760
21de310 #239: conformance(fastr): align active bindings, slot names 2026-11-022.08×99.7%57.6%94.5%93.8%84.6%90.2%100.0%98.5%683/760
2c5ac38 #235: sprintf: tidy the %d fast path after #212's review2026-11-022.08×99.6%55.9%94.5%93.8%84.6%90.2%100.0%98.5%683/760
3399fe4 #215: tests: track the CRAN-gate gaps found on the popular p2026-11-022.08×99.6%57.6%94.5%93.8%84.6%90.2%100.0%98.5%683/760
5922aeb #159: track(conformance-fastr): align parent.env builtins wi2026-11-022.08×99.6%57.6%94.5%93.8%84.6%90.2%100.0%99.4%683/760
16427cc #212: perf(sort,sprintf): sorted-input fast paths in the rad2026-11-022.08×99.6%57.6%94.5%93.8%84.6%90.2%100.0%99.4%683/760
073a8a2 #230: nightly: make the binaries build everywhere, and 14% f2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%99.4%683/760
14c187d #227: lint: run clippy in CI, and fix what it finds2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%99.4%683/760
18545b2 #225: fix: tryCatch catches huge allocations, and bad input 2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%99.4%683/760
686a187 #221: build-natives: self-provision libcurl when configure w2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
a437bef #223: ci: PRs stop waiting on release-mode test builds, and 2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
d75a565 #216: fix: stop .Call corrupting running R code, and remove 2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
c4e71be #211: errors: run options(error=) with the stack live, and s2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
4956dbc #209: cran-gate: stop a hung package from blocking CI for ho2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
01ca454 #210: docs: define when Arrow buffers can be zero-copy, and 2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
954a807 #208: interp: honor options(expressions=), and make stack ov2026-11-022.10×99.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
fb87481 #207: progress page: record the conformance scripts and list2026-11-022.09×99.6%57.6%94.5%93.8%84.6%90.2%100.0%100.0%683/760
bd4cddb #205: interp: return with no target context raises the catch2026-11-022.09×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
292ebb5 #206: perf(vm): compile constant and symbol closure bodies; 2026-11-022.09×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
46fc129 #204: parsing: parse(text=) coerces its argument like coerce2026-11-022.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
675cc1c #196: envir: topenv honors matchThisEnv (envir.c:topenv)2026-11-012.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
7a89cd0 #195: serialize: force lazy-load database promises in their 2026-11-012.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
21d63d4 #187: docs: bayesfam dogfooding ledger2026-11-012.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
776872a #175: cran: gate harness for CRAN packages with compiled cod2026-11-012.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
ca47129 #176: conformance: deparse non-finite complex as complex(rea2026-11-012.10×99.6%57.6%94.5%93.8%84.6%90.2%100.0%683/760
0506bd4 #179: lapack: port La_qr, qr_coef_real and qr_qy_real (Lapac2026-11-012.10×99.6%55.9%94.5%93.8%84.6%90.2%100.0%683/760
fb002dc #183: perf(apply): direct elements and inline FUN in mapply2026-11-012.10×99.6%55.9%94.4%93.8%84.6%90.2%100.0%680/760
2943450 #188: conditions: honor show.error.messages when printing un2026-11-012.10×99.6%55.9%94.4%93.8%84.6%90.2%100.0%680/760
4582066 #184: native: tell which native build is missing when a rout2026-11-012.10×99.6%55.9%94.4%93.8%84.6%90.2%100.0%680/760
9a54ca5 #185: capi: bridge C-assembled closures (from_sexp of raw CL2026-11-012.10×99.6%55.9%94.4%93.8%84.6%90.2%100.0%680/760
c2db7c8 sysutils: port .Internal(Sys.umask) and warn on attributes o2026-11-012.10×99.6%55.9%94.3%93.8%84.6%90.2%100.0%680/760
f2f04bc conformance(fastr): report parse errors with GNU R's three R2026-11-012.10×99.6%55.9%94.1%93.8%84.6%90.2%100.0%679/760
6b917a7 #177: capi: fix numericDeriv's zero gradient by keeping C's 2026-11-012.10×99.5%55.9%94.1%93.8%84.6%90.2%100.0%679/760
e6fe408 conformance: print deferred warnings with R's 'In addition:'2026-11-012.10×99.5%55.9%92.5%93.8%76.9%90.2%100.0%679/760
532eef0 #172: task: port top-level task callbacks (main.c)2026-11-012.10×99.5%54.2%92.5%93.8%76.9%90.2%100.0%679/760
6c89483 capi: implement substitute, qsort, streams and envir predica2026-11-012.10×99.5%54.2%92.2%93.8%76.9%90.2%100.0%679/760
10654ab #169: grDevices colors()/col2rgb(); capi pairlist coerceVect2026-11-012.10×99.5%52.5%92.2%93.8%76.9%90.2%100.0%679/760
7516f17 #171: capi corpus: a promise case for R_PromiseExpr2026-11-012.10×99.5%54.2%92.2%93.8%76.9%90.2%100.0%679/760
cd51fcf sysutils: port .Internal(file.show()) and .Internal(file.sym2026-11-012.10×99.5%54.2%92.2%93.8%76.9%90.2%100.0%679/760
7b61f07 conformance: is.na() on expressions warns and returns xlengt2026-11-012.10×99.5%54.2%91.7%93.8%69.2%90.2%100.0%677/760
5fe0672 perf(apply): unbox inline closure calls and fast-path scalar2026-11-012.10×99.5%54.2%91.7%87.5%69.2%90.2%100.0%677/760
6849338 #156: capi: port R_IsPackageEnv and R_EnvironmentIsLocked2026-11-012.10×99.5%54.2%91.7%87.5%69.2%90.2%100.0%677/760
9a4d858 conformance: implement pcre_config, out-of-context nargs, an2026-11-012.10×99.5%52.5%91.7%87.5%69.2%90.2%100.0%677/760
29f8d4a conformance(fastr): match GNU R inherits() argument validati2026-11-012.09×99.5%54.2%91.5%87.5%69.2%87.8%100.0%676/760
674f277 capi: implement R_mkClosure/R_PromiseExpr, preserve CHARSXP,2026-11-012.09×99.5%54.2%91.5%87.5%69.2%87.8%100.0%676/760
0b48677 conformance(fastr): align do_vector argument checking and mo2026-11-012.09×99.5%54.2%91.5%87.5%69.2%87.8%90.9%676/760
f523d79 #154: base: port small missing internals and their error pat2026-10-312.09×99.5%54.2%91.5%87.5%69.2%87.8%90.9%676/760
7eb4e44 #153: cli: match R's shutdown order and stop TLS destructor 2026-10-312.09×99.4%54.2%91.4%87.5%69.2%87.8%90.9%675/760
2300ec5 #127: perf: benchmark hill-climb round 1 (hunt biggest absol2026-10-312.09×99.4%54.2%91.4%87.5%69.2%87.8%90.9%675/760
55befe4 #118: Nightly releases, crates.io groundwork, install/usage 2026-10-312.03×99.4%54.2%91.4%87.5%69.2%87.8%90.9%675/760
1511a11 #152: lang: returnValue() reports the pending return value i2026-10-312.03×99.4%54.2%91.4%87.5%69.2%87.8%90.9%675/760
59deee1 #150: base: bitwise type rules, all.names counting, length<-2026-10-312.03×99.4%54.2%91.4%87.5%69.2%87.8%90.9%675/760
b35ba27 #151: perf: measure like-for-like at source and re-pair only2026-10-312.03×99.3%54.2%91.4%87.5%69.2%87.8%90.9%675/760
ebbbd21 #142: perf: cache GNU R oracle output in perf-main to measur2026-10-312.24×99.3%54.2%91.4%87.5%69.2%87.8%90.9%675/760
13fda5c #141: complex: implement polyroot and make Re/Im/Mod/Arg/Con2026-10-312.24×99.3%54.2%91.4%87.5%69.2%87.8%90.9%675/760
10e1a12 #131: ci: pin HOME to the euid home so rustup can install2026-10-312.24×99.3%52.5%90.6%87.5%69.2%87.8%90.9%675/760
8c77948 #130: vm: unboxed scalar promises and generalized compiled-w2026-10-312.24×99.3%52.5%90.6%87.5%69.2%87.8%90.9%675/760
8cd818a #129: io, serialize, native: buffer ConnKind::File writes an2026-10-302.23×99.3%52.5%90.6%87.5%69.2%87.8%90.9%675/760
0abc3e1 #128: methods: implement guarded VM slot-read instruction2026-10-302.22×99.3%52.5%90.6%87.5%69.2%87.8%90.9%675/760
ff75903 #126: Port SETCAR/SETCDR/SET_TAG shared cons-cell mutation2026-10-302.22×99.3%52.5%90.6%87.5%69.2%87.8%90.9%675/760
c3bb38a #124: Connection writes skip the vfprintf round-trip for lit2026-10-302.22×99.3%52.5%90.6%87.5%69.2%87.8%90.5%675/760
2c46ca3 #125: bytecode: wire putconst in-place mutation, cmpfun layo2026-10-302.22×99.3%52.5%90.6%87.5%69.2%87.8%90.5%675/760
fc9f7e1 #123: Match GNU R in 12 orphaned data cases2026-10-302.22×99.3%52.5%90.6%87.5%69.2%87.8%90.5%675/760
c937758 #122: Port SET_VECTOR_ELT shared-list mutation2026-10-302.22×99.2%50.8%90.6%87.5%69.2%87.8%90.5%675/760
d075864 #121: bytecode: putconst follow-up, cmpfun layout fixtures, 2026-10-302.22×99.2%52.5%90.6%87.5%69.2%87.8%90.5%675/760
17dafc3 #120: Read and write compiled R files with exact ASCII and X2026-10-302.22×99.2%52.5%90.6%87.5%69.2%87.8%90.5%675/760
a32c562 #119: library(stats): skip the discarded bytecode instructio2026-10-302.22×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
758efb7 #108: Direct connection writes and general simple-internal i2026-10-302.21×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
f215c4c #105: Construct GNU R bytecode and compiled closures through2026-10-302.19×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
2ac8f81 #100: Preserve GNU bytecode behind an opt-in fidelity featur2026-10-302.19×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
a142ca6 #117: Align warmed @ slot reads with GNU R and ratchet 21/212026-10-302.19×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
ef49317 #116: Reclaim environment cycles and fix enc2 string marks2026-10-302.19×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
0bee889 #115: Constrain S4 metadata invalidation before caching2026-10-302.20×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
83e58b9 #114: Cut S4 dispatch instructions by 2.1%2026-10-302.20×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
5bff0ca #112: Parse ratchet: one marker file per source2026-10-302.20×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
b5c3373 #113: Activate the FastR methods default profile2026-10-302.20×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
ff78657 #111: Conflict-free ratchets: one marker file per case2026-10-302.20×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
b7ee268 #98: Run environment finalizers across cycles and process ex2026-10-302.20×99.2%52.5%90.6%87.5%69.2%87.8%90.5%673/760
1a591ff #106: Make eigen, SVD and pivoted Cholesky work through syst2026-10-302.20×99.2%52.5%90.5%87.5%69.2%87.8%90.5%673/760
17768b5 #110: Mark octal/hex escaped string literals native like GNU2026-10-302.21×99.1%50.8%88.7%87.5%69.2%87.8%90.5%665/760
ec88bd1 #107: Prepare FastR methods defaults with an isolated oracle2026-10-302.21×99.1%49.2%88.7%87.5%69.2%87.8%90.5%665/760
532be45 #104: Preserve substitute dots cells without growing ordinar2026-10-302.21×99.1%50.8%88.7%87.5%69.2%87.8%90.5%665/760
eb7a7ae #103: Match base bytecode is.vector argument contexts2026-10-302.21×99.1%50.8%88.7%87.5%69.2%87.8%90.5%665/760
805e5fb #71: Attach methods in GNU R corpus suites2026-10-302.21×99.1%50.8%88.7%87.5%69.2%87.8%90.5%665/760
d1c95c5 #99: Build complete startup caches and confirm perf regressi2026-10-302.21×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
d81d29c #102: Reduce native CSV formatting instructions by 8.5%2026-10-302.21×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
fd618f5 #92: Reduce startup instructions and flat-cache memory use2026-10-302.21×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
fb99c0b #101: Preserve native writes through the SEXP bridge2026-10-302.19×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
1b4670a #94: Match GNU R's compiled setter error calls2026-10-302.19×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
f5dae40 #97: Cut S4 generic dispatch instructions by 3.5%2026-10-302.19×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
bb23b54 #96: Preserve parser reductions for getParseData2026-10-302.21×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
d2ce510 #95: Preserve original bytes and encoding marks through icon2026-10-302.21×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
df3d535 #84: Preserve byte strings across the runtime and native bri2026-10-302.21×99.1%52.5%88.6%87.5%69.2%87.8%90.5%665/760
1074f6c Progress charts: speed and compatibility over time in the RE2026-10-302.20×99.0%50.8%88.3%81.2%69.2%87.8%90.5%665/760
4754027 #93: Preserve closure source references and original source 2026-10-302.20×99.0%52.5%88.3%81.2%69.2%87.8%90.5%665/760
f668f60 #90: Cut VM inline-call loop instructions 5%2026-10-292.20×99.0%50.8%88.3%81.2%69.2%87.8%90.5%665/760
29cac51 #91: parse: retain source references through expression subs2026-10-292.20×99.0%50.8%88.3%81.2%69.2%87.8%90.5%665/760
d63d043 #60: Cut naïve mandelbrot instructions 29% with exact VM ari2026-10-292.20×99.0%47.5%87.7%68.8%69.2%87.8%90.5%665/760
dbf6754 #89: Match GNU R closure printing and parse diagnostics2026-10-292.19×99.0%47.5%87.7%68.8%69.2%87.8%90.5%665/760
e25e6cc #86: Match GNU R NaN payloads in VM scalar arithmetic2026-10-292.19×99.0%47.5%86.6%68.8%61.5%82.9%90.5%665/760
24a5b8e #85: Match GNU R tracing state for repeated calls and symbol2026-10-292.19×99.0%47.5%86.6%68.8%61.5%82.9%90.5%665/760
3d928e1 #88: startup-perf round 5: re-baseline + serialize reader fa2026-10-292.19×99.0%47.5%86.6%68.8%61.5%82.9%90.5%665/760
bda4730 #87: system(intern=TRUE): inherit child stderr (the reg-pack2026-10-291.95×99.0%47.5%86.6%68.8%61.5%82.9%90.5%665/760
74e8c73 #83: conformance round 3: identical row.names, malformed fac2026-10-291.95×98.9%47.5%86.6%68.8%61.5%82.9%90.5%665/760
03600ed #82: Startup: serve lazy-load databases from a flat pre-infl2026-10-291.95×98.9%44.1%86.5%68.8%61.5%82.9%90.5%665/760
677edf3 #80: JIT: cut matrixFor instructions by 58% with native matr2026-10-291.95×98.9%44.1%86.5%68.8%61.5%82.9%90.5%665/760
4e56951 #77: core: run GNU R utils natives alongside the graphics en2026-10-291.92×98.9%44.1%86.5%68.8%61.5%82.9%90.5%665/760
098bd95 #70: ci: run corpora and perf with GNU R's stats natives bui2026-10-291.95×98.8%39.0%57.8%12.5%30.8%78.0%90.5%665/760
5aea011 #69: core: GNU R's graphics engine in libR — base graphics a2026-10-291.96×97.9%35.6%54.0%12.5%30.8%78.0%90.5%665/760
7952a6d #78: stats natives load for +0.55M instructions instead of +2026-10-291.96×97.9%35.6%54.0%12.5%30.8%78.0%90.5%664/760
1f1134e #81: perf: reduce release instruction counts with thin LTO2026-10-291.88×97.9%35.6%54.0%12.5%30.8%78.0%90.5%664/760
7ff8a14 #76: ledger: hand three graphics-example failures to sweep-d2026-10-291.80×97.9%35.6%54.0%12.5%30.8%78.0%90.5%664/760
7663033 #68: cbind/rbind: split language objects into components as 2026-10-291.80×97.9%35.6%54.0%12.5%30.8%78.0%90.5%664/760
1d63aef #75: Objects C code keeps in statics survive across calls (R2026-10-291.80×97.9%35.6%53.9%12.5%30.8%78.0%90.5%664/760
45b4dd2 #47: complex: gcc-exact NaN payload bits for +, -, * and the2026-10-281.73×97.8%35.6%52.5%12.5%30.8%75.0%664/760
750a904 #52: methods: library(methods), setClass/new/setGeneric/setM2026-10-281.73×96.8%35.6%52.5%12.5%30.8%75.0%664/760
13e6038 #43: Fix NA and NaN propagation in complex matrix products2026-10-281.74×96.6%33.9%48.5%12.5%30.8%75.0%663/760
32c6002 #53: core: base-package natives from GNU R's sources by defa2026-10-281.74×96.6%33.9%48.5%12.5%30.8%75.0%663/760
d8a097f #37: core: G2 continued — medium objects, isolates, fork-saf2026-10-281.74×96.6%33.9%48.5%12.5%30.8%75.0%663/760
9960a44 #49: perf-vm: for (j in seq(length = n)) as a native range (2026-10-281.80×96.5%33.9%47.3%12.5%30.8%70.0%656/760
b6fc7c8 #46: Restore main's performance after #9/#29 (dataframe −48%2026-10-281.76×96.5%33.9%47.3%12.5%30.8%70.0%656/760
7d8c589 #48: perf-vm: x[[i]] <<- v in place (nbody_naive 1.32x -> 0.2026-10-281.70×96.5%33.9%47.3%12.5%30.8%70.0%656/760
414ae44 #45: perf-vm: <<- and x[[i]] <- v in compiled loops (geomean2026-10-281.68×96.5%33.9%47.3%12.5%30.8%70.0%656/760
1696902 #44: perf-vm: unboxed returns, reused argument vectors (fib 2026-10-281.53×96.5%33.9%47.3%12.5%30.8%70.0%656/760
963b3cf #32: perf-vm: caller-forced promises, %*% row vector (geomea2026-10-281.50×96.5%33.9%47.3%12.5%30.8%70.0%656/760
0e5d94e #40: Measure pure-R package scripts with a pinned CRAN corpu2026-10-281.49×96.3%33.9%47.3%12.5%30.8%70.0%656/760
ad59f6f #39: capi: load the libR.so stub from memory, closing a /tmp2026-10-281.49×96.3%33.9%47.3%12.5%30.8%70.0%656/760
abb8355 #38: CI: core and C API tests under gctorture2026-10-281.49×96.3%33.9%47.3%12.5%30.8%70.0%656/760
37a5f96 #28: core: robigo-core heap and libR.so — packages' compiled2026-10-281.55×94.6%30.5%45.3%70.0%647/760
1a78d2e #34: parser: 2x parse throughput and a proper parse_console 2026-10-281.56×94.6%30.5%45.3%0.0%647/760
49c071a #30: Preserve names attributes and global condition handlers2026-10-281.47×94.6%30.5%45.3%0.0%647/760
fa86c67 #33: Make zones.R hermetic with vendored zoneinfo via TZDIR2026-10-281.45×94.6%30.5%45.3%0.0%647/760
bf98504 #27: Preserve class attributes and supplied language argumen2026-10-281.45×94.6%30.5%45.3%0.0%647/760
5b0b240 #23: perf-vm: x[[i, j]] in the VM, index promises forced in 2026-10-281.44×94.5%30.5%44.6%0.0%647/760
007110b #26: conformance-strings: agrep/agrepl, grepl quantifiers2026-10-281.37×94.5%30.5%44.6%0.0%647/760
d2158bd #24: print/format/deparse: 390 -> 436 of 437 fastr cases2026-10-281.37×94.4%30.5%44.5%0.0%645/760
8f5b7a7 #22: Match GNU R extraction, replacement, and array validati2026-10-281.37×94.0%30.5%44.1%0.0%644/760
e8e2d31 #19: Match GNU R environment lookup semantics2026-10-281.37×94.0%30.5%44.1%0.0%644/760
a4c7c3e #17: distributions: non-central d/p/q, Tukey, Wilcoxon/signr2026-10-281.36×93.0%30.5%43.9%0.0%643/760
0adb3db #16: Make reduction precision selectable per interpreter2026-10-281.36×91.6%27.1%43.5%0.0%643/760
10d0a81 docs/briefs: ready-to-paste agent briefs for the free tracks2026-10-281.37×91.6%28.8%43.6%0.0%643/760
7bb554c #15: startup: lazy-load databases, save/load on connections,2026-10-271.37×91.6%28.8%43.6%0.0%643/760
7ee7200 #13: Design: robigo-core uses the mark-region heap (memory b2026-10-271.38×90.5%28.8%37.8%0.0%628/760
d998e0b #12: memory: the locality study settles the bake-off — mark-2026-10-271.38×90.5%28.8%37.8%0.0%628/760
5e3b03a #8: parser: byte-exact with GNU R — 100% on a 33k-source par2026-10-271.38×90.5%28.8%37.8%0.0%628/760
5794f92 #10: corpus.py: keep R's temp files inside each case directo2026-10-271.40×90.5%27.1%37.7%0.0%628/760
9633f1e #7: memory bake-off: mark-region gc + conservative stack win2026-10-271.40×90.5%27.1%37.7%0.0%628/760
135ed54 #6: cli: run files as R's console, with the echo transcript2026-10-271.40×90.5%27.1%37.7%0.0%628/760
2166f66 #2: capi: the libR census and a compiled C API corpus (G2's 2026-10-271.40×90.3%0.0%0.0%0.0%628/760
28f108d robigo: a GNU R 4.5 runtime in Rust, with verification infra2026-10-271.40×90.3%0.0%0.0%628/760