[Rd] namespace crash on S3method("as.ff",function)

Duncan Murdoch murdoch at stats.uwo.ca
Mon Nov 5 14:36:53 CET 2007


On 11/5/2007 7:41 AM, Jens Oehlschlägel wrote:
> Dear all,
> 
> I have defined a generic as.ff(x, ...) and a method as.ff.function(x, ...) which converts a standard R function x into a chunked version operating on large ff objects. Everything works fine, but when registering 
> 
> S3method("as.ff",function)
> 
> in NAMESPACE, the installation fails with some kind of parsing error:
> 
>   adding build stamp to DESCRIPTION
>   installing NAMESPACE file and metadata
> Fehler in parse(nsFile) : Unerwartetes ')' bei
> 348:
> 349: S3method("as.ff",function)
> Calls: <Anonymous> -> parseNamespaceFile -> parse
> Ausf³hrung angehalten
> make[2]: *** [nmspace] Error 1
> make[1]: *** [all] Error 2
> make: *** [pkg-ff] Error 2
> *** Installation of ff failed ***
> 
> Is this a bug? Any ideas?

"function" is a reserved keyword for the parser.  Even though you don't 
execute a NAMESPACE file, it's parsed by the standard parser, and that's 
causing the problem.  (You couldn't have a function call that looked 
like that without a parse error, either.)

I don't have time to explore this today, but what I'd do is try

S3method("as.ff", `function`)

or

S3method("as.ff","function")

first, and if those don't fix it and you don't get a better suggestion, 
then report this as a design bug.

Duncan Murdoch

> Best regards
> 
> 
> Jens
> 
> 
> P.S. with as.ff() we can do things like
> ffx <- as.ff(x) # as.ff.default() turns a standard R object into an ff object stored on disk
> as.ff(log)(ffx) # as.ff.function() turns 'log' into a function that we can call on ffx: taking the log of an almost arbitrarily large object
> 
> 
>> version
>                _                           
> platform       i386-pc-mingw32             
> arch           i386                        
> os             mingw32                     
> system         i386, mingw32               
> status                                     
> major          2                           
> minor          6.0                         
> year           2007                        
> month          10                          
> day            03                          
> svn rev        43063                       
> language       R                           
> version.string R version 2.6.0 (2007-10-03)
>



More information about the R-devel mailing list