Dear all,

Consider this code:
>library("data.table")
>unloadNamespace('data.table')

It produces some warnings
Warning in FUN(X[[1L]], ...) :
  Created a package name, ‘2013-10-29 17:05:51’, when none found
Warning in FUN(X[[1L]], ...) :
  Created a package name, ‘2013-10-29 17:05:51’, when none found
...

The warning is produced by the getPackageName() function.
e.g.
getPackageName(parent.env(getNamespace('data.table')))

I was wondering what could be done to get rid of these warnings, which I
believe in the case "unloadNamespace" case are irrelevant.

The stack of calls is:
# where 3: sapply(where, getPackageName)
# where 4: findClass(what, classWhere)
# where 5: .removeSuperclassBackRefs(cl, cldef, searchWhere)
# where 6: methods:::cacheMetaData(ns, FALSE, ns)
# where 7: unloadNamespace(pkgname)

So for instance:
>findClass('data.frame', getNamespace('data.table'))
generates a warning which once again seems irrelevant.

On the top of my head, I could imagine adding an extra argument to
getPackageName, say warning = TRUE, which would be set to FALSE in the
getPackageName call in findClass() body.

I also wonder if in the case of import namespaces, getPackageName() could
not find a more appropriate name:
>parent.env(getNamespace('data.table'))
<environment: 0x7f6ce4d04040>
attr(,"name")
[1] "imports:data.table"

This namespace has a name that might be used to generate the package name.

My question is: what should be done ?

Thanks for your attention.

Karl Forner

	[[alternative HTML version deleted]]

