Skip to content
Hashing algorithms in R6RS Scheme
Scheme Shell
Branch: master
Clone or download
weinholt Faster (hashing fixnums) for Guile; fix various low-hanging fruit
Ludovic Courtès posted benchmarks of the SHA-256 library to
guile-devel and noted in a followup that the fixnum library adds a
layer of opacity:

https://lists.gnu.org/archive/html/guile-devel/2020-01/msg00005.html

This commit adds a special version of (hashing fixnums) that simply
uses the generic arithmetic procedures. This is faster in Guile
because the fixnum procedures are just the generic ones with dynamic
type checking added.

Various low-hanging fruit is also fixed, such as using eqv? when
comparing against constant fixnums.

Computing the SHA-256 of guile-2.2.6.tar.xz is faster now:

       clock utime stime cutime cstime gctime
before:
2.2.6  31.06 32.61  0.03   0.00   0.00   1.38
2.9.8  15.55 16.23  0.01   0.00   0.00   1.19
after:
2.2.6   2.95  3.01  0.00   0.00   0.00   0.10
2.9.8   1.98  1.99  0.00   0.00   0.00   0.08
Latest commit eb28080 Jan 4, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci CI: Temp-fix SRFI 78 for Loko, enable tests on mosh, guile3 and IronS… Dec 16, 2019
bin Shorten copyright notices Feb 6, 2018
private Clean up CRC code Mar 4, 2018
tests CI: Temp-fix SRFI 78 for Loko, enable tests on mosh, guile3 and IronS… Dec 16, 2019
.gitignore Fix tests, imports and add .travis.yml Dec 16, 2017
Akku.lock CI: Enable CircleCI, disable Travis, refresh lock Sep 20, 2019
Akku.manifest Add an xxh32 implementation Mar 11, 2019
CONTRIBUTING.md Add the Developer Certificate of Origin Dec 13, 2017
LICENSE.txt Extract CRC, MD5, SHA-1 and SHA-2 from Industria Dec 16, 2017
NEWS.md Version 1.2.0 Mar 4, 2018
README.md CI: Enable CircleCI, disable Travis, refresh lock Sep 20, 2019
crc.scm crc: define auxiliary keywords Mar 11, 2019
fixnums.guile.sls Faster (hashing fixnums) for Guile; fix various low-hanging fruit Jan 4, 2020
fixnums.sls Faster (hashing fixnums) for Guile; fix various low-hanging fruit Jan 4, 2020
hmac.scm Shorten copyright notices Feb 6, 2018
md5.scm Faster (hashing fixnums) for Guile; fix various low-hanging fruit Jan 4, 2020
run-tests.sh CI: Enable CircleCI, disable Travis, refresh lock Sep 20, 2019
sha-1.scm Faster (hashing fixnums) for Guile; fix various low-hanging fruit Jan 4, 2020
sha-2.scm Faster (hashing fixnums) for Guile; fix various low-hanging fruit Jan 4, 2020
xxhash.sls Faster (hashing fixnums) for Guile; fix various low-hanging fruit Jan 4, 2020

README.md

(hashing *)

CircleCI

This is a collection of R6RS libraries for hashing (checksums, message digests, etc).

They have been extracted from Industria by an extensive git filter-branch operation.

The libraries have no dependencies. The tests require SRFI 13, SRFI 14, SRFI 64 and SRFI 78.

You can’t perform that action at this time.