R 4.0.0 incompatibility

Issue #127 resolved
Jason Vander Heiden created an issue

From CRAN:

Please see the problems shown on
<https://cran.r-project.org/web/checks/check_results_shazam.html>.

Specifically, see the problems shown for the r-devel Debian checks.

These can be reproduced by checking with --as-cran using current
r-devel, which for now sets

_R_CLASS_MATRIX_ARRAY_=true

in the check environment, to the effect that

R> class(matrix(1 : 4, 2, 2))
[1] "matrix" "array"

(and no longer just "matrix" as before).

According to the R NEWS file,

For now only active when environment variable _R_CLASS_MATRIX_ARRAY_
is set to non-empty, but planned to be the new unconditional behavior
when R 4.0.0 is released:

matrix objects now also inherit from class "array", namely, e.g.,
class(diag(1)) is c("matrix", "array") which invalidates code
assuming that length(class(obj)) == 1, an incorrect assumption that
is less frequently fulfilled now.

S3 methods for "array", i.e., <someFun>.array(), are now also
dispatched for matrix objects.

Apparently your package no longer works correctly when
class(matrix(...)) gives a vector of length two: please fix as
necessary.

See
<https://developer.r-project.org/Blog/public/2019/11/09/when-you-think-class.-think-again/index.html>
for more information about correctly using class() in package code.

Please correct before 2019-12-18 to safely retain your package on CRAN.

We’ll need to fix this in a maintenance branch off the `0.2.1` tag, because the airr release isn’t ready.

Comments (1)

  1. Log in to comment