As far as I can tell from the original post, Deepayan asked for a way to find a package's namespace environment (rather than the package environment, <namespace:foo> not <package:foo>), so the subject line is subject to misinterpretation.
On Mon, 23 Oct 2006, Prof Brian Ripley wrote: > On Sun, 22 Oct 2006, Seth Falcon wrote: > >> Seth Falcon <[EMAIL PROTECTED]> writes: >>> Perhaps: >>> >>> R_FindNamespace(mkString(where)) >> >> Sorry, this won't help you for package-level code as this function is >> part of the internal use only API. It would be nice to have access to >> it or a similar function from C in package code. > > Hmm, it is declared in Rinternals.h, which is the public header for > manipulating R objects at C level. As such it is available to packages, but > as it is not documented in 'Writing R Extensions' it is subject to change. > > R_FindNamespace is essentially the same code as Duncan M provided, so it is a > pretty simple function. (It still contains a test that namespaces are > supported, and that seems long overdue for removal.) I think Deepayan's original enquiry was about getting hold of a namespace environment from within an already loaded namespace. That can be done entirely at C level, as we don't have the complication of possibly loading the namespace. Just val = findVarInFrame(R_NamespaceRegistry, install("pkgname")); does that job, with val == R_UnboundValue should the namespace not be loaded. AFAICS, everything here is available to a package writer, and this is equally undocumented. -- Brian D. Ripley, [EMAIL PROTECTED] 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 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel