Skip to content

CRAN/BIOC packages that run "if" on condition longer than 1 in their tests.

Notifications You must be signed in to change notification settings

kalibera/rifcond

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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).

About

CRAN/BIOC packages that run "if" on condition longer than 1 in their tests.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published