[R-pkg-devel] Namespace problem with pre-R 3.0.0 package

Martyn Plummer plummerm at iarc.fr
Thu Mar 3 16:58:28 CET 2016


On Thu, 2016-03-03 at 16:42 +0100, Uwe Ligges wrote:
> 
> On 03.03.2016 16:08, Martyn Plummer wrote:
> > On Thu, 2016-03-03 at 15:45 +0100, Sebastien Moretti wrote:
> > > I have just found that R 2 filled by itself the NAMESPACE file
> > > with
> > > # Export all names
> > > exportPattern(".")
> > > 
> > > # Import all packages listed as Imports or Depends
> > > import(
> > >     cluster
> > > )
> > > 
> > > 
> > > So I filled the NAMESPACE file with that and gave it to R 3
> > > Now functions are found!
> > > 
> > > 
> > > Is it enough to do that?
> > 
> > Yes. Even in the latest version of R, "R CMD build" will create a
> > default NAMESPACE file like that for you if one does not exist.
> > 
> > > Is it good practice to do that?
> > 
> > No. The Writing R Extensions manual says "such broad patterns are
> > not
> > recommended for production code: it is better to list all exports
> > or
> > use narrowly-defined groups"
> > 
> > > is .onLoad ... still required?
> > 
> > Yes, if your package has compiled code (e.g. C, C++, Fortran) then
> > the
> > .onLoad function is required to load it into R.
> 
> Well, I do not use .onLoad but just the
> 
> useDynLib(packagename)
> 
> directive in the NAESPACE file.

I stand corrected. Twice.

Martyn

> Best,
> Uwe Ligges
> 
> 
> 
> 
> 
> > 
> > Martyn
> > 
> > > Regards
> > > 
> > > > Hi
> > > > 
> > > > I have issues with an R package developed in 2004.
> > > > It works perfectly in R < 3.
> > > > It can be installed in R > 3 but functions are not available.
> > > > 
> > > > Documentation I found is not really helpful for me who are not
> > > > an R
> > > > master.
> > > > I have already fixed some problems with R CMD check but
> > > > remaining
> > > > ones
> > > > are less trivial.
> > > > 
> > > > 
> > > > For what I understand - with R < 3 - everything is loaded with
> > > > this
> > > > command in an R file in the R/ directory:
> > > > .First.lib <- function(lib, pkg) library.dynam("jacop", pkg,
> > > > lib);
> > > > require("cluster")
> > > > 
> > > > Now I replaced that with
> > > > .onLoad <- function(lib, pkg) {library.dynam("jacop", pkg,
> > > > lib);
> > > > require("cluster")}
> > > > but functions are not found when called.
> > > > 
> > > > NAMESPACE exists but is empty.
> > > > 
> > > > 
> > > > Any idea how to solve that?
> > > > 
> > > > 
> > > > Regards
> > > > 
> > > > --
> > > > Sébastien Moretti
> > > 
> > > ______________________________________________
> > > R-package-devel at r-project.org mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-package-devel------------
> > > -----------------------------------------------------------
> > This message and its attachments are strictly
> > confidenti...{{dropped:8}}
> > 
> > ______________________________________________
> > R-package-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> > -----------------------------------------------------------------------
This message and its attachments are strictly confidenti...{{dropped:8}}



More information about the R-package-devel mailing list