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

Sebastien Moretti sebastien.moretti at unil.ch
Fri Mar 4 08:51:37 CET 2016


>>> 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.

Much simpler like that and I can remove the zzz.R file with .onLoad ...

Thanks again


Is useDynLib enough for package with compiled code?

> 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



More information about the R-package-devel mailing list