Release 0.6.38 of the digest package arrived at CRAN today and has also been uploaded to Debian.
digest
creates hash digests of arbitrary R objects. It can use a number
different hashing algorithms (md5, sha-1,
sha-256, sha-512, crc32,
xxhash32, xxhash64, murmur32,
spookyhash, blake3,crc32c,
xxh3_64 and xxh3_128), and enables easy
comparison of (potentially large and nested) R language objects as it
relies on the native serialization in R. It is a mature and widely-used
package (with 86.8 million downloads just on the partial cloud mirrors
of CRAN which keep logs) as many tasks may involve caching of
objects for which it provides convenient general-purpose hash key
generation to quickly identify the various objects.
This release, the first in about fifteen months, updates a number of
items. Carl Pearson
suggested, and lead, a cleanup of the C API in order to make more of the
functionality accessibly at the source level of other packages.
This is ongoing / not yet complete but lead to several nice internal
cleanups, mostly done by Carl. Several typos were
corrected, mostly in Rd files, by Bill Denney, who also improved
the test coverage statistics. Thierry Onkelinx and I improved
the sha1 functionality. Sergey Fedorov improved an
endianness check that matter for his work on PowerPC. I updated the
blake3 hasher, expanded the set of ORCID IDs for listed
contributors, updated the continuous integration setup, reinstated code
coverage reports, refreshed / converted the documentation site setup,
and made general updates and edits to the documentation.
The release was prepared a week ago, and held up a few days until an
affected package was updated: it requested raw returns
where none were previously delivered (for xxhash64) but now
are so it needed to not reqest them. It was then seen that another
package made some assumptions about our DESCRIPTION file; this has been
addressed at its end via a pull request we submitted (that remains
unmerged). This delayed processing at CRAN for a few days—and as it
happens, hours after the packages was updated at CRAN today I heard from the
ever-so-tireless Brian Ripley about an SAN issue on arm64 only. He
kindly provided a fix; it needed a cast. Checking this on amd64 against
our Rocker-based ASAN and
UBSAN containers (where is remains impossible to replicate, this issue
is apparently known for some arm64 issues) another micro-issue (of a
missing final argument NULL missing in one
.Call()) was detected. I plan to fix both of these in a
follow-up release next week.
My CRANberries provides a summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo. For documentation (including the changelog) see the documentation site.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.