From @eb@meyer @end|ng |rom |@u@de  Sun Jul  2 20:34:21 2023
From: @eb@meyer @end|ng |rom |@u@de (Sebastian Meyer)
Date: Sun, 2 Jul 2023 20:34:21 +0200
Subject: [Rd] Strange error in R CMD check --timings
In-Reply-To: <fb0340ef-f2f0-4b52-ae15-900d3cf2fdeb@gmail.com>
References: <fb0340ef-f2f0-4b52-ae15-900d3cf2fdeb@gmail.com>
Message-ID: <c3fa82ce-8941-e606-8229-131fa2fe03b0@fau.de>

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

	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
Sebastian Meyer