You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Transition to sugar length checks (#1513): affected packages #1517
PR #1513 (closing #1512) makes Rcpp sugar check that the operands of an expression, and a vector assigned into a matrix row, column or Range subset, have matching lengths. Released Rcpp sizes the result by the left-hand operand (or the target) and silently truncates the longer side, so code with mismatched lengths ran without complaint; in several cases below it also produced wrong results.
The reverse dependency run of 2026-10-06 (summarised here) gives '3302 successes, 29 failures, 60 skipped'. Of the failures, twelve are packages that trip the new check, each at a single site:
Error: sugar operands have different lengths (N1 and N2)
Error: cannot assign a vector of length V to a target of length T
This issue regroups the required work on those packages. Note that the checks are compiled in only for development versions of Rcpp (four version components, which is what the reverse-dependency runs use); releases leave them off and behave as before, so none of these packages will break on CRAN when Rcpp is released. The fixes are still worth making, since in several cases the old results were wrong. The fixes are one line in ten cases, and each has been sent upstream as a PR or, where no repository could be found, as a patch by email. In the two remaining cases the old results were affected and the maintainer should own the change, so an issue was filed instead. Fixed packages build against both the CRAN version 1.1.2 and the #1513 branch.
Help is definitely welcome. If you maintain one of these packages, or can nudge its maintainer, please do.
NB: Two other failures in that run were on our side and are not covered by this ticket: touch (a compile error in lapply(), fixed in #1513) and revdbayes (an object layout change in #1511 that broke the XPtr call from rust, since reworked). The ConsTree 'illegal operation' (and the long-standing TreeTools, TreeDist and TreeSearch failures) come from an unconditional inline-asm popcnt in TreeTools' SplitList.h, which faults on CPUs without POPCNT such as VMs with a generic CPU model; reported at ms609/TreeTools#287 with a fix at ms609/TreeTools#288. The remaining failures were pre-existing, missing dependencies, or unrelated to Rcpp per the run summary.
PR #1513 (closing #1512) makes Rcpp sugar check that the operands of an expression, and a vector assigned into a matrix row, column or
Rangesubset, have matching lengths. Released Rcpp sizes the result by the left-hand operand (or the target) and silently truncates the longer side, so code with mismatched lengths ran without complaint; in several cases below it also produced wrong results.The reverse dependency run of 2026-10-06 (summarised here) gives '3302 successes, 29 failures, 60 skipped'. Of the failures, twelve are packages that trip the new check, each at a single site:
This issue regroups the required work on those packages. Note that the checks are compiled in only for development versions of Rcpp (four version components, which is what the reverse-dependency runs use); releases leave them off and behave as before, so none of these packages will break on CRAN when Rcpp is released. The fixes are still worth making, since in several cases the old results were wrong. The fixes are one line in ten cases, and each has been sent upstream as a PR or, where no repository could be found, as a patch by email. In the two remaining cases the old results were affected and the maintainer should own the change, so an issue was filed instead. Fixed packages build against both the CRAN version 1.1.2 and the #1513 branch.
Help is definitely welcome. If you maintain one of these packages, or can nudge its maintainer, please do.
Individual packages:
Wpix(128x128 vs native), so old results were silently misaligned; issue filed covariate images are added to Wpix on a different pixel grid tomasmrkvicka/binspp#1phi.matfrom a vector of length K*N assigned into rows of length N, which fed wrong values into the DIC and fitted values; issue filed phi.mat in the CARclustrends models is built from a vector of the wrong length duncanplee/CARBayesST#13com_sizewith the number of vertices instead of communities, PR at allocate com_size per community in FOMD_Rcpp martirm/clustAnalytics#2BBtempwith length t instead of simax, PR at use a window of length simax for BBtemp in Rcpp_KerRpostmap oswaldogressani/EpiLPS#4pmin(probs, NumericVector(numTests, 1.0))whereprobsis shorter, PR at cap probabilities with a scalar in kernel_wPB_fast DISOhda/FDX#1cartesian_cppwithlen(v) * Nelements, no repo we could find, patch emailedRange(s, s + paths)one element too long, PR at fix off-by-one range in make_BM ahudde/greeks#23respmwithout subsettingtheta_start,muandsigma2, PR at keep theta_start, mu and sigma2 aligned with respm after dropping persons jansteinfeld/PP#3Range(ind - nt + 1, ind + 1)assuming a half-open range, PR at use an inclusive Range of length nt for the targets franciscomartinezdelrio/tsfgrnn#2Range(ind - nt + 1, ind + 1), PR at use an inclusive Range of length nt for the targets franciscomartinezdelrio/tsfknn#5See full list.
NB: Two other failures in that run were on our side and are not covered by this ticket: touch (a compile error in
lapply(), fixed in #1513) and revdbayes (an object layout change in #1511 that broke the XPtr call from rust, since reworked). The ConsTree 'illegal operation' (and the long-standing TreeTools, TreeDist and TreeSearch failures) come from an unconditional inline-asmpopcntin TreeTools'SplitList.h, which faults on CPUs without POPCNT such as VMs with a generic CPU model; reported at ms609/TreeTools#287 with a fix at ms609/TreeTools#288. The remaining failures were pre-existing, missing dependencies, or unrelated to Rcpp per the run summary.