From maechler at stat.math.ethz.ch  Fri Apr 23 10:23:42 2004
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Fri Apr 23 10:23:44 2004
Subject: [Rd] trellis.device in .First (PR#6812)
In-Reply-To: <Pine.LNX.4.44.0404230809390.1166-100000@gannet.stats>
References: <Pine.LNX.4.44.0404230741440.1166-100000@gannet.stats>
	<Pine.LNX.4.44.0404230809390.1166-100000@gannet.stats>
Message-ID: <16520.53902.315687.116655@gargle.gargle.HOWL>

>>>>> "BDR" == Prof Brian Ripley <ripley@stats.ox.ac.uk>
>>>>>     on Fri, 23 Apr 2004 08:21:34 +0100 (BST) writes:

	  <........>

    BDR> It is a matter for discussion (with the lattice
    BDR> maintainer) whether trellis.device should help you out
    BDR> here by importing the devices from package graphics.  I
    BDR> think adding (conditionalized on the platform)

    BDR> importFrom(graphics, windows, postscript, pdf, pictex,
    BDR>            win.metafile, win.print, png, jpeg, bmp, xfig, bitmap)

    BDR> to its NAMESPACE might be worth considering.

    BDR> Alternatively, device.call <- get(device) could be put
    BDR> in a try call, followed by a try on
    BDR> getFromNamespace("graphics", device).

That's a very good idea, I'd support quite a bit.

I think I would go with the alternative approach
(where you probably meant to say  device <- getOption("device") first?),
since the importFrom(..) approach leeds to a somewhat tedious maintenance
effort to keep up the list of available devices for the different platforms
(For MacOS X one has to include quartz() only in the situations
 where it's available) where as Deepayan (the lattice
maintainer) could rely on getOption("device") to be ok
{and as you proposed would be on guard using try() or its newer siblings}.

Martin

    BDR> BDR

    BDR> On Fri, 23 Apr 2004, Prof Brian Ripley wrote:

    >> 1) On the first point, please do read the NEWS file for R
    >> 1.9.0.
    >> 
    >> .Rprofile and .First have always been run before the
    >> default packages are loaded in .First.sys, to allow them
    >> to be changed.
    >> 
    >> So this *is* a documented change in behaviour, not a bug.
    >> If I do
    >> 
    >> .First <- function() {library(lattice); trellis.device()}
    >> 
    >> This happens on all platforms.  You need
    >> 
    >> .First <- function() {library(graphics);
    >> library(lattice); trellis.device()}
    >> 
    >> That is true of starting any graphics device in .Rprofile
    >> or .First.


    BDR> -- Brian D. Ripley, ripley@stats.ox.ac.uk Professor of
    BDR> Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
    BDR> University of Oxford, Tel: +44 1865 272861 (self) 1
    BDR> South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG,
    BDR> UK Fax: +44 1865 272595

    BDR> ______________________________________________
    BDR> R-devel@stat.math.ethz.ch mailing list
    BDR> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel


[Rd] trellis.device in .First (PR#6812)
Martin Maechler