From ggrothendieck at gmail.com  Tue Dec 11 21:39:41 2012
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Tue, 11 Dec 2012 15:39:41 -0500
Subject: [Rd] library(tcltk) v. SIGPIPE BUG (?!?)
In-Reply-To: <2C40E43D1F7A56408C4463FD245DDDF90790E16BC1@EXCHMB-02.stowers-institute.org>
References: <2C40E43D1F7A56408C4463FD245DDDF90790E16BC1@EXCHMB-02.stowers-institute.org>
Message-ID: <CAP01uRn4fwmxpMwNEJ+E9AgkyQjBVPZxhx-=2BVH-+_BgYfYXA@mail.gmail.com>

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'?
>
> Any insights appreciated!
>
> 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



[Rd] library(tcltk) v. SIGPIPE BUG (?!?)
Gabor Grothendieck