[Rd] Control statements with condition with greater than one should give error (not just warning) [PATCH]
Martin Maechler
maechler at stat.math.ethz.ch
Mon Mar 6 13:51:31 CET 2017
>>>>> Michael Lawrence <lawrence.michael at gene.com>
>>>>> on Sat, 4 Mar 2017 12:20:45 -0800 writes:
> Is there really a need for these complications? Packages
> emitting this warning are broken by definition and should be fixed.
I agree and probably Henrik, too.
(Others may disagree to some extent .. and find it convenient
that R does translate 'if(x)' to 'if(x[1])' for them albeit
with a warning .. )
> Perhaps we could "flip the switch" in a test
> environment and see how much havoc is wreaked and whether
> authors are sufficiently responsive?
> Michael
As we have > 10'000 packages on CRAN alonce, and people have
started (mis)using suppressWarnings(.) in many places, there
may be considerably more packages affected than we optimistically assume...
As R core member who would "flip the switch" I'd typically then
have to be the one sending an e-mail to all package maintainers
affected.... and in this case I'm very reluctant to volunteer
for that and so, I'd prefer the environment variable where R
core and others can decide how to use it .. for a while .. until
the flip is switched for all.
or have I overlooked an issue?
Martin
> On Sat, Mar 4, 2017 at 12:04 PM, Martin Maechler
> <maechler at stat.math.ethz.ch
>> wrote:
>> >>>>> Henrik Bengtsson <henrik.bengtsson at gmail.com> >>>>>
>> on Fri, 3 Mar 2017 10:10:53 -0800 writes:
>>
>> > On Fri, Mar 3, 2017 at 9:55 AM, Hadley Wickham >
>> <h.wickham at gmail.com> wrote: >>> But, how you propose a
>> warning-to-error transition >>> should be made without
>> wreaking havoc? Just flip the >>> switch in R-devel and
>> see CRAN and Bioconductor packages >>> break overnight?
>> Particularly Bioconductor devel might >>> become
>> non-functional (since at times it requires >>> R-devel).
>> For my own code / packages, I would be able >>> to handle
>> such a change, but I'm completely out of >>> control if
>> one of the package I'm depending on does not >>> provide
>> a quick fix (with the only option to remove >>> package
>> tests for those dependencies).
>> >>
>> >> Generally, a package can not be on CRAN if it has any
>> >> warnings, so I don't think this change would have any
>> >> impact on CRAN packages. Isn't this also true for >>
>> bioconductor?
>>
>> > Having a tests/warn.R file with:
>>
>> > warning("boom")
>>
>> > passes through R CMD check --as-cran unnoticed.
>>
>> Yes, indeed.. you are right Henrik that many/most R
>> warning()s would not produce R CMD check 'WARNING's ..
>>
>> I think Hadley and I fell into the same mental pit of
>> concluding that such warning()s from
>> if(<length-larger-one>) ... would not currently happen
>> in CRAN / Bioc packages and hence turning them to errors
>> would not have a direct effect.
>>
>> With your 2nd e-mail of saying that you'd propose such an
>> option only for a few releases of R you've indeed
>> clarified your intent to me. OTOH, I would prefer using
>> an environment variable (as you've proposed as an
>> alternative) which is turned "active" at the beginning
>> only manually or for the "CRAN incoming" checks of the
>> CRAN team (and bioconductor submission checks?) and
>> later for '--as-cran' etc until it eventually becomes the
>> unconditional behavior of R (and the env.variable is no
>> longer used).
>>
>> Martin
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
> [[alternative HTML version deleted]]
More information about the R-devel
mailing list