[Rd] library(tcltk) v. SIGPIPE BUG (?!?)
Martin Maechler
maechler at stat.math.ethz.ch
Wed Dec 12 09:02:57 CET 2012
>>>>> "CM" == Cook, Malcolm <MEC at stowers.org>
>>>>> on Tue, 11 Dec 2012 16:50:58 -0600 writes:
CM> Excellent, thanks for the workaround, that gets _me_ by, for now.....
CM> ~Malcolm
>> -----Original Message-----
>> From: Gabor Grothendieck [mailto:ggrothendieck at gmail.com]
>> Sent: Tuesday, December 11, 2012 2:40 PM
>> To: Cook, Malcolm
>> Cc: r-discussion at listserv.stowers.org; r-devel at r-project.org; phgrosjean at sciviews.org; Blanchette, Marco
>> Subject: Re: library(tcltk) v. SIGPIPE BUG (?!?)
>>
>> On Tue, Dec 11, 2012 at 3:14 PM, Cook, Malcolm <MEC at stowers.org> wrote:
>> > Hi R-devel, tcltk devel, and sqldf devel,
>> >
>> > The transcript below shows how loading the tcl/tk library in under R causes subprocesses to ignore SIGPIPE.
>> >
>> > I am including the developer of the (wonderful) sqldf package since it requires tcltk and you might like to make this dependence
>> optional to the user (at least until this is fixed in tcltk).
>> >
>> > Am I mistaken in calling this a 'bug'?
well, at least an unfortunate feature ;-)
>> > Any insights appreciated!
Could it be that the problem in the severity you've reported it,
is Mac specific ?
For me, on Linux (R 2.15.2 patched):
> system(intern=TRUE,'yes | head ')
[1] "y" "y" "y" "y" "y" "y" "y" "y" "y" "y"
> require(tcltk)
Loading required package: tcltk
Loading Tcl/Tk interface ... done
> system(intern=TRUE,'yes | head ')
yes: standard output: Broken pipe
yes: write error
[1] "y" "y" "y" "y" "y" "y" "y" "y" "y" "y"
> system(intern=TRUE,'yes | head ')
yes: standard output: Broken pipe
yes: write error
[1] "y" "y" "y" "y" "y" "y" "y" "y" "y" "y"
> system(intern=TRUE,'yes | head -6 ')
yes: standard output: Broken pipe
yes: write error
[1] "y" "y" "y" "y" "y" "y"
So things continue to ``work'' there,
although with the extra "warning" messages.
>> >
>> > Thanks,
>> >
>> > Malcolm Cook
>> > Computational Biology - Stowers Institute for Medical Research
>> >
>> >
>> >> system(intern=TRUE,'yes | head ')
>> > [1] "y" "y" "y" "y" "y" "y" "y" "y" "y" "y"
>> >> library(tcltk)
>> > Loading Tcl/Tk interface ... done
>> >> system(intern=TRUE,'yes | head ')
>> >
>> > ### this now does not return to the prompt and Looking at 'top' shows that 'yes' is running until I hit ctrl-c, after which it returns.
>> > C-c C-c
>> > [1] "y" "y" "y" "y" "y" "y" "y" "y" "y" "y"
>> >
>> >
>> >> sessionInfo()
>> > R version 2.15.1 (2012-06-22)
>> > Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>> >
>> > locale:
>> > [1] C
>> >
>> > attached base packages:
>> > [1] tcltk stats graphics grDevices utils datasets methods base
>> >>
>> >
>> >
>>
>> As a workaround specify the "R" engine instead of the "tcl" engine in
>> wihch case gsubfn (which is called by sqldf) won't try to use the
>> tcltk package:
>>
>> options(gsubfn.engine = "R")
>> library(sqldf)
>>
>>
>>
>> --
>> Statistics & Software Consulting
>> GKX Group, GKX Associates Inc.
>> tel: 1-877-GKX-GROUP
>> email: ggrothendieck at gmail.com
CM> ______________________________________________
CM> R-devel at r-project.org mailing list
CM> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list