This is a report from checking for packages executing if or while
statement on a condition of length bigger than one. This is now still a
warning in R, but as it almost always is caused by error in the program, it
will soon be turned into an error.
The reports in outputs are based on running R-devel 75396 with environment
variables R_KEEP_PKG_SOURCE=yes (to keep source references in packages)
and _R_CHECK_LENGTH_1_CONDITION_=package:_R_CHECK_PACKAGE_NAME_,abort,verbose
(to fail on condition of length bigger than one, but only when the if/while
statement is in the package being currently checked, so the risk of false
alarms/false identification of a package to fix, is very small). The outputs
are from recent CRAN packages and from BIOC 3.7, package versions are
detailed in the README file. The reports in outputs_38 are for tests
with BIOC 3.8.
The reports in outputs_all use R_KEEP_PKG_SOURCE=yes and
_R_CHECK_LENGTH_1_CONDITION_=abort,verbose, which means that R fails on
condition of length bigger than one no matter from which package is the
problematic code. The outputs are from recent CRAN packages and from BIOC
3.7, packages versions are again detailed in the README file. The reports
in outputs_38_all are for tests with BIOC 3.8.
With the abort option, R aborts unconditionally and reports diagnostic
information to help debugging, but this means that only one instance of the
problem per a running R instance would be covered by this experiment. One
can set the environment variables in the same way with the current R-devel
to to detect further similar errors in a package. Without abort, one
would get a normal runtime R error, allowing interactive debugging if
needed.
The reports should be fairly self-explanatory. Look for a line containing
FAILURE REPORT near the end of an output file (but note that some output
files cover more than one R session, so they may have multiple failure
reports). The srcref field gives file name and line number for the
if/while statement, the call from argument field gives the if/while
statement expression, the value field gives the type and length of the
actual value passed to the condition (so, the value that is of length bigger
than one).