vecvec
R package vecvec by mitchelloharawild — release notes from GitHub.
A vector-of-vectors class swapped its object system mid-flight and came out faster.
◆Recent moves
- 1mo ago
Extension packages can register their own ptype and cast methods
Custom vec_ptype2 and vec_cast registration is the extensibility counterpart to the S7 move: after 1.0.0 told extension authors to subclass class_vecvec, this gives them the type-coercion hooks to make those subclasses behave. The empty-object printing fix is small, but consistent with a release series spent on presentation and edge cases.
View source ↗ - 1mo ago
ALTREP vectors survive construction and printing intact
Two changes that protect the package's core premise: ALTREP vectors are no longer flattened when a vecvec is built, and the print method respects max.print rather than materialising the object to display it. A class built to avoid copying vectors together loses its reason to exist the moment routine operations expand them, so this is corrective work on the abstraction itself, alongside two subassignment fixes involving NA and zero-length indices.
View source ↗ - 3mo ago
The class is rebuilt on S7, with a new internal representation
⚡ SPARKThe pivot the rest of the log hangs off: vecvec is reimplemented on S7 instead of vctrs, with an overhauled internal structure, matrix and array support, and substantially better speed and object size. User code mostly survives, but extension packages and anything touching new_vecvec() do not.
View source ↗ - 4mo ago
Missing value handling fixed for is.na()
A single bug fix on NA handling, shipped weeks before the S7 rewrite that replaced the implementation underneath it.
View source ↗ - 11mo ago
Arithmetic and per-vector apply arrive
vec_math() and vec_apply() turn the class from a container into something you can compute over, with vec_apply() operating on each constituent vector rather than the flattened whole — the operation that makes the structure worth keeping. Record-type support and several Ops and casting fixes round out the release that took the package to CRAN.
View source ↗ - 11mo ago
First release: constructors and vctrs dispatch
The initial public surface — constructors, an unvecvec() deconstructor back to atomic vectors, and vctrs method dispatch. The vctrs foundation established here is precisely what 1.0.0 later replaced with S7.
View source ↗