[R-pkg-devel] try() in R CMD check --as-cran
Duncan Murdoch
murdoch@dunc@n @end|ng |rom gm@||@com
Fri Jun 7 19:20:59 CEST 2019
On 07/06/2019 12:32 p.m., William Dunlap wrote:
> The length-condition-not-equal-to-one checks will cause R to shutdown
> even if the code in a tryCatch().
That's strange. I'm unable to reproduce it with my tries, and John's
package is no longer online. Do you have an example I could look at?
Duncan Murdoch
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com <http://tibco.com>
>
>
> On Fri, Jun 7, 2019 at 7:47 AM Duncan Murdoch <murdoch.duncan using gmail.com
> <mailto:murdoch.duncan using gmail.com>> 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)
>
> 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 <http://is.na>(fval)
> >>
> >> The problem is that both is.infinite(fval) and is.na
> <http://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 <http://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 <mailto: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 <http://r-project.org>> on behalf of J C Nash
> <profjcnash using gmail.com <http://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 <http://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 <http://r-project.org>
> mailing list
> >>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >>>>>
> >>>>
> >>>
> >>> ______________________________________________
> >>> R-package-devel using r-project.org
> <mailto: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
> <mailto: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
> <mailto: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 <mailto:R-package-devel using r-project.org>
> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
More information about the R-package-devel
mailing list