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