[Rd] certain pipe() use cases not working in r-devel

Tomas Kalibera tom@@@k@||ber@ @end|ng |rom gm@||@com
Thu Feb 15 17:02:02 CET 2024


On 2/14/24 23:43, Jennifer Bryan wrote:
> Hello,
>
> I've noticed a specific type of pipe() usage that works in released R, but
> 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:
>
>> R.version.string
> [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 not
> print:
>
>> R.version.string
> [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 where I
> 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 topic.
>
> 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 next
> release of R? FWIW, I did a crude search of the source of all CRAN packages
> 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]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list