[datatable-help] Check failures in data.table 1.6.5

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Aug 25 11:51:12 CEST 2011


You were explicitly asked not to use a list as the maintainer address: 
'Writing R Extensions' says

   The mandatory `Maintainer' field should give a single name with a
   valid (RFC 2822) email address in angle brackets (for sending bug
   reports etc.). It should not end in a period or comma. For a public
   package it should be a person, not a mailing list and not a corporate
   entity: do ensure that it is valid and will remain valid for the
   lifetime of the package.

Also, you don't have any control over the lifetime of R-forge mailing 
lists.

This version fails on all my platforms with

Error in .Call("Rf_setAttrib", x, "sorted", cols, PACKAGE = "data.table") :
   C symbol name "Rf_setAttrib" not in DLL for package "data.table"
Calls: data.table -> eval -> eval -> setkey -> .Call

Which is of course correct.  It seems that on Linux when R is (not the 
default) built as a shared library, the lookup mechanism leaks entry 
points from libR.so.  But this does not happen when R is not built as 
a shared library on Linux, nor on Windows (where it is), and this will 
start showing up on the CRAN check page in an hour or so.

There is no guarantee that the internal symbols are remapped, nor that 
the remapping will remain unchanged (and historically it has been 
changed).  setAttrib is intended only to be called as such after 
including the appopriate header.

You need to write a wrapper in your DLL, and call that.  However, to 
avoid such errors in future, I would urge you to register the symbols 
in your DLL and disable search (see 'Writing R Extensions' and the 
examples of most of the standard packages).  This also has substantial 
performance advantages.

Brian Ripley

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


More information about the datatable-help mailing list