From ripley at stats.ox.ac.uk  Wed Aug 30 08:45:48 2006
From: ripley at stats.ox.ac.uk (ripley at stats.ox.ac.uk)
Date: Wed, 30 Aug 2006 08:45:48 +0200 (CEST)
Subject: [Rd] list and pairlist in "Writing R Extensions" (PR#9185)
Message-ID: <20060830064548.DC9C9283B0@slim.kubism.ku.dk>

It says clearly that showArgs is for use by .External, not .Call (it is 
introduced in a paragraph about the differences):

@example
showArgs <- function(...) .External("showArgs", ...)
@end example

and that is the main user error here.  Pairlists are not needed when used 
as documented.

On Wed, 30 Aug 2006, gah4 at u.washington.edu wrote:

> Full_Name: Glen Herrmannsfeldt
> Version: 2.2.1
> OS: Linux
> Submission from: (NULL) (128.95.113.77)
> 
> 
> Following the discussion in "Writing R Extensions" in section 5.8.2, there
> is no indication that showArgs expects a pairlist() instead of a list().
> 
> I was trying 
> 
> .Call("showArgs",list(one=1,two=2,three=3))
> 
> for example, and getting many core dumps.
> 
> It wasn't until reading "R Language Definition" that I found out
> about pairlist(), as needed.  

> The final example:
> 
> showArgs<-function(...) .Call("showArgs1",list(...))
> 
> looks like a list can be passed to showArgs, but in fact it is showArgs1, which
> doesn't seem to be documented at all!

It says this is an 'alternative style', not an example.

> It could be that using pairlist() in 5.8.2 would fix the problem,
> but there should be a reference to the difference between list()
> and pairlist()

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




[Rd] list and pairlist in "Writing R Extensions" (PR#9185)
ripley at stats.ox.ac.uk