From 3207dac8a0ffe3004501e1215fd4bc9c916169ae Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Fri, 22 Nov 2013 17:06:18 -0800 Subject: [PATCH] checksums.murmur: should be unsigned int32. --- basis/checksums/murmur/murmur-tests.factor | 9 +++++---- basis/checksums/murmur/murmur.factor | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/basis/checksums/murmur/murmur-tests.factor b/basis/checksums/murmur/murmur-tests.factor index f07e21537e..79769a8f24 100644 --- a/basis/checksums/murmur/murmur-tests.factor +++ b/basis/checksums/murmur/murmur-tests.factor @@ -3,7 +3,8 @@ IN: checksums.murmur { 455139366 } [ "asdf" 0 checksum-bytes ] unit-test { 417250299 } [ "asdf" 156 checksum-bytes ] unit-test -{ -392455434 } [ "abcde" 0 checksum-bytes ] unit-test -{ -1850534962 } [ "12345678" 0 checksum-bytes ] unit-test -{ -1710454456 } [ "12345678" 156 checksum-bytes ] unit-test -{ -734568571 } [ "hello, world!!!" 156 checksum-bytes ] unit-test +{ 3902511862 } [ "abcde" 0 checksum-bytes ] unit-test +{ 2517562459 } [ "abcde" 156 checksum-bytes ] unit-test +{ 2444432334 } [ "12345678" 0 checksum-bytes ] unit-test +{ 2584512840 } [ "12345678" 156 checksum-bytes ] unit-test +{ 3560398725 } [ "hello, world!!!" 156 checksum-bytes ] unit-test diff --git a/basis/checksums/murmur/murmur.factor b/basis/checksums/murmur/murmur.factor index 13e645f44a..d0f7dc9e90 100644 --- a/basis/checksums/murmur/murmur.factor +++ b/basis/checksums/murmur/murmur.factor @@ -1,7 +1,9 @@ ! Copyright (C) 2013 John Benediktsson. ! See http://factorcode.org/license.txt for BSD license. + USING: accessors checksums fry grouping io.binary kernel math math.bitwise sequences ; + IN: checksums.murmur TUPLE: murmur3-32 seed ; @@ -36,6 +38,6 @@ M: murmur3-32 checksum-bytes ( bytes checksum -- value ) [ be> (hash-chunk) bitxor bitxor 32-bit ] bi* [ -16 shift ] [ bitxor 0x85ebca6b * 32-bit ] bi [ -13 shift ] [ bitxor 0xc2b2ae35 * 32-bit ] bi - [ -16 shift ] [ bitxor 32 >signed ] bi ; + [ -16 shift ] [ bitxor ] bi ; INSTANCE: murmur3-32 checksum