[Rd] Suggestion: Make _R_CHECK_LENGTH_1_LOGIC2_=warn the default for R 3.6.2

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Mon Nov 18 09:35:25 CET 2019


>>>>> Henrik Bengtsson 
>>>>>     on Sun, 17 Nov 2019 20:42:32 -0800 writes:

    > Hi,

    > I'm not sure where we are in getting CRAN packages getting their
    > _R_CHECK_LENGTH_1_LOGIC2_=true bugs fixed (*), but maybe it'd help to
    > make _R_CHECK_LENGTH_1_LOGIC2_=warn the new default in the upcoming R
    > 3.6.2?

Interesting, I had similar thoughts the last few days
... but not for R 3.6.x --- I think it's out of the question to
do that for a "minor" update --- but for R 4.0.0.

    > Warnings of type:

    > $ R --vanilla
    >> Sys.setenv("_R_CHECK_LENGTH_1_LOGIC2_" = "warn")
    >> c(TRUE, FALSE) && TRUE
    > [1] TRUE
    > Warning message:
    > In c(TRUE, FALSE) && TRUE : 'length(x) = 2 > 1' in coercion to 'logical(1)'

    > could help encourage more package maintainers to fix these bugs
    > sooner. Enabling this warning by default is in line with what the
    > current default behavior for _R_CHECK_LENGTH_1_CONDITION_ bugs:

    >> if (c(TRUE, FALSE)) 42
    > [1] 42
    > Warning message:
    > In if (c(TRUE, FALSE)) 42 :
    > the condition has length > 1 and only the first element will be used

    > which has been the case for many years.

    > Hopefully in a not too far future, we get to a point where we can have
    > _R_CHECK_LENGTH_1_LOGIC2_=true and _R_CHECK_LENGTH_1_CONDITION_=true
    > as the new defaults.

Exactly.  My own thoughts (mentioned above) were actually more about
the *other* _R_CHECK_LENGTH_1_* variable, i.e., _R_CHECK_LENGTH_1_CONDITION_
and that ---- as I have only noticed these days, when considering
the exact impact of the upcoming

    class(<matrix>)  |-->  c("matrix", "array")

change --- has actually *not* been part of the  '--as-cran'
checks, nor (AFAIK, but I don't really know) of extra CRAN
incoming checks.

I'm proposing to add   _R_CHECK_LENGTH_1_CONDITION_=true
to the --as-cran  checks  ASAP (within weeks)  and indeed, I 
think we should consider to have *both*  _R_CHECK_LENGTH_1_* = true
become the default in R 4.0.0.

Martin Maechler
ETH Zurich  and  R Core


    > (*) I understand that CRAN incoming checks with
    > _R_CHECK_LENGTH_1_LOGIC2_=package:_R_CHECK_PACKAGE_NAME_,abort,verbose,
    > so all packages submitted to CRAN have to pass this check.  I don't
    > think Bioconductor checks for these yet, but I could be wrong.

    > /Henrik

    > ______________________________________________
    > R-devel using r-project.org mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list