[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#877288: r-base: Rebuilding r-bioc-biocgenerics with new R changes behaviour



Control: reassign -1 src:r-bioc-s4vectors 0.14.3-1
Control: affects -1 = r-bioc-iranges r-bioc-variantannotation
Control: tags -1 + fixed-upstream
Control: clone -1 -2
Control: reassign -2 src:r-bioc-iranges 2.10.2-1


On 30 September 2017 at 14:30, Dirk Eddelbuettel <edd@debian.org> wrote:
> Out of date. We have 3.4.2 now.

3.4.1.20170921-1 is the version where the regression appeared.

> But I see no evidence of anything at fault at r-base-core.  I think you have
> a case of wrongly ordered builds of dependencies here _in the client package_
> so please reassign the bug report.

Upstream have released workarounds in S4Vectors 0.14.6 and IRanges
2.10.4, so reassigning.
See commit from S4Vectors below:

diff --git a/R/List-comparison.R b/R/List-comparison.R
index c096a00..6f788fb 100644
--- a/R/List-comparison.R
+++ b/R/List-comparison.R
@@ -43,7 +43,16 @@ setMethod("pcompareRecursively", "list", function(x) TRUE)
         return(OP1_Vector_method(x, ...))
     }
     compress_ans <- !is(x, "SimpleList")
-    ANS_CONSTRUCTOR(lapply(x, OP1, ...), compress=compress_ans)
+    ## Note that we should just be able to do
+    ##   y <- lapply(x, OP1, ...)
+    ## instead of the extremely obfuscated form below (which, in a bug-free
+    ## world, should be equivalent to the simple form above).
+    ## However, because of a regression in R 3.4.2, using the simple form
+    ## above doesn't seem to work properly if OP1 is a generic function with
+    ## dispatch on ... (e.g. order()). The form below seems to work though,
+    ## so we use it as a temporary workaround.
+    y <- lapply(x, function(xi) do.call(OP1, list(xi, ...)))
+    ANS_CONSTRUCTOR(y, compress=compress_ans)
 }

 ### Apply a binary operator.


Reply to: