From simon.urbanek at r-project.org  Sat Jan 30 18:02:04 2010
From: simon.urbanek at r-project.org (Simon Urbanek)
Date: Sat, 30 Jan 2010 12:02:04 -0500
Subject: [Rd] Stop packages and datasets to be loaded on startup.
In-Reply-To: <4B645975.5040101@citycable.ch>
References: <4B645975.5040101@citycable.ch>
Message-ID: <AC6F0479-121D-4070-ABE4-303FAB6AA7B7@r-project.org>


On Jan 30, 2010, at 11:08 AM, Guillaume Yziquel wrote:

> Hi.
> 
> I would like to know how to start an embedded R session, and avoid datasets and the standard library packages to be loaded on startup.
> 
> I've been looking at littler's code (so this is partly a question to Dirk Eddelbuettel...):
> 
>>        /* We don't require() default packages upon startup; rather, we
>>         * set up delayedAssign's instead. see autoloads().
>>         */
>>        if (setenv("R_DEFAULT_PACKAGES","NULL",1) != 0){
>>                perror("ERROR: couldn't set/replace R_DEFAULT_PACKAGES");
>>                exit(1);
>>        }
> 
> The code above happens before Rf_initEmbeddedR in littler.
> 
> So I gather that just setting R_DEFAULT_PACKAGES to NULL should be OK. But then, what is the rather complicated stuff in the autoload() function in littler.c for?
> 
> And concerning datasets, how do you avoid loading them?
> 

Setting R_DEFAULT_PACKAGES to NULL makes sure that default packages are not loaded. Note that "datasets" are not loaded at all -- you can load the datasets package which will make them available, but they are not really "loaded". The minimal setup is simply

R_DEFAULT_PACKAGES=NULL R --vanilla

However, it's your responsibility to load any packages that your code needs in that case.

Cheers,
Simon



[Rd] Stop packages and datasets to be loaded on startup.
Simon Urbanek