From Hadley's C best practices (http://r-pkgs.had.co.nz/src.html#c-best-practices):
> Like with C++, whenever you use C code in your package, you should unload the > DLL when the package is unloaded: .onUnload <- function (libpath) { library.dynam.unload("mypackage", libpath) } Writing R Extensions on the other hand doesn't even mention this (AFAIK). I can see how it would be polite to unload the dlls, but doing so seems to cause some weird problems for me with packages that are loaded/unloaded/reloaded. Additionally, there are some mentions that suggest maybe unloading isn't required. From ?library.dynam: > Note that whether or not it is possible to unload a DLL and then reload a > revised version of the same file is OS-dependent: see the ‘Value’ section of > the help for dyn.unload. though this shouldn't affect objects that are not modified. Then there is this comment from Brian Ripley in R-devel (https://stat.ethz.ch/pipermail/r-devel/2010-November/059062.html): > Having said all that, my experience is that unloading the DLL often does not > help if you need to load it again (and that is why e.g. tcltk does not unload > its DLL). Is it acceptable for packages to leave the C libraries loaded when they are unloaded? I'm on R 3.1.1 on a Mac OS X, though this question is not specific to my system. I originally asked this on SO (http://stackoverflow.com/questions/26691878/must-r-packages-unload-dynamic-libraries-when-they-unload), but got crickets. [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel