From david.hastie at rsimony.com  Wed Jul 18 19:36:44 2012
From: david.hastie at rsimony.com (David Hastie)
Date: Wed, 18 Jul 2012 18:36:44 +0100
Subject: [Rd] Warning when sourcing file after require
Message-ID: <CAGf+n7V+zUJ1dBUsGmTXoa1nBNbMv=G6TbveMXCjOV7Nzb5T0Q@mail.gmail.com>

Hi

I have recently upgraded to R 2.15.1. Since the upgrade, I am getting
some odd behaviour that I don't understand. If I source a file which
has a function with a require (or library) statement in it, then the
first time I source it behaves as expected. If I then call the
function (so that the require statement is evaluated) the function
also runs ok. However, if I then subsequently try to source the file
again I get an .Internal(eval.with.vis) warning.

At first I obviously thought it must be an error of mine in the file
containing the functions I had written. However, subsequent tests show
that even if the following code

foo<-function(){
   require(XML)
   cat("This is a test fn\n")
}

is put in the file foo.R, then running the following code gives the warning.

> source('foo.R')
> foo()
Loading required package: XML
This is a test fn
> source('foo.R')
Warning message:
In eval.with.vis(ei, envir) :
  .Internal(eval.with.vis) should not be used and will be removed soon

The key part to this is the inclusion of the require statement. If the
require statement was not in the function, then there are no warnings.
I experience this behaviour on my desktop running Ubuntu 12.04 and on
my Mac running OSX. From looking at the change log of 2.15.1 I notice
that the way files are sourced has changed (and seems to relate to
this warning), but it is not clear to me what if anything this means I
should change.

I would be grateful for any tips.

Kind regards
Dave

--
David Hastie, Ph.D.



[Rd] Warning when sourcing file after require
David Hastie