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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to