[R-pkg-devel] try() in R CMD check --as-cran

Serguei Sokol @ergue|@@oko| @end|ng |rom gm@||@com
Fri Jun 7 17:19:47 CEST 2019


On 07/06/2019 16:47, Duncan Murdoch wrote:
> On 07/06/2019 9:46 a.m., J C Nash wrote:
>> Should try() not stop those checks from forcing an error?
> 
> try(stop("msg"))  will print the error message, but won't stop 
> execution.  Presumably the printed message is what is causing you 
> problems.  If you want to suppress that, use
> 
> try(stop("msg"), silent = TRUE)
By curiosity, I tried but to no avail. Moreover, I have tried to trigger 
a similar error in different place by adding to the John's example in 
man/fchk.Rd the following code:

#... the same before
} # very simple, but ...

print(Sys.getenv("_R_CHECK_LENGTH_1_LOGIC2_", unset="unset"))
a=1:3 || 1:3
cat("a=", a, "\n")
y<-1:10
#... the same after.

add failed again. This part of code works without any error signaling 
while fchk()'s situation continue to flag up an error. From 
fchk-Ex.Rout, we can see:
...
+ } # very simple, but ...
 >
 > print(Sys.getenv("_R_CHECK_LENGTH_1_LOGIC2_", unset="unset"))
[1] "package:_R_CHECK_PACKAGE_NAME_,abort,verbose"
 > a=1:3 || 1:3
 > cat("a=", a, "\n")
a= TRUE
 > y<-1:10
...
Function evaluation returns a vector not a scalar
  ----------- FAILURE REPORT --------------
  --- failure: length > 1 in coercion to logical ---
...

While in regular R session:
 > Sys.unsetenv("_R_CHECK_LENGTH_1_LOGIC2_")
 > (a=1:3 || 1:3)
[1] TRUE
 > Sys.setenv("_R_CHECK_LENGTH_1_LOGIC2_"="")
 > (a=1:3 || 1:3)
Error in 1:3 || 1:3 : 'length(x) = 3 > 1' in coercion to 'logical(1)'

So, to my mind, 'a=1:3 || 1:3' should be considered as an error in a 
check with "--as-cran" but for some reason is not.

Both fchk with modified example and corresponding fchk-Ex.Rout are enclosed.

Best,
Serguei.

