Thanks. I've updated to the latest R on the mirror I used and puts stdout 12 from tcl does indeed produce output from Rterm on Windows but gives an error message from Rgui on Windows (both on Windows Vista SP1).
----------------- this works C:\tmp2>Rterm R version 2.7.0 Patched (2008-05-11 r45672) [...deleted...] > library(tcltk) Loading Tcl/Tk interface ... done > .Tcl("puts stdout 12") 12 <Tcl> > xx <- .Tcl("puts stdout 12") 12 -------------- this gives an error message C:\tmp2>Rgui R version 2.7.0 Patched (2008-05-11 r45672) [...deleted...] > library(tcltk) Loading Tcl/Tk interface ... done > xx <- .Tcl("puts stdout 12") Error in structure(.External("dotTcl", ..., PACKAGE = "tcltk"), class = "tclObj") : [tcl] can not find channel named "stdout". On Wed, May 14, 2008 at 11:09 AM, Prof Brian Ripley <[EMAIL PROTECTED]> wrote: > I assume by 'console' you mean the Rgui window. That is not where stdout is > connected -- it is not a file. As the CHANGES file for 2.7.0 says > > o When Rgui is launched from a terminal, C output from ill-formed > packages that write to stdout or stderr rather than use > Rprintf will appear in the terminal rather than being lost. > (Only on XP or later.) This can be very handy for debugging C > code in packages: just write debugging messages to stdout. > > And indeed that is what your example does. It also writes to the terminal > from Rterm. > > Tcl is no different from any other C-based add-on in this respect. > > Note though that system() does provide a way to capture stdout to the Rgui > window, so you can probably run tcl scripts via the tcl shell and capture > their output. > > On Tue, 13 May 2008, Gabor Grothendieck wrote: > >> Is it possible to use the console from within tcltk? >> >>> library(tcltk) >>> tcl("puts", "stdout", "Hello, World") >> >> Error in structure(.External("dotTclObjv", objv, PACKAGE = "tcltk"), >> class = "tclObj") : >> [tcl] can not find channel named "stdout". >>> >>> .Tcl('puts stdout "Hello, World"') >> >> Error in structure(.External("dotTcl", ..., PACKAGE = "tcltk"), class >> = "tclObj") : >> [tcl] can not find channel named "stdout". >>> >>> R.version.string # Windows Vista >> >> [1] "R version 2.7.0 RC (2008-04-17 r45367)" > > Oh dear, not even the released version! Please update as the posting guide > asked you to do before posting. > >> ______________________________________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> > > -- > Brian D. Ripley, [EMAIL PROTECTED] > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > University of Oxford, Tel: +44 1865 272861 (self) > 1 South Parks Road, +44 1865 272866 (PA) > Oxford OX1 3TG, UK Fax: +44 1865 272595 > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.