From ripley at stats.ox.ac.uk  Fri Aug  5 15:46:42 2005
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Fri, 5 Aug 2005 14:46:42 +0100 (BST)
Subject: [Rd] object.size() bug?
In-Reply-To: <42F36164.6070106@stats.uwo.ca>
References: <Pine.OSF.4.58.0508040019540.201601@odin.mdacc.tmc.edu>
	<17139.22973.592057.275242@stat.math.ethz.ch>
	<42F35E15.4000105@jhsph.edu> <42F36164.6070106@stats.uwo.ca>
Message-ID: <Pine.LNX.4.61.0508051446060.26821@gannet.stats>

On Fri, 5 Aug 2005, Duncan Murdoch wrote:

> On 8/5/2005 8:39 AM, Roger D. Peng wrote:
>> Would it make sense for 'object.size()' to do the same thing for
>> external pointers as it does for environments?
>
> I would think so.  For those who haven't looked, this returns the size
> of the SEXP for the environment and its attributes, but does not attempt
> to work out the size of the contents of the environment.  This makes
> sense, because environments are references.  External pointers are also
> references, so their object size should be the size of the pointer
> (which is probably 28 bytes; R pointers carry a lot of baggage!), with
> no attempt to say anything about the external thing they point to.

I think it might also make sense for the code to warn this had been done.

>
> Duncan Murdoch
>
>
>> -roger
>>
>> Martin Maechler wrote:
>>>>>>>> "Paul" == Paul Roebuck <roebuck at odin.mdacc.tmc.edu>
>>>>>>>>    on Thu, 4 Aug 2005 00:29:03 -0500 (CDT) writes:
>>>
>>>
>>>     Paul> Can someone confirm the following as a problem:
>>>
>>> Yes, I can.  No promiss for a fix in the very near future
>>> though.
>>>
>>> Martin Maechler, ETH Zurich
>>>
>>>
>>>>> Can someone confirm the following as a problem:
>>>>>
>>>>> R> setClass("Foo", representation(.handle = "externalptr"))
>>>>> R> object.size(new("Foo"))
>>>>> Error in object.size(new("Foo")) : object.size: unknown type 22
>>>>> R> R.version.string
>>>>> [1] "R version 2.1.1, 2005-06-20"
>>>>>
>>>>> R-2.1.1/src/include/Rinternals.h
>>>>> #define EXTPTRSXP   22    /* external pointer */
>>>>>
>>>>> R-2.1.1/src/main/size.c:
>>>>> objectsize(SEXP s) has no case for external pointers
>>>
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
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



[Rd] object.size() bug?
Prof Brian Ripley