> 
> Duncan Murdoch
> 
>>
>> I recognize that this is the failure -- it is indeed the check I'm 
>> trying to
>> catch -- but I don't want tests of such checks to fail my package.
>>
>> JN
>>
>> On 2019-06-07 9:31 a.m., Sebastian Meyer wrote:
>>> The failure stated in the R CMD check failure report is:
>>>
>>>>   --- failure: length > 1 in coercion to logical ---
>>>
>>> This comes from --as-cran performing useful extra checks via setting the
>>> environment variable _R_CHECK_LENGTH_1_LOGIC2_, which means:
>>>
>>>> check if either argument of the binary operators && and || has 
>>>> length greater than one.
>>>
>>> (see https://cran.r-project.org/doc/manuals/r-release/R-ints.html#Tools)
>>>
>>> The failure report also states the source of the failure:
>>>
>>>>   --- call from context ---
>>>> fchk(x, benbad, trace = 3, y)
>>>>   --- call from argument ---
>>>> is.infinite(fval) || is.na(fval)
>>>
>>> The problem is that both is.infinite(fval) and is.na(fval) return
>>> vectors of length 10 in your test case:
>>>
>>>>   --- value of length: 10 type: logical ---
>>>>   [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
>>>
>>> The || operator works on length 1 Booleans. Since fval can be of length
>>> greater than 1 at that point, the proper condition seems to be:
>>>
>>> any(is.infinite(fval)) || any(is.na(fval))
>>>
>>> Best regards,
>>>
>>>     Sebastian
>>>
>>>
>>> Am 07.06.19 um 14:53 schrieb J C Nash:
>>>> Sorry reply not quicker. For some reason I'm not getting anything in 
>>>> the thread I started!
>>>> I found the responses in the archives. Perhaps cc: nashjc using uottawa.ca 
>>>> please.
>>>>
>>>> I have prepared a tiny (2.8K) package at
>>>> http://web.ncf.ca/nashjc/jfiles/fchk_2019-6.5.tar.gz
>>>>
>>>> R CMD check --> OK
>>>>
>>>> R CMD check --as-cran --> 1 ERROR, 1 NOTE
>>>>
>>>> The error is in an example:
>>>>
>>>>> benbad<-function(x, y){
>>>>>     # y may be provided with different structures
>>>>>     f<-(x-y)^2
>>>>> } # very simple, but ...
>>>>>
>>>>> y<-1:10
>>>>> x<-c(1)
>>>>> cat("test benbad() with y=1:10, x=c(1)\n")
>>>>> tryfc01 <- try(fc01<-fchk(x, benbad, trace=3, y))
>>>>> print(tryfc01)
>>>>> print(fc01)
>>>>
>>>> There's quite a lot of output, but it doesn't make much sense to me, as
>>>> it refers to code that I didn't write.
>>>>
>>>> The function fchk is attempting to check if functions provided for
>>>> optimization do not violate some conditions e.g., character rather than
>>>> numeric etc.
>>>>
>>>> JN
>>>>
>>>>
>>>> On 2019-06-07 8:44 a.m., J C Nash wrote:
>>>>> Uwe Ligges ||gge@ @end|ng |rom @t using t|@t|k using tu-dortmund@de
>>>>> Fri Jun 7 11:44:37 CEST 2019
>>>>>
>>>>>      Previous message (by thread): [R-pkg-devel] try() in R CMD 
>>>>> check --as-cran
>>>>>      Next message (by thread): [R-pkg-devel] using package data in 
>>>>> package code
>>>>>      Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
>>>>>
>>>>> Right, what problem are you talking about? Can you tell us which check
>>>>> it is and what it actually complained about.
>>>>> There is no check that looks at the sizes of x and y in exypressions
>>>>> such as
>>>>> (x - y)^2.
>>>>> as far as I know.
>>>>>
>>>>> Best,
>>>>> Uwe
>>>>>
>>>>> On 07.06.2019 10:33, Berry Boessenkool wrote:
>>>>>>
>>>>>> Not entirely sure if this is what you're looking for:
>>>>>> https://github.com/wch/r-source/blob/trunk/src/library/tools/R/check.R 
>>>>>>
>>>>>> It does contain --as-cran a few times and there's the change-history:
>>>>>> https://github.com/wch/r-source/commits/trunk/src/library/tools/R/check.R 
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Berry
>>>>>>
>>>>>>
>>>>>> ________________________________
>>>>>> From: R-package-devel <r-package-devel-bounces using 
>>>>>> r-project.org> on behalf of J C Nash <profjcnash using gmail.com>
>>>>>> Sent: Thursday, June 6, 2019 15:03
>>>>>> To: List r-package-devel
>>>>>> Subject: [R-pkg-devel] try() in R CMD check --as-cran
>>>>>>
>>>>>> After making a small fix to my optimx package, I ran my usual R 
>>>>>> CMD check --as-cran.
>>>>>>
>>>>>> To my surprise, I got two ERRORs unrelated to the change. The 
>>>>>> errors popped up in
>>>>>> a routine designed to check the call to the user objective 
>>>>>> function. In particular,
>>>>>> one check is that the size of vectors is the same in expressions 
>>>>>> like (x - y)^2.
>>>>>> This works fine with R CMD check, but the --as-cran seems to have 
>>>>>> changed and it
>>>>>> pops an error, even when the call is inside try(). The irony that 
>>>>>> the routine in
>>>>>> question is intended to avoid problems like this is not lost on me.
>>>>>>
>>>>>> I'm working on a small reproducible example, but it's not small 
>>>>>> enough yet.
>>>>>> In the meantime, I'm looking for the source codes of the scripts 
>>>>>> for "R CMD check" and
>>>>>> "R CMD check --as-cran" so I can work out why there is this 
>>>>>> difference, which seems
>>>>>> to be recent.
>>>>>>
>>>>>> Can someone send/post a link? I plan to figure this out and 
>>>>>> provide feedback,
>>>>>> as I suspect it is going to affect others. However, it may be a 
>>>>>> few days or even
>>>>>> weeks if past experience is a guide.
>>>>>>
>>>>>> JN
>>>>>>
>>>>>> ______________________________________________
>>>>>> R-package-devel using r-project.org mailing list
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>>>
>>>>>>     [[alternative HTML version deleted]]
>>>>>>
>>>>>> ______________________________________________
>>>>>> R-package-devel using r-project.org mailing list
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>>>
>>>>>
>>>>
>>>> ______________________________________________
>>>> R-package-devel using r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>
>>>
>>> ______________________________________________
>>> R-package-devel using r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>
>>
>> ______________________________________________
>> R-package-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: fchk_2019-6.5-1.tar.gz
Type: application/gzip
Size: 2924 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-package-devel/attachments/20190607/f4595eec/attachment.gz>

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fchk-Ex.Rout
URL: <https://stat.ethz.ch/pipermail/r-package-devel/attachments/20190607/f4595eec/attachment.ksh>


More information about the R-package-devel mailing list