From murdoch@dunc@n @end|ng |rom gm@||@com  Sun Jul  2 20:44:34 2023
From: murdoch@dunc@n @end|ng |rom gm@||@com (Duncan Murdoch)
Date: Sun, 2 Jul 2023 14:44:34 -0400
Subject: [Rd] Strange error in R CMD check --timings
In-Reply-To: <c3fa82ce-8941-e606-8229-131fa2fe03b0@fau.de>
References: <fb0340ef-f2f0-4b52-ae15-900d3cf2fdeb@gmail.com>
 <c3fa82ce-8941-e606-8229-131fa2fe03b0@fau.de>
Message-ID: <d4fc6647-9838-76ea-3bce-b348ecd3dc32@gmail.com>

On 02/07/2023 2:34 p.m., Sebastian Meyer wrote:
> Am 02.07.23 um 18:01 schrieb Duncan Murdoch:
>> This SO post: https://stackoverflow.com/q/76583828 describes a strange R
>> CMD check error.  Depending on the contents of a comment in one of the
>> examples sections of a help page, an error like this could be triggered:
>>
>>      > base::assign(".dptime", (proc.time() - get(".ptime", pos =
>> "CheckExEnv")), pos = "CheckExEnv")
>>      > base::cat("read_net", base::get(".format_ptime", pos =
>> 'CheckExEnv')(get(".dptime", pos = "CheckExEnv")), "\n",
>> file=base::get(".ExTimings", pos = 'CheckExEnv'), append=TRUE, sep="\t")
>>      > ### * <FOOTER>
>>      > ###
>>      > cleanEx()
>>      > options(digits = 7L)
>>      > base::cat("Time elapsed: ", proc.time() - base::g
>>      + Error: unexpected end of input
>>      Execution halted
>>
>> The code without the offending comment is available here:
>>
>>      https://github.com/rob-ward-psych/iac
>>
>> at revision c2f3529.  To add the offending comment, change line 318 of
>> R/iac_networks.R to
>>
>>      #' # Ken is a burglar in the Sharks, what is retrieved from his name
>>
>> and run roxygen on the package, so the long comment ends up in the
>> examples section of man/read_net.Rd instead of the empty comment that is
>> there on Github.
>>
>> At first it appeared to require devtools::check(), but in fact the error
>> comes from R CMD check --timings .  One thing that may be related is
>> that an earlier example had this code:
>>
>>      file.edit(iac_example("what_where.yaml"))
> 
> I could reproduce the check error on Ubuntu for some settings of EDITOR.
> 
> - For EDITOR="nano", the output below file.edit() in iac-Ex.Rout showed
> content from the first few lines of the yaml file and then
> Too many errors from stdin
> 
> - For EDITOR="vi", iac-Ex.Rout showed
> Vim: Warning: Output is not to a terminal
> Vim: Warning: Input is not from a terminal
> Press ENTER or type command to continue
> ... some content from the yaml file ...
> Vim: Error reading input, exiting...
> 
> OTOH,
> EDITOR="nonexistent" resulted in a successful check run with file.edit()
> output
> sh: 1: nonexistent: not found
> Warning: error in running command
> 
> whereas EDITOR="emacs" would open the GUI while "* checking examples
> ...", waiting for me to finish editing.
> 
> I agree that the package should conditionalize a [file.]edit() example
> on the R session being interactive(). I'm wondering, however, whether R
> CMD check should itself generally set the "editor" option to a read-only
> variant, e.g., a function that just calls file.show() with a warning
> when it runs the (massaged) examples. For related reasons, I guess, it
> already sets the "pager" option on Windows to "console". Alternatively,
> if the massaged "editor" option called stop() (similar to T and F
> producing errors), such examples would really need to be conditioned on
> interactive().

Given how variable the results are, I think the last option (calling 
file.edit() non-interactively should be an error) would be my choice.

Duncan Murdoch

> 
> 	Sebastian Meyer
> 
>>
>> If that line is skipped (by conditioning on interactive()), the error
>> goes away.  But this might be unrelated, since deleting that comment
>> also makes the error go away.
>>
>> Duncan Murdoch
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Strange error in R CMD check --timings
Duncan Murdoch