Martin Morgan
2014-Feb-21 03:41 UTC
[Rd] instantiating a reference class with an initialize() method from .onLoad fails
PkgA has a single R/binding.R file containing .A <- setRefClass("A", methods=list(initialize=function(...) {})) .onLoad <- function(...) .A() A NAMESPACE with import(methods) exportClasses("A") and DESCRIPTION Package: PkgA Type: Package Title: Documenting reference classes Version: 0.0.1 Date: 2012-08-05 Author: Martin Morgan Maintainer: Martin Morgan <mtmorgan at fhcrc.org> Description: This package implements a simple 'reference' class Depends: methods Imports: methods License: Apache License 2.0 Collate: binding.R R CMD INSTALL PkgA results in p$ R --vanilla CMD INSTALL PkgA * installing to library ?/home/mtmorgan/R/x86_64-unknown-linux-gnu-library/3.1? * installing *source* package ?PkgA? ... ** R ** preparing package for lazy loading ** help No man pages found in package ?PkgA? *** installing help indices ** building package indices ** testing if installed package can be loaded Error : .onLoad failed in loadNamespace() for 'PkgA', details: call: initialize(value, ...) error: attempt to apply non-function Error: loading failed Execution halted ERROR: loading failed * removing ?/home/mtmorgan/R/x86_64-unknown-linux-gnu-library/3.1/PkgA? * restoring previous ?/home/mtmorgan/R/x86_64-unknown-linux-gnu-library/3.1/PkgA? Having read https://stat.ethz.ch/pipermail/r-devel/2013-October/067636.html I used setLoadAction(function(nmspc) .A()) in place of .onLoad, and had success. However, a more complicated scenario, https://stat.ethz.ch/pipermail/bioc-devel/2014-February/005271.html where a data file contains an instance of a class defined in a package that imports PkgA, fails during R CMD check or in an R session with env = new.env(); load("data.Rdata", env); get("data", env) including when .A() is eval() or evalq()'d in envir=nmspc. Thanks for any hints. Martin -- Computational Biology / Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109 Location: Arnold Building M1 B861 Phone: (206) 667-2793
Maybe Matching Threads
- S4 method dispatch sometimes leads to incorrect when object loaded from file?
- Namespace/inheritance problem in S4 methods for a union class
- S4 method dispatch sometimes leads to incorrect when object loaded from file?
- .onLoad failing because could not find function "loadMethod"
- S4 method dispatch sometimes leads to incorrect when object loaded from file?