[Rd] Packages that require other packages - How?

Duncan Murdoch murdoch at stats.uwo.ca
Wed Nov 9 21:03:26 CET 2005


On 11/9/2005 1:31 PM, Kasper Daniel Hansen wrote:
> On Nov 9, 2005, at 9:22 AM, Duncan Murdoch wrote:
> 
>> On 11/9/2005 11:50 AM, Gavin Simpson wrote:
>>> Dear list,
>>>
>>> The help page for library/require contains the following paragraph in
>>> the section "Packages that require other packages":
>>>
>>>      The source code for a package that requires one or more other
>>>      packages should have a call to 'require', preferably near the
>>>      beginning of the source, and of course before any code that uses
>>>      functions, classes or methods from the other package.
>>>
>>> Now, I'm being very dense today, but I don't know where to put such a
>>> call to require.
>>>
>>> My package has added methods for a generic function supplied by  
>>> another
>>> package. I have listed this package in the Depends field in my
>>> DESCRIPTION.
>>>
>>> What do I need to do to have the package that my package depends  
>>> on be
>>> attached when I call library or require to attach my package?
>>>
>>> Apologies for being dense...
>>
>> You can either put a call to require() in the function that needs it
>> (which would be the best solution if that function is relatively  
>> rarely
>> used), or in the startup code (in .First.lib, .onLoad, or .onAttach:
>> see the manual for the differences) if you make extensive use of the
>> other package.
> 
> But isn't it true that the introduction of the DEPENDS field in the  
> description file, largely makes calls to require obsolete? My  
> impression is that require calls are mostly used to make examples  
> execute if the depend on a suggested package. I may be wrong of course.

No, you're right, I was wrong.

Duncan Murdoch



More information about the R-devel mailing list