From Martin Maechler <maechler@stat.math.ethz.ch>  Fri Aug 22 07:40:25 1997
From: Martin Maechler <maechler@stat.math.ethz.ch> (Martin Maechler)
Date: Fri, 22 Aug 1997 08:40:25 +0200
Subject: R-alpha: options [--no-*-file] AND --dont-stop-on-error-if-batch
In-Reply-To: <199708212102.XAA03944@aragorn.ci.tuwien.ac.at> (message from
 Kurt Hornik on Thu, 21 Aug 1997 23:02:06 +0200)
Message-ID: <199708220640.IAA20151@sophie.ethz.ch>

>>>>> "Kurt" == Kurt Hornik <hornik@ci.tuwien.ac.at> writes:

>>>>> Thomas Lumley writes:
    >> On Tue, 12 Aug 1997, Martin Maechler wrote:
    MM>  As Thomas Lumley has noted before, the behavior in 'batch mode'
    MM> has changed; namely "Termination upon 'error'".
    MM> 
    MM> I think this is THE good default behavior for "batch mode".
    MM> However 1) for several purposes I'd very much want an option to
    MM> change this default behavior.
    >> Hear, hear!

    MM>  I think it'd be very neat then if options(error.stop = FALSE)
    MM> actually translated all errors [stop(.)] to warnings [warning()].
    MM> 

    >> I'm not convinced.  Being able to make warnings fatal is a good
    >> option, but being able to continue after errors may make no sense.
    >> How do you continue after subscript out of bounds, or argument
    >> missing with no default, or memory exhausted or ...

    >> You may well need to jump back to the top level before it makes
    >> sense to continue.  On the other hand, once at the top level it is
    >> certainly possible to proceed, and so there should be an option to
    >> do it.

    Kurt> There is an obvious trade-off between having a lot of flexibility
    Kurt> and simple too many options :-)

I don't quite see (the ":-)").
The non-expert user just changes options like 'digits' and 'width'
and leaves the others alone.

    Kurt> I am not sure about making warnings fatal.  E.g., code for
    Kurt> chisquare tests usually displays a warning if the approximation
    Kurt> may be bad.  That should never be fatal, though ...
The option exists in S.
It can be very useful for debugging purposes (and that't about it):
If you call a top level function  / a for loop which in certain
circumstances produces warnings that look funny to you, and somehow it's
hard to detect when / why the warnings are produced.

Now you (temporarily) make warnings fatal, and also add something like
options(error = 'dump.frames')  or an "on.exit(browser())".
You will now be able to quickly find and debug the circumstances under
which the warnings were produced.....


    Kurt> Re termination upon error, couldn't there be situations with a
    Kurt> huge simulation loop where one could still do something useful
    Kurt> after e.g. running out of memory?
sure.
As I (and others) said, there are other situations where you just want to
run a source.R file through R and you don't care if somewhere an
unimportant variable is not defined, a graphics device is not open,....

    Kurt> If I unterstand Martin correctly, the extra options() come into
    Kurt> being only because command-line options are hard to port to
    Kurt> point-and-click interfaces ...

This would be the main reason.

I think it's just 'neater' to have many things as part of R core,
instead of part of the OS-interface [to where command line options belong].

On the other hand, currently I (still) can't imagine myself moving off an
Unix based OS. Therefore, I'd be happy with a command line option which
turns off 'stop on error' in batch mode.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


R-alpha: options [--no-*-file] AND --dont-stop-on-error-if-batch
Martin Maechler