1.8.0 on Unix: interrupting huge print()s ??
Needs a call to R_CheckUserInterrupt at the appropriate place. The only platform that currently can interrupt a long print seems to be Rgui on Windows because of an event poll in the console output function. One possibility is to put in a check every 100 calls, say, to Rvprintf in printutils.c. I'll check that out and commit to the patches branch unless anyone sees a problem or a better place to check. luke
On Fri, 10 Oct 2003, Martin Maechler wrote:
NEWS for R 1.8.0 has
USER-VISIBLE CHANGES
<......>
o On Unix-like systems interrupt signals now set a flag that is
checked periodically rather than calling longjmp from the
signal handler. This is analogous to the behavior on Windows.
This reduces responsiveness to interrupts but prevents bugs
caused by interrupting computations in a way that leaves the
system in an inconsistent state. It also reduces the number
of system calls, which can speed up computations on some
platforms and make R more usable with systems like Mosix.
and this has already caused grief here
(actually it has several days ago, when I switched our users to
R-1.8.0beta __ BUT THEY DIDN'T TELL ANY R DEVELOPER __ )
for a user who does use *large* matrices.
When accidentally calling print() {implicitly}, we have been
used here to press CTRL+c (twice in Emacs ESS!) for stopping the
output.
This no longer works in R 1.8.0 at least on our unix platforms.
To reproduce, type
cbind(1:1e6)
and try to cut it short (it only takes a minute or so,
whereas our user here had a matrix that needed more than 10
minutes of screen output !)
______________________________________________ R-devel@stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-devel
Luke Tierney University of Iowa Phone: 319-335-3386 Department of Statistics and Fax: 319-335-3017 Actuarial Science 241 Schaeffer Hall email: luke@stat.uiowa.edu Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu