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: