Release 0.6.37 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 70.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 updates one of the different hashing source functions
which, to remain close to their upstream, used Free()
and
Calloc()
(uppercased to use the R allocator) but not the
prefixed stricter versions R_Free()
and
R_Calloc()
. R will switch to enforcing these in the next
release next year. Kevin had
noticed (while doing some other testing) that this now fails under
R-devel (with a switch set), and prepares a very nice and clean PR to
take care of it. As of today, CRAN is now sending ‘please fix,
or else …’ notes so it was a good time to send this to CRAN. We also updated some
remaining http URLs in the README.md to https, and switched to
Author/Maintainer field to the now also mandatory Authors@R.
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.
Release 0.6.36 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 69.1 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 updates one contributed C++ function to be compliant
with R’s revent preference for explicit declaration of
REMAP
, and improves the behavior under the (increasingly
rare) ‘big endian’ system via a patch to blake3
as well as
a hint that spookyhash
under ‘big endian’ may not meed its
reference output from ‘little endian’.
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.
Release 0.6.35 of the digest package arrived at CRAN today and has also been uploaded to Debian already.
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
– and
now also 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 65.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 updates the included xxHash version to the
current verion 0.8.2 updating the existing xxhash32
and
xxhash64
hash functions — and also adding the newer
xxh3_64
and xxh3_128
ones. We have a project
at work using xxh3_128
from Python which made me realize
having it from R would be nice too, and given the existing
infrastructure in the package actually doing so was fairly quick and
straightforward.
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.
Release 0.6.34 of the digest package arrived at CRAN today and has also been uploaded to Debian already.
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
, and crc32c
),
and ebales 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 63.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.
(Oh and we also just passed the 20th anniversary of the initial CRAN upload. Time flies, as they say.)
This release contains small (build-focussed) enhancements contributed
by Michael Chirico, and another set of fixed for printf
format warnings this time on Windows.
My CRANberries provides a summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo.
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.
Release 0.6.33 of the digest package arrived at CRAN today and has been uploaded to Debian already.
digest
creates hash digests of arbitrary R objects (using the md5
,
sha-1
, sha-256
, sha-512
,
crc32
, xxhash32
, xxhash64
,
murmur32
, spookyhash
, blake3
, and
crc32c
algorithms) permitting easy comparison of R language
objects. It is a mature and widely-used (with 58.6 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 corrects a bad bug we accidentally introduced in release
0.6.32 a little under two weeks ago. As described we added
crc32c
and aimed for the simple ‘portable’ approach (given
that the accelerated version is now availble in our package
crc32c
) but overlooked one setting which promptly
broked compilation on M1/M2/Arm64 (which we do not have access too,
sadly). This was actually reported in issue
#189 on the very day 0.6.32 was released and even before we got to
blog about its announcement so that we could even mention it in the third
paragraph there.
This fix was a one-liner, and was committed hours later. Now, as it sometimes happens, processing the new upload at CRAN took some time. They appeared to be down the next day not processing anything. Once opened again, they reported ‘changes to worse’ as can be seen in reverse-dependency checks. Turns out those were false positive (“it happens”) but then the package lingered a little longer and quite a lot of folks chimed in at in issue #189. I have now learned that there were in fact some temporary hardware issues in one of the CRAN locations, so it all had a reason—but most importantly it is all better now. My apologies for the temporary breakage, we attempted to address it swiftly but sometimes things beyond our control (and reach) do slow things down. Now new and fixed binaries should appear in the next few days.
My CRANberries provides the usual summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo.
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.
Release 0.6.32 of the digest package arrived at CRAN this morning, and will be uploaded to Debian as well.
digest
creates hash digests of arbitrary R objects (using the md5
,
sha-1
, sha-256
, sha-512
,
crc32
, xxhash32
, xxhash64
,
murmur32
, spookyhash
, blake3
, and
crc32c
algorithms) permitting easy comparison of R language
objects. It is a mature and widely-used (with 58.3 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 brings two changes.
First, we added crc32c as a new hashing algorithm. And we did so in a ‘portable’ minimal fashion—while also adding a new CRAN crc32c package with the full hardware-optimised support form x86_64 and Arm64 (M1/M2) chips. Fully integrating the optional added package is still work in progress we may refine. (Now, as it turns out, a first bug report that this is not as portable as we hoped. But it also looks like we already have a fix. So a quick follow-up release is likely.) Second, Dean Attali had looked into AES digests and cyphers using the CBC mode and noticed what we needed padding which he kindly contributed in PR #186.
My CRANberries provides the usual summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo.
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.
Release 0.6.31 of the digest package arrived at CRAN this weekend, and is being uploaded to Debian as well.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, spookyhash
, and blake3
algorithms) permitting easy comparison of R language objects. It is a mature and widely-used 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 contains the tiny change (in maybe a dozen places) triggered recently by macOS and now checked for by r-devel
which consists of replacing (v)sprintf
calls with (v)snprintf
. No more, no less.
My CRANberries provides the usual summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo.
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.
Release 0.6.30 of the digest package arrived at CRAN earlier today, and was just uploaded to Debian as well.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, spookyhash
, and blake3
algorithms) permitting easy comparison of R language objects. It is a mature and widely-used 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 contains two tiny changes on old standard C code to appease the new / upcoming clang-15
release now used by CRAN in their forward-looking checks.
My CRANberries provides the usual summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo.
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.
Release 0.6.29 of the digest package arrived at CRAN earlier today, and will be uploaded Debian shortly.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, spookyhash
, and blake3
algorithms) permitting easy comparison of R language objects. It is a mature and widely-used as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
This release only contains two smaller internal changes. We removed the YAML file (and badge) for the disgraced former continuous integration service we shall not name (yet that we all used to use). And we converted the vignette from using the minidown package to the (fairly new) simplermarkdown package which is so much more appropriate for our use of the minimal water.css style.
My CRANberries provides the usual summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo.
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.
Release 0.6.28 of the digest package arrived at CRAN earlier today, and has already been uploaded Debian as well.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, spookyhash
, and blake3
algorithms) permitting easy comparison of R language objects. It is a mature and widely-used as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
This release comes eleven months after the previous releases and rounds out a number of corners. Continuous Integration was updated using r-ci. Several contribututors help with a small fix applied to avoid unaligned reads, a rewording for a help page as well as windows path encoding for in the vectorised use case.
My CRANberries provides the usual summary of changes to the previous version. For questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Exactly one week after the previous release 0.6.26 of digest, a minor cleanup release 0.6.27 just arrived on CRAN and will go to Debian shortly.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, spookyhash
, and blake3
algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at one million monthly downloads, 282 direct reverse dependencies and 8068 indirect reverse dependencies, or just under half of CRAN) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
Release 0.6.26 brought support for the (nice, even cryptographic) blake3 hash algorithm. In the interest of broader buildability we had already (with a sad face) disabled a few very hardware-specific implementation aspects using intrinsic ops. But to our chagrin, we left one #error
define that raised its head on everybody’s favourite CRAN build platform. Darn. So 0.6.27 cleans that up and also removes the check and #error
as … all the actual code was already commented out. If you read this and tears start running down your cheeks, then by all means come and help us bring blake3
to its full (hardware-accelerated) potential. This (probably) only needs a little bit of patient work with the build options and configurations. You know where to find us…
My CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
And a new version of digest is now on CRAN will go to Debian shortly.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, spookyhash
, and blake3
algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at 896k monthly downloads, 279 direct reverse dependencies and 8057 indirect reverse dependencies, or just under half of CRAN) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
This release brings two nice contributed updates. Dirk Schumacher added support for blake3
(though we could probably push this a little harder for performance, help welcome). Winston Chang benchmarked and tuned some of the key base R parts of the package. Last but not least I flipped the vignette to the lovely minidown, updated the Travis CI setup using bspm (as previously blogged about in r4 #30), and added a package website using Matertial for MkDocs.
My CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
And a new version of digest is getting onto CRAN now, and to Debian shortly.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, and spookyhash
algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at 889k monthly downloads with 255 direct reverse dependencies and 7340 indirect reverse dependencies) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
This release is a one issue fix. Aaron Lun noticed some issues when spookyhash
is used in streaming mode. Kendon Bell, who also contributed spookyhash
quickly found the issue which is a simple oversight. This was worth addressing in new release, so I pushed 0.6.25.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Another new version of digest arrived on CRAN (and also on Debian) earlier today.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, and spookyhash
algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at 889k monthly downloads with 255 direct reverse dependencies and 7340 indirect reverse dependencies) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
This release comes a few month after the previous release. It contains a few contributed fixes, some of which prepare for R 4.0.0 in its current development. This includes a testing change to the matrix/array class, and corrects the registration for the PMurHash routine as pointed out by Tomas Kalibera and Kurt Hornik (who also kindly reminded me to finally upload this as I had made the fix already in December). Moreover, Will Landau sped up one operation affecting his popular drake pipeline toolkit. Lastly, Thierry Onkelinx corrected one more aspect related to sha1
.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Another new version of digest got onto CRAN earlier today, and was also uploaded to Debian.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, and spookyhash
algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at 868k monthly downloads) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
This release comes again one month after the previous release and contains further refinements for sha1 digests, thanks once more to Bill Denney and Thierry Onkelinx who added more support for formulae and better support for object attributes. I added some refinement for the encoding / utf8 filename tests from the previous to round things off.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new version of digest arrived at CRAN earlier today, and I just sent an updated package to Debian too.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, and spookyhash
algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at 868k monthly downloads) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
This release comes pretty much exactly one month after the very nice 0.6.21 release but contains five new pull requests. Matthew de Queljoe did a little bit of refactoring of the vectorised digest function he added in 0.6.21. Ion Suruceanu added a CFB cipher for AES. Bill Denney both corrected and extended sha1
. And Jim Hester made the windows-side treatment of filenames UTF-8 compliant.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new version of digest is just now arriving at CRAN (following a slight holdup over one likely spurious reverse dependency error), and I will send an updated package to Debian shortly as well.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, and spookyhash
algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at 795k downloads) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.
Every now and then open source work really surprises you. Out of nowhere arrived a very fine pull request by Matthew de Queljoe which adds a very clever function getVDigest()
supplying a (much faster) vectorized wrapper for digest creation. We illustrate this in a quick demo vectorized.R
that is included too. So if you call digest()
in bulk, this will most likely be rather helpful to you. Matthew even did further cleanups and refactorings but we are saving that for a subsequent pull request or two.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
This morning, digest version 0.6.20 went to CRAN, and I will send a package to Debian shortly as well.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, and spookyhash
algorithms) permitting easy comparison of R language objects.
This version contains only internal changes with a switch to the (excellent) tinytest package. This now allows you, dear user of the package, to run tinytest::test_package("digest")
at any point post-installation to reassure yourself that all standard assertions and tests are still met in your installation. No other changes were made.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Overnight, digest version 0.6.19 arrived on CRAN. It will get uploaded to Debian in due course.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
, murmur32
, and spookyhash
algorithms) permitting easy comparison of R language objects.
This version contains two new functions adding new digest functionality. First, Dmitriy Selivanov added a fast and vectorized digest2int
to convert (arbitrary) strings into 32 bit integers using one-at-a-time hashing. Second, Kendon Bell, over a series of PRs, put together a nice implementation of spookyhash as a first streaming hash algorithm in digest. So big thanks to both Dmitriy and Kendon.
No other changes were made.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Earlier today, digest version 0.6.18 arrived on CRAN. It will get uploaded to Debian in due course.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
and murmur32
algorithms) permitting easy comparison of R language objects.
As I wrote when announcing the 0.6.17 release about a month ago
[…] it also squashed one UBSAN error under the standard gcc setup. But two files remain with UBSAN issues, help would be welcome!
And lo and behold, and withing a day or two, Jim Hester saw this, looked at it and updated xxHash (which had contributed to digest 0.6.5 in 2014) to the newest version, taking care of one part. And Radford Neal took one good hard look at the remaining issue and suggested a cast for pmurhash. In testing against the UBSAN instance at RHub, both issues appear to be taken care of. So a big Thank You to both Jim and Radford!
No other changes were made.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
digest version 0.6.17 arrived on CRAN earlier today after a day of gestation in the bowels of CRAN, and should get uploaded to Debian in due course.
digest creates hash digests of arbitrary R objects (using the md5
, sha-1
, sha-256
, sha-512
, crc32
, xxhash32
, xxhash64
and murmur32
algorithms) permitting easy comparison of R language objects.
This release brings another robustifications thanks to Radford Neal who noticed a segfault in 32 bit mode on Sparc running Solaris. Yay for esoteric setups. But thanks to his very nice pull request, this is taken care of, and it also squashed one UBSAN error under the standard gcc
setup. But two files remain with UBSAN issues, help would be welcome!
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
digest version 0.6.16 arrived on CRAN earlier today, and was just prepared for Debian as well.
digest creates hash digests of arbitrary R objects (using the 'md5', 'sha-1', 'sha-256', 'sha-512', 'crc32', 'xxhash32', 'xxhash64' and 'murmur32' algorithms) permitting easy comparison of R language objects.
This release brings a few robustifications. Radford Neal pointed out that serialize()
output should not be unit-tested as it always reflects the R version, and will change--so we no longer do that. Henrik Bengtsson pointed out missing leading padding for crc32 output which we added, and corrected the minimal R version we should depend on. Thanks to both for the help in making the package better. We also added some more tests now achieving 100% coverage.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
And yet another small maintenance release, now at version 0.6.15, of the digest package arrived on CRAN and in Debian today.
digest creates hash digests of arbitrary R objects (using the 'md5', 'sha-1', 'sha-256', 'sha-512', 'crc32', 'xxhash32', 'xxhash64' and 'murmur32' algorithms) permitting easy comparison of R language objects.
Just like release 0.6.13 in December, and release 0.6.14 two weeks ago, this release accomodates a request by R Core. This time it was Kurt who improved POSIXlt extraction yesterday which required a one-line change to sha1()
summaries---which he kindly sent along. We also already had a change by Thierry who had generalized sha1()
to accept a new argument allowing sha256 and sha512 summaries to be created.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Another small maintenance release, version 0.6.14, of the digest package arrived on CRAN and in Debian today.
digest creates hash digests of arbitrary R objects (using the 'md5', 'sha-1', 'sha-256', 'crc32', 'xxhash' and 'murmurhash' algorithms) permitting easy comparison of R language objects.
Just like release 0.6.13 a few weeks ago, this release accomodates another request by Luke and Tomas and changes two uses of NAMED
to MAYBE_REFERENCED
which helps in the transition to the new reference counting model in R-devel. Thierry also spotted a minor wart in how sha1()
tested type for matrices and corrected that, and I converted a few references to https URLs and correct one now-dead URL.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A small maintenance release, version 0.6.13, of the digest package arrived on CRAN and in Debian yesterday.
digest creates hash digests of arbitrary R objects (using the 'md5', 'sha-1', 'sha-256', 'crc32', 'xxhash' and 'murmurhash' algorithms) permitting easy comparison of R language objects.
This release accomodates a request by Luke and Tomas to make the version
argument of serialize()
an argument to digest()
too, which was easy enough to accomodate. The value 2L
is the current default (and for now only permitted value). The ALTREP changes in R 3.5 will bring us a new, and more powerful, format with value 3L
. Changes can be set in each call, or globally via options()
. Other than we just clarified one aspect of raw
vector usage in the manual page.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release, now at version 0.6.12, of the digest package is now on CRAN and in Debian.
The digest creates hash digests of arbitrary R objects (using the 'md5', 'sha-1', 'sha-256', 'crc32', 'xxhash' and 'murmurhash' algorithms) permitting easy comparison of R language objects.
This release extends sha1 digest methods to even more types, thanks to another contribution by Thierry Onkelinx.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new minor release with version number 0.6.11 of the digest package is now on CRAN and in Debian.
It is mostly a maintenance release. Sometime last spring we were asked to consider changing the license GPL-2 to GPL (>= 2). Having gotten agreement of all copyright holders, this could finally happen. But it so happens that the last yay just after the last release, so it took another cycle. In other changes, I also made the makeRaw
function fully generic and added documentation. The pull request by Jim Hester to add covr support was finally folded in, leading as always to some gaming and improvement of the coverage metrics. A polite request by Radford Neal to support a nosharing
option in base::serialize
was also honoured; this should help for use with his interesting pqR variant of R.
CRANberries provides the usual summary of changes to the previous version.
For questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release, now at version number 0.6.10, of the digest package is now on CRAN. I also just prepared the Debian upload.
This release, just like the previous one, is once again the work mostly of external contributors. Michel Lang added length checks to sha1()
; Thierry Onkelinx extended sha1()
support and added more tests, Viliam Simko also extended sha1()
to more types, and Henrik Bengtsson improved intervals and fixed a bug with file usage.
CRANberries provides the usual summary of changes to the previous version.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release, now at version number 0.6.9, of the digest package is now on CRAN. I also just prepared the Debian upload.
This release is very large part the work of Thierry Onkelinx who added stable sha1 support in a new function sha1()
. Here, stable means that numerically equivalent numbers (in the sense of the semi-famous R FAQ entry 7.31) result in identical hashes. This is useful for hashing results from numerical analysis---where the representation may differ bitwise between, say, 32 and 64-bit platforms. We started to write a little more about this in a (at this very point still rather unfinished) little vignette.
We also had a nice pull request from fellow Rcpp hacker Qiang Kou who updated the code to use XLENGTH
so that large vectors can be supported.
CRANberries provides the usual summary of changes to the previous version.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Release 0.6.8 of digest package is now on CRAN and will get to Debian shortly.
This release opens the door to also providing the digest functionality at the C level to other R packages. Wush Wu is going to use the murmurHash C implementation in his recently-created FeatureHashing package.
We plan to export the other hashing function as well. Another small change attempts to overcome a build limitation on that other largely-irrelevant-but-still-check-by-CRAN OS.
CRANberries provides the usual summary of changes to the previous version.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Release 0.6.7 of digest package is now on CRAN and in Debian.
Jim Hester was at it again and added murmurHash. I cleaned up several sets of pedantic warnings in some of the source files, updated the test reference out, and that forms version 0.6.7.
CRANberries provides the usual summary of changes to the previous version.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.6.6 of the digest package is now on CRAN and in Debian.
This release brings the xxHash non-cryptographic hash function by Yann Collet, thanks to several pull requests by Jim Hester. After the upload of version 0.6.5 we uncovered another lovely non-standardness of Windoze: you cannot format unsigned long long
via printf()
format strings. Great. Luckily Jim found a quick (and portable) fix via the inttypes.h
header, and that went into the 0.6.6 release.
The release also contains an earlier extension for hmac()
to also cover crc32 hashes, kindly provided by Suchen Jin.
I also made a number of small internal changes such as
useDynLib()
declaration in NAMESPACE
,CRANberries provides the usual summary of changes to the previous version.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
This is a minor bug release regarding just the recently-added sha512 support. Turns out the wrong initial buffer size was used on the R side. Hannes fixed that within hours after we got the bug report; but I was a little swamped with multiple deadlines and failed to upload this right away.
CRANberries provides the usual summary of changes to version 0.6.2. Our package is available via the R-Forge page leading to svn and tarball access, my digest page, the local directory here as well as via Debian and its mirrors.
paste0()
in a few places, and this is only
available with newer versions of R. To not introduce as somewhat unnessecary
dependency, we reverted this to plain old paste()
.
CRANberries
provides the usual summary of changes to version
0.6.1.
As usual, our package is available via the R-Forge page leading to svn and tarball access, my digest page, the local directory here as well as via Debian and its mirrors.
Duncan Murdoch added AES support, and helped me fix two issues which
(annoyingly) made the Rout.save
output differ on another platform.
CRANberries provides the usual summary of changes to version 0.6.0.
As usual, our package is available via the R-Forge page leading to svn and tarball access, my digest page and the local directory here.
For this release, Hannes Muehleisen added support for sha-512 using an older
standalone function by Aaron D. Gifford
which I had to whip into slightly more portable shape to work on
Windows. (Hint: uint32_t
from stdint.h
, not u_int32_t
)
CRANberries provides the usual summary of changes to version 0.5.2.
As usual, our package is available via the R-Forge page leading to svn and tarball access, my digest page and the local directory here.
Murray Stokely noticed a corner case where a file that was inaccessible lead to a segmentation fault. Thanks to his patch, this is now caught and flagged. He even added a test for it and fixed another one of my idioms. Nice work, so keep the patches coming folks :)
CRANberries provides the usual summary of changes to version 0.5.1.
As usual, our package is available via the R-Forge page leading to svn and tarball access, my digest page and the local directory here.
Bryan Lewis, who is doing very stuff with websockets and Html5 as he demoed
last week the Chicago R User Group meeting, needed raw
support
and was kind enough to send a patch. After some more testing, this change set
is now in the new version which went onto
CRAN earlier today.
CRANberries provides the usual summary of changes to version 0.5.0.
As usual, our package is available via the R-Forge page leading to svn and tarball access, my digest page and the local directory here.
Thanks to a patch by Mario Frasca, digest now contains a
second (exported) function hmac()
to generate
Hash-based Message Authentication Code as defined in
RFC 2104. Reference output from RFC 2104 is used to validate
this functionality as shown below where we run the example code from the hmac()
help page:
R> library(digest) R> example(hmac) hmacR> ## Standard RFC 2104 test vectors hmacR> current <- hmac('Jefe', 'what do ya want for nothing?', "md5") hmacR> target <- '750c783e6ab0b503eaa86e310a5db738' hmacR> stopifnot(identical(target, as.character(current))) hmacR> current <- hmac(rep(0x0b, 16), 'Hi There', "md5") hmacR> target <- '9294727a3638bb1c13f48ef8158bfc9d' hmacR> stopifnot(identical(target, as.character(current))) hmacR> current <- hmac(rep(0xaa, 16), rep(0xdd, 50), "md5") hmacR> target <- '56be34521d144c88dbb8c733f0e8b3f6' hmacR> stopifnot(identical(target, as.character(current))) hmacR> ## SHA1 tests inspired to the RFC 2104 and checked against the python hmacR> ## hmac implementation. hmacR> current <- hmac('Jefe', 'what do ya want for nothing?', "sha1") hmacR> target <- 'effcdf6ae5eb2fa2d27416d5f184df9c259a7c79' hmacR> stopifnot(identical(target, as.character(current))) hmacR> current <- hmac(rep(0x0b, 16), 'Hi There', "sha1") hmacR> target <- '675b0b3a1b4ddf4e124872da6c2f632bfed957e9' hmacR> stopifnot(identical(target, as.character(current))) hmacR> current <- hmac(rep(0xaa, 16), rep(0xdd, 50), "sha1") hmacR> target <- 'd730594d167e35d5956fd8003d0db3d3f46dc7bb' hmacR> stopifnot(identical(target, as.character(current))) R>
Also, CRANberries shows the difference to the previsious release 0.4.2 as follows:
Diff between digest versions 0.4.2 dated 2009-12-06 and 0.5.0 dated 2011-05-30 digest-0.4.2/digest/INDEX |only digest-0.4.2/digest/R/zzz.R |only digest-0.4.2/digest/inst |only digest-0.5.0/digest/ChangeLog |only digest-0.5.0/digest/DESCRIPTION | 33 ++++++++++++------------- digest-0.5.0/digest/NAMESPACE | 7 +++-- digest-0.5.0/digest/R/hmac.R |only digest-0.5.0/digest/man/hmac.Rd |only digest-0.5.0/digest/tests/digestTest.Rout.save | 2 - digest-0.5.0/digest/tests/hmacTest.R |only digest-0.5.0/digest/tests/hmacTest.Rout.save |only 11 files changed, 22 insertions(+), 20 deletions(-)
With that, special thanks to Mario Frasca for the patch and to Henrik Bengtsson for helpful discussion. We took some care to ensure that the
existing interface to the digest()
function remains unaffected.