Is there any way to check the class of an ALTREP?
Hi all, By looking at the implementation of R's wrapper. I found a function ` R_altrep_inherits` that can check whether an object belongs to an ALTREP class. Even though it is a little different from what I am looking for, but it should be satisfactory for my purpose. I will suspect there is no such function in R to get the class of an ALTREP object for the SEXP struct is very compact and this less-important information might not be stored when an ALTREP object is created. Best, Jiefei
On Mon, Oct 19, 2020 at 8:37 PM Jiefei Wang <szwjf08 at gmail.com> wrote:
Thank Denes for the clarification, glad to see my package got one citation from my own question:) Also, thank Benjamin for sending many useful documents. Actually, the question is related to the SharedObject package that Benjamin has pointed to. I wanna avoid sharing an object that has already been shared, so I need to check whether an object is an ALTREP that is defined in my package. Since the ALTREP definition involves an ` R_altrep_class_t` object and a class name, I will expect to see a method defined in R to retrieve such information. I hope this can clarify my question. Best, Jiefei On Mon, Oct 19, 2020 at 5:38 PM Benjamin Christoffersen < boennecd at gmail.com> wrote:
You happened to send a link which points to the OP's own package :) I think Jiefei would like to know how one can "officially" determine if an arbitrary ALTERP object belongs to a class that he owns.
Argh, I am sorry! I did not notice that. My best bet for what I thought the question was is section 1.1.2 of R Internals where they note that: `unsigned int alt : 1; /* is this an ALTREP object? */` This is also what the ALTREP macro checks. However, I also did not notice the "... if an ALTREP object is from my package" part. I am sorry. Sincerely Yours, Benjamin Den man. 19. okt. 2020 kl. 11.25 skrev D?nes T?th <toth.denes at kogentum.hu
: Benjamin, You happened to send a link which points to the OP's own package :) I think Jiefei would like to know how one can "officially" determine if an arbitrary ALTERP object belongs to a class that he owns. Regards, Denes On 10/19/20 10:22 AM, Benjamin Christoffersen wrote:
It seems as if you can you use the ALTREP macro as done in this package:
and in base R:
The macro is defined here in Rinternals.h:
Den man. 19. okt. 2020 kl. 10.13 skrev Jiefei Wang <szwjf08 at gmail.com
:
Hi all, I would like to determine if an ALTREP object is from my package, I
see
there is a function `ALTREP_CLASS` defined in RInternal.h but its
return
value is neither a `R_altrep_class_t` object nor an STRSXP
representing a
class name. I do not know how to correctly use it. Any suggestions?
Thanks,
Jiefei
[[alternative HTML version deleted]]
______________________________________________ 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