On 2/14/24 23:43, Jennifer Bryan wrote:
Hello,
I've noticed a specific type of pipe() usage that works in released R,
not in r-devel.
In 4.3.2 on macOS, I can write to a connection returned by pipe(), i.e.
"hello, world" prints here:
[1] "R version 4.3.2 (2023-10-31)"
con <- pipe("cat")
writeLines("hello, world", con)
hello, world
But in r-devel on macOS, this is silent no-op, i.e. "hello, world" does
[1] "R Under development (unstable) (2024-02-13 r85895)"
con <- pipe("cat")
writeLines("hello, world", con)
My colleague Lionel Henry confirms he sees the same results on linux.
This particular example with cat doesn't work on Windows, so I don't have
any useful observations for that OS.
You might say this is a weird example or use case. The actual usage
discovered this is the way folks read/write the clipboard on macOS using
pbcopy/pbpaste (and, in very similar ways, on linux using xsel or xclip).
This is mentioned in the "Clipboard" section of the connections help
In 4.3.2 on macOS, I can successfully roundtrip with the clipboard:
pb_write <- pipe("pbcopy")
writeChar("hello clipboard!", pb_write, eos = NULL)
pb_read <- pipe("pbpaste")
readChar(pb_read, 16)
[1] "hello clipboard!"
In r-devel, it appears that the write operation silently does nothing:
pb_write <- pipe("pbcopy")
writeChar("hello clipboard!", pb_write, eos = NULL)
pb_read <- pipe("pbpaste")
readChar(pb_read, 16)
character(0)
If the clipboard is populated through other means, I can
use readChar(pipe("pbpaste"), ...) to read the clipboard even in r-devel.
So this seems to be specific to writing to the connection.
Is this change in behaviour intentional and will it be present in the
release of R? FWIW, I did a crude search of the source of all CRAN
and there are quite a few currently using pipe() for clipboard access on
*nix.
This should be fixed now in R-devel. Thanks for the report and thanks to
Ivan for the debugging. It would be great if you could test on your end
with different examples and report any other issues.
Thanks
Tomas
-- Jenny
[[alternative HTML version deleted]]