From ggrothendieck at gmail.com  Fri Oct 12 09:04:30 2007
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Fri, 12 Oct 2007 03:04:30 -0400
Subject: [Rd] LazyLoad changes the class of objects
Message-ID: <971536df0710120004k236f017je01153dcf55869dd@mail.gmail.com>

Consider a package that this DESCRIPTION file:

---
Package: tester
Version: 0.1-0
Date: 2007-10-12
Title: Prototype object-based programming
Author: Gabor Grothendieck
Maintainer: Gabor Grothendieck <ggrothendieck at gmail.com>
Description: test
LazyLoad: true
Depends: R (>= 2.6.0)
License: GPL2
---

and a single subdirectory R containing tester.R which contains two lines:

---
e <- new.env()
class(e) <- c("x", "environment")
---

Now issue these commands:

> library(tester)
> class(tester::e)
[1] "environment"

> R.version.string # Windows Vista
[1] "R version 2.6.0 Patched (2007-10-08 r43124)"


Note that the class of e was changed from what we set it to !!!

On the other handn, if we omit LazyLoad: true from the DESCRIPTION file
then it retains its original class.

> # removed LazyLoad: true line from DESCRIPTION and reinstall pkg
> # now its ok
> library(tester)
> class(tester::e)
[1] "x"           "environment"



[Rd] LazyLoad changes the class of objects
Gabor Grothendieck