Displaying 20 results from an estimated 164 matches for "altreps".
Did you mean:
altrep
2019 May 16
3
ALTREP: Bug reports
...bject. If we change n from 100 to 10 and check the
>> internal again, alt2 will not get wrapped.
>
>
> Right, so this is a misunderstanding (which may be the fault of sparse
> documentation on our part); wrapper is one particular ALTREP class, its
> not a fundamental aspect of ALTREPs themselves. Most ALTREP objects do not
> have wrappers. See, e.g.,
>
> > .Internal(inspect(1:4))
>
> @7fb727d6be50 13 INTSXP g0c0 [NAM(3)] 1 : 4 (compact)
>
>
> That's an ALTREP with no wrapper (a compact sequence). The wrapper ALTREP
> class is for attaching meta...
2019 May 16
3
ALTREP: Bug reports
Hello,
I have encountered two bugs when using ALTREP APIs.
1. STDVEC_DATAPTR
>From RInternal.h file it has a comment:
/* ALTREP support */
> void *(STDVEC_DATAPTR)(SEXP x);
However, this comment might not be true, the easiest way to verify it is to
define a C++ function:
void C_testFunc(SEXP a)
> {
> STDVEC_DATAPTR(a);
> }
and call it in R via
> a=1:10
> >
2019 Jun 04
2
[External] undefined symbol errors when compiling package using ALTREP API
...ted with by
> non-ALTREP-implementing package code, *more-or-less *exactly as standard
> (non-AR) SEXPs are: via the published C API. The more or less comes from
> the fact that in some cases, doing things that are good ideas on standard
> SEXPS will work, but may not be a good idea for ALTREPs.
>
> The most "low-hanging-fruit" example of something that was best practice
> for standard vectors but is not a good idea for ALTREP vectors is grabbing
> a DATAPTR and iterating over the values without modification in a tight
> loop. This will work (absent allocation f...
2019 Jun 04
2
[External] undefined symbol errors when compiling package using ALTREP API
thanks for clearing that up, so these methods are actually not meant to be
exported on Windows and OSX?
Some of the ALTREP methods that now use 'attribute_hidden' would be very
useful to packages that aim to be ALTREP aware, should the currently
(exported) API be considered final?
thanks for your time & best,
Mark
On Tue, Jun 4, 2019 at 6:52 PM Tierney, Luke <luke-tierney at
2024 Apr 22
2
Is ALTREP "non-API"?
Hi Yutani,
ALTREP is part of the official R api, as illustrated by the presence of
src/include/R_ext/Altrep.h. Everything declared in the header files in that
directory is official API AFAIK (and I believe that is more definitive than
the manuals).
The documentation of ALTREP has lagged behind its implementation
unfortunately, which may partially my fault for not submitting doc
patches for it
2024 Apr 22
1
Is ALTREP "non-API"?
Thanks, Hernando,
Sorry, "API" is a bit confusing term in this context, but what I want to
discuss is the "API" that Writing R Extension defines as quoted in my
previous email. It's probably different from an ordinary sense when we
casually say "R C API".
You might wonder why I care about such a difference. This is because
calling a "non-API" is
2020 Oct 07
2
Coercion function does not work for the ALTREP object
Hi all,
The coercion function defined for the ALTREP object will not be called by R
when an assignment operation implicitly introduces coercion for a large
ALTREP object.
For example, If I create a vector of length 10, the ALTREP coercion
function seems to work fine.
```
> x <- 1:10
> y <- wrap_altrep(x)
> .Internal(inspect(y))
@0x000000001f9271c0 13 INTSXP g0c0 [REF(2)] I am
2019 May 16
0
ALTREP: Bug reports
...om 100 to 10 and check the
>>> internal again, alt2 will not get wrapped.
>>
>>
>> Right, so this is a misunderstanding (which may be the fault of sparse
>> documentation on our part); wrapper is one particular ALTREP class, its
>> not a fundamental aspect of ALTREPs themselves. Most ALTREP objects do not
>> have wrappers. See, e.g.,
>>
>> > .Internal(inspect(1:4))
>>
>> @7fb727d6be50 13 INTSXP g0c0 [NAM(3)] 1 : 4 (compact)
>>
>>
>> That's an ALTREP with no wrapper (a compact sequence). The wrapper ALTREP...
2019 May 16
0
ALTREP: Bug reports
...gt; always wrap an ALTREP object. If we change n from 100 to 10 and check the
> internal again, alt2 will not get wrapped.
Right, so this is a misunderstanding (which may be the fault of sparse
documentation on our part); wrapper is one particular ALTREP class, its
not a fundamental aspect of ALTREPs themselves. Most ALTREP objects do not
have wrappers. See, e.g.,
> .Internal(inspect(1:4))
@7fb727d6be50 13 INTSXP g0c0 [NAM(3)] 1 : 4 (compact)
That's an ALTREP with no wrapper (a compact sequence). The wrapper ALTREP
class is for attaching metadata (known sortedness, known lack of NAs...
2024 Apr 22
2
Is ALTREP "non-API"?
> On Apr 22, 2024, at 7:37 PM, Gabriel Becker <gabembecker at gmail.com> wrote:
>
> Hi Yutani,
>
> ALTREP is part of the official R api, as illustrated by the presence of
> src/include/R_ext/Altrep.h. Everything declared in the header files in that
> directory is official API AFAIK (and I believe that is more definitive than
> the manuals).
>
That is not true
2019 Aug 28
3
What is the best way to loop over an ALTREP vector?
Hi devel team,
I'm working on C/C++ level ALTREP compatibility for a package. The package
previously used pointers to access the data of a SEXP, so it would not work
for some ALTREP objects which do not have a pointer. I plan to rewrite the
code and use functions like get_elt, get_region, and get_subset to access
the values of a vector, so I have a few questions for ALTREP:
1. Since an
2024 Apr 22
1
Is ALTREP "non-API"?
Hello, I don't believe it is illegal, as ALTREP "implements an abstraction
underneath the C API". And is "compatible with all code which uses the API".
Please see slide deck by Gabriel Becker, with L Tierney, M Lawrence and T
Kalibera.
https://bioconductor.org/help/course-materials/2020/BiocDevelForum/16-ALTREP
.pdf
ALTREP framework implements an abstraction underneath
2019 Jun 04
0
[External] undefined symbol errors when compiling package using ALTREP API
...signed to be interacted with by
non-ALTREP-implementing package code, *more-or-less *exactly as standard
(non-AR) SEXPs are: via the published C API. The more or less comes from
the fact that in some cases, doing things that are good ideas on standard
SEXPS will work, but may not be a good idea for ALTREPs.
The most "low-hanging-fruit" example of something that was best practice
for standard vectors but is not a good idea for ALTREP vectors is grabbing
a DATAPTR and iterating over the values without modification in a tight
loop. This will work (absent allocation failure or, I suppose, th...
2024 Apr 22
1
Is ALTREP "non-API"?
Thanks for your convincing comment, but it seems the R core team has a
different opinion...
A few hours ago, src/include/R_ext/Altrep.h got this comment:
/*
Not part of the API, subject to change at any time.
*/
commit:
https://github.com/r-devel/r-svn/commit/2059bffde642f8426d1f39ab5dd995d19a575d4d
While I'm glad to see their attempt to make it clear, I'm confused. That
2019 Jun 05
0
[External] undefined symbol errors when compiling package using ALTREP API
...> non-ALTREP-implementing package code, *more-or-less *exactly as standard
>> (non-AR) SEXPs are: via the published C API. The more or less comes from
>> the fact that in some cases, doing things that are good ideas on standard
>> SEXPS will work, but may not be a good idea for ALTREPs.
>>
>> The most "low-hanging-fruit" example of something that was best practice
>> for standard vectors but is not a good idea for ALTREP vectors is grabbing
>> a DATAPTR and iterating over the values without modification in a tight
>> loop. This will work (...
2020 Feb 03
1
ALTREP "wrapper" classes needs an Extract_subset method
Hi all,
I believe I have found a bug (or perhaps just an oversight) with the ALTREP
wrapper classes. The short form of this is that I believe that the wrapper
classes need to override the default ALTREP `Extract_subset_method()` with
a method that calls `Extract_subset()` on the "wrapped" object. I have a
patch prepared here:
https://github.com/DavisVaughan/r-source/pull/1
There is
2020 Oct 08
1
Coercion function does not work for the ALTREP object
Hi Gabriel, here is a simple package for reproducing the problem.
https://github.com/Jiefei-Wang/testPkg
Best,
Jiefei
On Thu, Oct 8, 2020 at 5:04 AM Gabriel Becker <gabembecker at gmail.com> wrote:
> Jiefei,
>
> Where does the code for your altrep class live?
>
> Thanks,
> ~G
>
> On Wed, Oct 7, 2020 at 4:25 AM Jiefei Wang <szwjf08 at gmail.com> wrote:
>
2024 Apr 22
1
Is ALTREP "non-API"?
Writing R Extension[1] defines "API" as:
Entry points which are documented in this manual and declared in an
installed header file. These can be used in distributed packages and will
only be changed after deprecation.
But, the document (WRE) doesn't have even a single mention of ALTREP, the
term "ALTREP" itself or any entry points related to ALTREP. Does this mean,
2019 Jul 23
3
Any plans for ALTREP lists (VECSXP)?
Hi Kylie,
Is it a list with only numerics in it? (I only see REALSXPs there, but
obviously inspect isn't showing all of them). If so, you could load it up
into one big vector and then also keep partitioning information around.
Bioconductor does this (see ?IRanges::CompressedList ). The potential
benefit here being that the underlying large vector could then be a big
out-of-memory altrep. How
2019 Sep 23
2
What is the best way to loop over an ALTREP vector?
...do part of it yo'll either need custom breaking for both inner and
>>> outer loopsl, or in R-devel you can use ITERATE_BY_REGION_PARTIAL
>>> - Don't use the variants ending in 0, all they do is skip over
>>> things that are a good idea in the case of non-altreps (and some very
>>> specific altreps).
>>>
>>> Hope that helps.
>>>
>>> Best,
>>> ~G
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
&g...