lazyvec
lazyvec copied to clipboard
Lazy evaluated vectors using the ALTREP framework
To create a custom ALTREP vector, method `lazyvec()` needs overrides for methods from the ALTREP API. For the average user, it will take some time to study this API to...
At default, ALTREP's are expanded when attributes change. By a smart override of the duplicate method, a full expansion can be avoided (with a mechanism identical to wrapper objects).
Currently, setting an attribute to an ALTREP vector, triggers a copy and after that the vector is no longer an ALTREP: ``` r x [1] TRUE class(x) [1] FALSE ```...
When an ALTREP vector is de-serialized, custom code is executed in the `UnserializeEX` client method. That code can contain anything so can be be potentially harmful. Normally, `R`'s de-serialization mechanism...
Make sure to duplicate the test for all vector types. Now only integer ALTREP vectors are tested, resulting in low coverage.
Apart from the method above, many other `ALTREP` methods are not exported yet on `R-devel` on linux. This seems to be caused by a _attribute\_hidden_ definition in front of the...
Phase 3 of [milestone 1](../milestone/1): method `lazyvec()` has the option to enable/disable checkS on the result of user-defined `R` methods. Typically, the users will enable these checks when first developing...
As invalid vectors returned from user defined methods can easily crash the `R` session.
The user-defined methods for the `lazyvec` are serialized along with the vector data. Upon deserialization, these methods will be available as list objects and called from the ALTREP API automatically....
By using R based ALTREP methods. Phase 1 of `lazyvec()`: The default implementation of a newly generated `lazyvec` mimics a range `n:m` with all methods implemented in `R`.