From d55a2b5ca02cb44fa363b6d648c3ca4b6503a6b5 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 13:57:40 +0900 Subject: [PATCH 01/13] ci: rebuild stringfish from source on mac/windows (RcppParallel oneTBB ABI skew) --- .github/workflows/R-CMD-check.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 4705d5a..0f500b4 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -49,6 +49,13 @@ jobs: any::testthat needs: check + # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's + # oneTBB update (Symbol not found: tbb::internal::NFS_Allocate). Rebuild from + # source so it links the installed RcppParallel. Drop once upstream binaries sync. + - name: Rebuild stringfish from source (RcppParallel ABI skew) + if: runner.os != 'Linux' + run: Rscript -e 'install.packages("stringfish", type = "source")' + - name: Run Zh formula regression tests run: | Rscript -e 'install.packages(".", repos = NULL, type = "source")' From 31d8d8b24e3b76de645fe73feb407c19b4aa9ff0 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:29:58 +0900 Subject: [PATCH 02/13] ci: rebuild stringfish on all platforms (Linux hit too) --- .github/workflows/R-CMD-check.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 0f500b4..04cb28e 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -50,10 +50,9 @@ jobs: needs: check # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's - # oneTBB update (Symbol not found: tbb::internal::NFS_Allocate). Rebuild from + # oneTBB update (undefined tbb::internal symbols, all platforms). Rebuild from # source so it links the installed RcppParallel. Drop once upstream binaries sync. - name: Rebuild stringfish from source (RcppParallel ABI skew) - if: runner.os != 'Linux' run: Rscript -e 'install.packages("stringfish", type = "source")' - name: Run Zh formula regression tests From e7b7f3d6e75cf046df53d0be62df98e01872977c Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:30:00 +0900 Subject: [PATCH 03/13] ci: rebuild stringfish before install in test-fast --- .github/workflows/test-fast.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test-fast.yaml b/.github/workflows/test-fast.yaml index fa70edf..c29c2ee 100644 --- a/.github/workflows/test-fast.yaml +++ b/.github/workflows/test-fast.yaml @@ -25,6 +25,11 @@ jobs: extra-packages: any::testthat needs: check + # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's + # oneTBB update. Rebuild from source; drop once upstream binaries sync. + - name: Rebuild stringfish from source (RcppParallel ABI skew) + run: Rscript -e 'install.packages("stringfish", type = "source")' + - name: Install kaefa package for fast tests run: R CMD INSTALL . From 21755e059e7a5ee05aabf18e664aa92d442b67d5 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:30:02 +0900 Subject: [PATCH 04/13] ci: rebuild stringfish before install in test-suite --- .github/workflows/test-suite.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test-suite.yaml b/.github/workflows/test-suite.yaml index d447513..8e22232 100644 --- a/.github/workflows/test-suite.yaml +++ b/.github/workflows/test-suite.yaml @@ -41,6 +41,11 @@ jobs: extra-packages: any::testthat needs: check + # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's + # oneTBB update. Rebuild from source; drop once upstream binaries sync. + - name: Rebuild stringfish from source (RcppParallel ABI skew) + run: Rscript -e 'install.packages("stringfish", type = "source")' + - name: Install kaefa package run: R CMD INSTALL . From 0446de9d61ae3fdfa96c88a0715509ba642cb5a1 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:35:53 +0900 Subject: [PATCH 05/13] ci: rebuild all RcppParallel-linked packages (qs2 hit the same oneTBB skew) --- .github/workflows/R-CMD-check.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 04cb28e..4a1f7ed 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -49,11 +49,12 @@ jobs: any::testthat needs: check - # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's - # oneTBB update (undefined tbb::internal symbols, all platforms). Rebuild from - # source so it links the installed RcppParallel. Drop once upstream binaries sync. - - name: Rebuild stringfish from source (RcppParallel ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + # ponytail: CRAN/RSPM binary skew — prebuilt binaries (stringfish, qs2, ...) lag + # RcppParallel's oneTBB update (undefined tbb::internal / tbb::task symbols). + # Rebuild everything LinkingTo RcppParallel from source so it links the installed + # copy. Drop once upstream binaries re-sync. + - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) + run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' - name: Run Zh formula regression tests run: | From 648e948057a4fb0dc574804c5f24f941f827f1af Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:35:55 +0900 Subject: [PATCH 06/13] ci: rebuild all RcppParallel-linked packages (qs2 hit the same oneTBB skew) --- .github/workflows/test-fast.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-fast.yaml b/.github/workflows/test-fast.yaml index c29c2ee..46be129 100644 --- a/.github/workflows/test-fast.yaml +++ b/.github/workflows/test-fast.yaml @@ -25,10 +25,12 @@ jobs: extra-packages: any::testthat needs: check - # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's - # oneTBB update. Rebuild from source; drop once upstream binaries sync. - - name: Rebuild stringfish from source (RcppParallel ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + # ponytail: CRAN/RSPM binary skew — prebuilt binaries (stringfish, qs2, ...) lag + # RcppParallel's oneTBB update (undefined tbb::internal / tbb::task symbols). + # Rebuild everything LinkingTo RcppParallel from source so it links the installed + # copy. Drop once upstream binaries re-sync. + - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) + run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' - name: Install kaefa package for fast tests run: R CMD INSTALL . From 34ef00f16b1aa68ece4a58ee88230efb850c0bbd Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:35:57 +0900 Subject: [PATCH 07/13] ci: rebuild all RcppParallel-linked packages (qs2 hit the same oneTBB skew) --- .github/workflows/test-suite.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-suite.yaml b/.github/workflows/test-suite.yaml index 8e22232..9ae6174 100644 --- a/.github/workflows/test-suite.yaml +++ b/.github/workflows/test-suite.yaml @@ -41,10 +41,12 @@ jobs: extra-packages: any::testthat needs: check - # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's - # oneTBB update. Rebuild from source; drop once upstream binaries sync. - - name: Rebuild stringfish from source (RcppParallel ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + # ponytail: CRAN/RSPM binary skew — prebuilt binaries (stringfish, qs2, ...) lag + # RcppParallel's oneTBB update (undefined tbb::internal / tbb::task symbols). + # Rebuild everything LinkingTo RcppParallel from source so it links the installed + # copy. Drop once upstream binaries re-sync. + - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) + run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' - name: Install kaefa package run: R CMD INSTALL . From b944368140c6e85e0378da52c8c1471b37ad05bf Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:02:15 +0900 Subject: [PATCH 08/13] ci: source-build stringfish before dep setup (SimDesign source builds load it); fold long line --- .github/workflows/R-CMD-check.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 4a1f7ed..0a8a5aa 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -42,6 +42,12 @@ jobs: http-user-agent: ${{ matrix.config.http-user-agent }} use-public-rspm: true + # ponytail: source-build stringfish BEFORE dependency setup — packages built + # from source during install (e.g. SimDesign) load it at build time and die + # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: Rscript -e 'install.packages("stringfish", type = "source")' + - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: extra-packages: | @@ -54,7 +60,9 @@ jobs: # Rebuild everything LinkingTo RcppParallel from source so it links the installed # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) - run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' + run: >- + Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source")' - name: Run Zh formula regression tests run: | From 46012b7622473a4a626e68e678ec9ebaf081caa9 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:02:21 +0900 Subject: [PATCH 09/13] ci: source-build stringfish before dep setup (SimDesign source builds load it); fold long line --- .github/workflows/test-fast.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-fast.yaml b/.github/workflows/test-fast.yaml index 46be129..1d70c5e 100644 --- a/.github/workflows/test-fast.yaml +++ b/.github/workflows/test-fast.yaml @@ -20,6 +20,12 @@ jobs: with: use-public-rspm: true + # ponytail: source-build stringfish BEFORE dependency setup — packages built + # from source during install (e.g. SimDesign) load it at build time and die + # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: Rscript -e 'install.packages("stringfish", type = "source")' + - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: extra-packages: any::testthat @@ -30,7 +36,9 @@ jobs: # Rebuild everything LinkingTo RcppParallel from source so it links the installed # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) - run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' + run: >- + Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source")' - name: Install kaefa package for fast tests run: R CMD INSTALL . From 4acfcf08552d26f429a4d49ef92ad6bb49abe73e Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:02:26 +0900 Subject: [PATCH 10/13] ci: source-build stringfish before dep setup (SimDesign source builds load it); fold long line --- .github/workflows/test-suite.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-suite.yaml b/.github/workflows/test-suite.yaml index 9ae6174..896da6b 100644 --- a/.github/workflows/test-suite.yaml +++ b/.github/workflows/test-suite.yaml @@ -36,6 +36,12 @@ jobs: with: use-public-rspm: true + # ponytail: source-build stringfish BEFORE dependency setup — packages built + # from source during install (e.g. SimDesign) load it at build time and die + # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: Rscript -e 'install.packages("stringfish", type = "source")' + - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: extra-packages: any::testthat @@ -46,7 +52,9 @@ jobs: # Rebuild everything LinkingTo RcppParallel from source so it links the installed # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) - run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' + run: >- + Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source")' - name: Install kaefa package run: R CMD INSTALL . From d75e72c037e78886603029797f4ff98654f81980 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:24:20 +0900 Subject: [PATCH 11/13] ci: real source rebuilds via CRAN cloud (RSPM serves linux binaries for source URLs); rebuild RcppParallel first --- .github/workflows/R-CMD-check.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 0a8a5aa..ca02cfe 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -45,8 +45,12 @@ jobs: # ponytail: source-build stringfish BEFORE dependency setup — packages built # from source during install (e.g. SimDesign) load it at build time and die # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. - name: Source-build stringfish (RcppParallel oneTBB ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + run: >- + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", + repos = "https://cloud.r-project.org")' - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: @@ -61,8 +65,9 @@ jobs: # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) run: >- - Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); - if (length(bad)) install.packages(bad, type = "source")' + Rscript -e 'r <- "https://cloud.r-project.org"; install.packages("RcppParallel", type = "source", repos = r); + bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source", repos = r)' - name: Run Zh formula regression tests run: | From 28e844259468d9cd4f462d59072f0fb9d606bedf Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:24:25 +0900 Subject: [PATCH 12/13] ci: real source rebuilds via CRAN cloud (RSPM serves linux binaries for source URLs); rebuild RcppParallel first --- .github/workflows/test-fast.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-fast.yaml b/.github/workflows/test-fast.yaml index 1d70c5e..ee046af 100644 --- a/.github/workflows/test-fast.yaml +++ b/.github/workflows/test-fast.yaml @@ -23,8 +23,12 @@ jobs: # ponytail: source-build stringfish BEFORE dependency setup — packages built # from source during install (e.g. SimDesign) load it at build time and die # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. - name: Source-build stringfish (RcppParallel oneTBB ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + run: >- + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", + repos = "https://cloud.r-project.org")' - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: @@ -37,8 +41,9 @@ jobs: # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) run: >- - Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); - if (length(bad)) install.packages(bad, type = "source")' + Rscript -e 'r <- "https://cloud.r-project.org"; install.packages("RcppParallel", type = "source", repos = r); + bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source", repos = r)' - name: Install kaefa package for fast tests run: R CMD INSTALL . From fbba747eaf1399613c7faf5b9332d3f5a1b557a3 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:24:30 +0900 Subject: [PATCH 13/13] ci: real source rebuilds via CRAN cloud (RSPM serves linux binaries for source URLs); rebuild RcppParallel first --- .github/workflows/test-suite.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-suite.yaml b/.github/workflows/test-suite.yaml index 896da6b..407a8fa 100644 --- a/.github/workflows/test-suite.yaml +++ b/.github/workflows/test-suite.yaml @@ -39,8 +39,12 @@ jobs: # ponytail: source-build stringfish BEFORE dependency setup — packages built # from source during install (e.g. SimDesign) load it at build time and die # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. - name: Source-build stringfish (RcppParallel oneTBB ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + run: >- + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", + repos = "https://cloud.r-project.org")' - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: @@ -53,8 +57,9 @@ jobs: # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) run: >- - Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); - if (length(bad)) install.packages(bad, type = "source")' + Rscript -e 'r <- "https://cloud.r-project.org"; install.packages("RcppParallel", type = "source", repos = r); + bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source", repos = r)' - name: Install kaefa package run: R CMD INSTALL .