)]}'
{
  "log": [
    {
      "commit": "ab37246c889f9db16b606fda1c232d659df9271d",
      "tree": "bdd320ce7d0774395a4002ec2ee24b513603a6ff",
      "parents": [
        "998dce232f17418a7a5721ecf87ca714025a3243"
      ],
      "author": {
        "name": "Andreas Deininger",
        "email": "andreas@deininger.net",
        "time": "Wed Jul 03 17:28:37 2024"
      },
      "committer": {
        "name": "Andreas Deininger",
        "email": "andreas@deininger.net",
        "time": "Wed Jul 03 18:01:36 2024"
      },
      "message": "Bump GitHub actions to their latest versions\n"
    },
    {
      "commit": "998dce232f17418a7a5721ecf87ca714025a3243",
      "tree": "9a415e56e5cf3504c2a8b82a3d2bd7c8c0c19d2f",
      "parents": [
        "21fc82b0b9b5d9ffd7d69c3193679ce46eb738dc"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Apr 04 18:16:23 2024"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Apr 04 20:00:10 2024"
      },
      "message": "Add initial support for custom seeds\n\nThis adds support for custom seeds when using a Digest (but not to the\none-shot functions Sum64 and Sum64String).\n\nThe seed is not stored in the digest itself -- every Reset uses a zero\nseed and (Un)MarshalBinary is unchanged. This is simpler for backward\ncompatibility but may be something to reconsider if we rework the API\nfor a v3.\n"
    },
    {
      "commit": "21fc82b0b9b5d9ffd7d69c3193679ce46eb738dc",
      "tree": "be38e343b606aaddaefa19e1cfd1bb56541498b9",
      "parents": [
        "66b14091423905f2a7749a819fc1d3e187b42384"
      ],
      "author": {
        "name": "rfyiamcool",
        "email": "rfyiamcool@163.com",
        "time": "Wed Apr 26 03:03:00 2023"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Jul 26 05:37:07 2023"
      },
      "message": "feat: add badger to the projects using this package on README.md\n"
    },
    {
      "commit": "66b14091423905f2a7749a819fc1d3e187b42384",
      "tree": "40fea987e56bbb6c41a24fadee20bfc10034deb9",
      "parents": [
        "fe2f6e86bb1d7041699efbe0fae02ec03ad063c8"
      ],
      "author": {
        "name": "rfyiamcool",
        "email": "rfyiamcool@163.com",
        "time": "Mon Apr 03 02:22:42 2023"
      },
      "committer": {
        "name": "rfyiamcool",
        "email": "rfyiamcool@163.com",
        "time": "Mon Apr 03 14:09:43 2023"
      },
      "message": "feat: add ristretto to the Projects using this package on README.md\n"
    },
    {
      "commit": "fe2f6e86bb1d7041699efbe0fae02ec03ad063c8",
      "tree": "d2bd2d4424394e9a3db095bce7d0cc1bb8b9fb64",
      "parents": [
        "a76eb16a93c1e30527c073ca831d9048b4b935f6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Dec 04 02:11:49 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Dec 04 02:11:49 2022"
      },
      "message": "Update Go versions for GH action\n"
    },
    {
      "commit": "a76eb16a93c1e30527c073ca831d9048b4b935f6",
      "tree": "d7a4df4734457fde84d5cd12a75ab7426a909435",
      "parents": [
        "3c87ff894fa24483d63e6d273333caa9b5495e2d"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Dec 04 02:06:23 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Dec 04 02:06:23 2022"
      },
      "message": "Fix staticcheck failure\n"
    },
    {
      "commit": "3c87ff894fa24483d63e6d273333caa9b5495e2d",
      "tree": "b104f04b59bbadcb3c46887bdc5715f0678dd622",
      "parents": [
        "ced83c3f121e24066be8cc47008e9ee8c25acf72"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Dec 04 02:03:10 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Dec 04 02:03:10 2022"
      },
      "message": "Update README for arm64 asm; latest benchmarks\n"
    },
    {
      "commit": "ced83c3f121e24066be8cc47008e9ee8c25acf72",
      "tree": "46538e12229be76358f88b3353829c089414d3db",
      "parents": [
        "603b3360ce0c53eb7b5e7642771468071be47a79"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 09:38:09 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 09:38:09 2022"
      },
      "message": "Rename register aliases\n"
    },
    {
      "commit": "603b3360ce0c53eb7b5e7642771468071be47a79",
      "tree": "9a8228d829f64f732edb92dd230b7d93a22903c2",
      "parents": [
        "929933797dbb42d00e635b04ad1117ebce97e90c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 09:32:30 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 09:32:30 2022"
      },
      "message": "Asmfmt\n"
    },
    {
      "commit": "929933797dbb42d00e635b04ad1117ebce97e90c",
      "tree": "a5ae920505388e96241d75b2ce4f569607dce4e5",
      "parents": [
        "3614b5ced39cb28cafbb2e51c9283b40ea6683a2"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 09:32:05 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 09:32:05 2022"
      },
      "message": "Add better register alias\n"
    },
    {
      "commit": "3614b5ced39cb28cafbb2e51c9283b40ea6683a2",
      "tree": "f1145e1e5ec2a4002f05eb727d41a27eb5400a5f",
      "parents": [
        "34f9c9a7b02e38574373c31ed9de682ffeb0002d"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 08:13:50 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 09:11:24 2022"
      },
      "message": "Add back the amd64 tail loops\n\nThis performs strictly better in my benchmarks for the small input sizes.\n"
    },
    {
      "commit": "34f9c9a7b02e38574373c31ed9de682ffeb0002d",
      "tree": "ed04d8a84d70c75fa06f152cf8b4fcab8ed6def4",
      "parents": [
        "27bcde000d950455f4d83f384cba33cc3b98a19c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 22:04:12 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 22:04:12 2022"
      },
      "message": "Start primes at 0\n"
    },
    {
      "commit": "27bcde000d950455f4d83f384cba33cc3b98a19c",
      "tree": "bea337efbe6996b4e9d075183b69b71b38c0933f",
      "parents": [
        "bbc478633dd7c24a4b0b653b19d2a3f8b9cad045"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 21:58:59 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 21:58:59 2022"
      },
      "message": "Restore rotated EOR sequence\n\nThis is a couple of percent faster for small inputs in my benchmarks.\n"
    },
    {
      "commit": "bbc478633dd7c24a4b0b653b19d2a3f8b9cad045",
      "tree": "34ca4d5a2857a4a6b264814a6abab11ce0292317",
      "parents": [
        "9b384c6670a72f5b0e3e03cad452e4abcf4f8262"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 07:34:18 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 07:34:18 2022"
      },
      "message": "Update links from golang.org -\u003e go.dev\n"
    },
    {
      "commit": "9b384c6670a72f5b0e3e03cad452e4abcf4f8262",
      "tree": "bb72bb47e7a2b9470a325ab934c78f3b02dd63d6",
      "parents": [
        "f109b2ad5e3dae47a0bd3427e961ea587007726c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 07:32:55 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 07:32:55 2022"
      },
      "message": "Remove unneeded TODO\n\nAs of Go 1.19, GOROOT/bin is on the PATH so no further improvements are\nneeded here.\n"
    },
    {
      "commit": "f109b2ad5e3dae47a0bd3427e961ea587007726c",
      "tree": "ed48a2544a8364740b62884e5ac00cede9e137db",
      "parents": [
        "36869013bdee166bd0e83c9e1143b50fd79b0246"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 21:22:39 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 22:51:08 2022"
      },
      "message": "Clean up amd64 assembly using ideas from the arm64 assembly\n"
    },
    {
      "commit": "36869013bdee166bd0e83c9e1143b50fd79b0246",
      "tree": "e1692efad7622d71d99e539d96d3458f1a45143b",
      "parents": [
        "fbdfba690cf74e13d4806d438f0104420a751109"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 21:21:11 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 21:21:11 2022"
      },
      "message": "Consolidate array of primes\n"
    },
    {
      "commit": "fbdfba690cf74e13d4806d438f0104420a751109",
      "tree": "8d51f3762397603c044b3d2b9cabc975f8c052fb",
      "parents": [
        "4467c197908f7693d3d99ae578d6569bd18a3db1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Nov 13 08:51:19 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 19:17:04 2022"
      },
      "message": "Update some comments\n"
    },
    {
      "commit": "4467c197908f7693d3d99ae578d6569bd18a3db1",
      "tree": "558e1694bf29cc55f1edeb81c5e2ba8185d59b07",
      "parents": [
        "b5aede900e8eb16bf7e894108a437828bbaaffc6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 19:15:16 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 19:15:32 2022"
      },
      "message": "Apply asmfmt\n"
    },
    {
      "commit": "b5aede900e8eb16bf7e894108a437828bbaaffc6",
      "tree": "d8dc8d2fd029b9f346ecdb650129ae201db92f39",
      "parents": [
        "0c6a696a4466055c5cd99446b1d8bd8c55bbe337"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 19:06:45 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 19:15:30 2022"
      },
      "message": "Simplify/tweak arm64 asm\n"
    },
    {
      "commit": "0c6a696a4466055c5cd99446b1d8bd8c55bbe337",
      "tree": "bd3e71d301f4a66f3908fa5732680f731d209925",
      "parents": [
        "a3876ed889e43007e34b72aba7be1543009d14d5"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 18:55:26 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 18:55:26 2022"
      },
      "message": "Add a script to run tests\n"
    },
    {
      "commit": "a3876ed889e43007e34b72aba7be1543009d14d5",
      "tree": "8392be94a6960f54e8540c1c460b6f3ea3ede1c8",
      "parents": [
        "3211b29da770e51bf1ac94576bc92e36e355dfca"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Nov 12 23:50:48 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 18:52:42 2022"
      },
      "message": "Fix up build constraints\n"
    },
    {
      "commit": "3211b29da770e51bf1ac94576bc92e36e355dfca",
      "tree": "b5022d0ccc628498eeb513dea0e96f21a3b15032",
      "parents": [
        "fb38d781f96923293447df69e51e12743301c5e2",
        "777d1787b879d869a3334d4f948c9f1fba17637a"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 18:51:23 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 18:51:23 2022"
      },
      "message": "Merge branch \u0027asm-arm64\u0027 into arm64-merge-2\n"
    },
    {
      "commit": "fb38d781f96923293447df69e51e12743301c5e2",
      "tree": "1ad99f2b3b33bed0d430b0d56693335c024eecec",
      "parents": [
        "513268860fbcf2c36a002a48acc34e32152e24cc"
      ],
      "author": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Fri Nov 11 12:12:54 2022"
      },
      "committer": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Mon Nov 14 17:20:30 2022"
      },
      "message": "Remove bounds checks from purego Digest\n\nBenchmark results on amd64, Go 1.19, -tags\u003dpurego:\n\nname                 old speed      new speed      delta\nDigestBytes/4B-8      324MB/s ± 1%   354MB/s ± 0%  +9.05%  (p\u003d0.000 n\u003d9+10)\nDigestBytes/16B-8    1.00GB/s ± 1%  1.07GB/s ± 0%  +6.76%  (p\u003d0.000 n\u003d9+9)\nDigestBytes/100B-8   3.54GB/s ± 1%  3.67GB/s ± 1%  +3.74%  (p\u003d0.000 n\u003d10+10)\nDigestBytes/4KB-8    9.54GB/s ± 1%  9.65GB/s ± 0%  +1.11%  (p\u003d0.000 n\u003d10+8)\nDigestBytes/10MB-8   9.63GB/s ± 1%  9.63GB/s ± 1%    ~     (p\u003d0.968 n\u003d9+10)\nDigestString/4B-8     311MB/s ± 0%   334MB/s ± 0%  +7.50%  (p\u003d0.000 n\u003d8+7)\nDigestString/16B-8    973MB/s ± 1%  1036MB/s ± 0%  +6.43%  (p\u003d0.000 n\u003d9+10)\nDigestString/100B-8  3.50GB/s ± 1%  3.60GB/s ± 0%  +2.95%  (p\u003d0.000 n\u003d10+9)\nDigestString/4KB-8   9.51GB/s ± 4%  9.64GB/s ± 0%  +1.38%  (p\u003d0.028 n\u003d10+9)\nDigestString/10MB-8  9.64GB/s ± 2%  9.67GB/s ± 0%    ~     (p\u003d0.222 n\u003d9+9)\n"
    },
    {
      "commit": "777d1787b879d869a3334d4f948c9f1fba17637a",
      "tree": "b00785539d74eb281ef56341a8ad336a1bbd5800",
      "parents": [
        "532df6ae81bf8c2b37d4a375e13f720d2f28a81f"
      ],
      "author": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Sun Nov 13 12:58:39 2022"
      },
      "committer": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Sun Nov 13 13:03:20 2022"
      },
      "message": "Assembler implementation for arm64\n\nBenchmark results on Raspberry Pi 4B, Linux, Go 1.17.1:\n\nname                 old speed      new speed      delta\nSum64/4B-4            180MB/s ± 0%   251MB/s ± 0%  +39.13%  (p\u003d0.000 n\u003d10+10)\nSum64/100B-4          994MB/s ± 0%  1135MB/s ± 0%  +14.25%  (p\u003d0.000 n\u003d10+9)\nSum64/4KB-4          1.92GB/s ± 0%  1.93GB/s ± 0%   +0.43%  (p\u003d0.000 n\u003d10+10)\nSum64/10MB-4         1.88GB/s ± 0%  1.88GB/s ± 0%     ~     (p\u003d0.754 n\u003d10+10)\nSum64String/4B-4      133MB/s ± 4%   228MB/s ± 0%  +71.37%  (p\u003d0.000 n\u003d10+9)\nSum64String/100B-4    949MB/s ± 0%  1103MB/s ± 0%  +16.17%  (p\u003d0.000 n\u003d10+10)\nSum64String/4KB-4    1.92GB/s ± 0%  1.93GB/s ± 0%   +0.40%  (p\u003d0.000 n\u003d9+8)\nSum64String/10MB-4   1.88GB/s ± 0%  1.88GB/s ± 0%     ~     (p\u003d0.146 n\u003d10+8)\nDigestBytes/4B-4     61.9MB/s ± 0%  61.9MB/s ± 0%     ~     (p\u003d0.158 n\u003d10+9)\nDigestBytes/100B-4    695MB/s ± 0%   719MB/s ± 0%   +3.37%  (p\u003d0.000 n\u003d10+10)\nDigestBytes/4KB-4    1.89GB/s ± 0%  1.90GB/s ± 0%   +0.43%  (p\u003d0.000 n\u003d9+10)\nDigestBytes/10MB-4   1.88GB/s ± 0%  1.89GB/s ± 0%   +0.92%  (p\u003d0.000 n\u003d10+9)\nDigestString/4B-4    58.9MB/s ± 0%  58.5MB/s ± 1%   -0.60%  (p\u003d0.032 n\u003d8+10)\nDigestString/100B-4   669MB/s ± 0%   696MB/s ± 1%   +4.05%  (p\u003d0.000 n\u003d10+10)\nDigestString/4KB-4   1.89GB/s ± 0%  1.89GB/s ± 0%   +0.34%  (p\u003d0.000 n\u003d10+10)\nDigestString/10MB-4  1.88GB/s ± 0%  1.89GB/s ± 0%   +0.90%  (p\u003d0.000 n\u003d10+10)\n"
    },
    {
      "commit": "513268860fbcf2c36a002a48acc34e32152e24cc",
      "tree": "dc40a126e7d01bd236199f238a14f48592f99d8a",
      "parents": [
        "aa1a74e0bbdf53357dbe98044f3f7652864212ca"
      ],
      "author": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Fri Nov 11 10:55:07 2022"
      },
      "committer": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Fri Nov 11 12:14:53 2022"
      },
      "message": "Remove bounds checks from purego Sum64\n\nBenchmark results on amd64, Go 1.19, -tags\u003dpurego:\n\nname                                  old speed      new speed       delta\npkg:github.com/cespare/xxhash/v2 goos:linux goarch:amd64\nSum64/4B-8                             676MB/s ± 0%    820MB/s ± 0%  +21.16%  (p\u003d0.000 n\u003d8+9)\nSum64/16B-8                           1.83GB/s ± 1%   2.07GB/s ± 0%  +13.17%  (p\u003d0.000 n\u003d10+10)\nSum64/100B-8                          5.05GB/s ± 1%   5.39GB/s ± 0%   +6.77%  (p\u003d0.000 n\u003d10+9)\nSum64/4KB-8                           9.86GB/s ± 0%  10.03GB/s ± 0%   +1.72%  (p\u003d0.000 n\u003d10+9)\nSum64/10MB-8                          9.64GB/s ± 1%   9.64GB/s ± 0%     ~     (p\u003d0.863 n\u003d9+9)\nSum64String/4B-8                       649MB/s ± 0%    776MB/s ± 1%  +19.69%  (p\u003d0.000 n\u003d9+9)\nSum64String/16B-8                     1.73GB/s ± 0%   1.94GB/s ± 1%  +12.47%  (p\u003d0.000 n\u003d9+9)\nSum64String/100B-8                    4.93GB/s ± 1%   5.26GB/s ± 0%   +6.68%  (p\u003d0.000 n\u003d10+10)\nSum64String/4KB-8                     9.84GB/s ± 1%  10.04GB/s ± 0%   +2.03%  (p\u003d0.000 n\u003d10+9)\nSum64String/10MB-8                    9.64GB/s ± 1%   9.65GB/s ± 1%     ~     (p\u003d0.436 n\u003d10+10)\npkg:github.com/cespare/xxhash/xxhashbench goos:linux goarch:amd64\nHashes/xxhash,direct,bytes,n\u003d5B-8      694MB/s ± 1%    778MB/s ± 0%  +12.11%  (p\u003d0.000 n\u003d9+10)\nHashes/xxhash,direct,string,n\u003d5B-8     588MB/s ± 0%    646MB/s ± 0%   +9.97%  (p\u003d0.000 n\u003d10+8)\nHashes/xxhash,direct,bytes,n\u003d100B-8   4.93GB/s ± 0%   5.18GB/s ± 0%   +5.16%  (p\u003d0.000 n\u003d10+9)\nHashes/xxhash,direct,string,n\u003d100B-8  4.68GB/s ± 0%   4.93GB/s ± 1%   +5.41%  (p\u003d0.000 n\u003d10+10)\nHashes/xxhash,direct,bytes,n\u003d4KB-8    9.81GB/s ± 0%  10.03GB/s ± 0%   +2.20%  (p\u003d0.000 n\u003d9+8)\nHashes/xxhash,direct,string,n\u003d4KB-8   9.79GB/s ± 1%  10.01GB/s ± 0%   +2.22%  (p\u003d0.000 n\u003d10+10)\nHashes/xxhash,direct,bytes,n\u003d10MB-8   9.67GB/s ± 1%   9.68GB/s ± 0%     ~     (p\u003d0.604 n\u003d10+9)\nHashes/xxhash,direct,string,n\u003d10MB-8  9.63GB/s ± 1%   9.67GB/s ± 0%     ~     (p\u003d0.050 n\u003d9+9)\n\nFor very short inputs, the purego version is now competitive with\nthe asm version. For anything longer than a few bytes, not quite\n(old\u003dasm, new\u003dpurego):\n\nname                                  old speed      new speed      delta\npkg:github.com/cespare/xxhash/xxhashbench goos:linux goarch:amd64\nHashes/xxhash,direct,bytes,n\u003d5B-8      715MB/s ± 1%   778MB/s ± 0%   +8.85%  (p\u003d0.000 n\u003d19+10)\nHashes/xxhash,direct,string,n\u003d5B-8     643MB/s ± 1%   646MB/s ± 0%   +0.57%  (p\u003d0.000 n\u003d19+8)\nHashes/xxhash,direct,bytes,n\u003d100B-8   5.29GB/s ± 1%  5.18GB/s ± 0%   -1.99%  (p\u003d0.000 n\u003d20+9)\nHashes/xxhash,direct,string,n\u003d100B-8  5.08GB/s ± 1%  4.93GB/s ± 1%   -2.89%  (p\u003d0.000 n\u003d18+10)\nHashes/xxhash,direct,bytes,n\u003d4KB-8    14.5GB/s ± 1%  10.0GB/s ± 0%  -31.03%  (p\u003d0.000 n\u003d19+8)\nHashes/xxhash,direct,string,n\u003d4KB-8   14.4GB/s ± 0%  10.0GB/s ± 0%  -30.31%  (p\u003d0.000 n\u003d18+10)\nHashes/xxhash,direct,bytes,n\u003d10MB-8   13.4GB/s ± 1%   9.7GB/s ± 0%  -27.55%  (p\u003d0.000 n\u003d20+9)\nHashes/xxhash,direct,string,n\u003d10MB-8  13.3GB/s ± 1%   9.7GB/s ± 0%  -27.31%  (p\u003d0.000 n\u003d19+9)\npkg:github.com/cespare/xxhash/v2 goos:linux goarch:amd64\nSum64/4B-8                             819MB/s ± 0%   820MB/s ± 0%     ~     (p\u003d0.452 n\u003d16+9)\nSum64/16B-8                           2.55GB/s ± 1%  2.07GB/s ± 0%  -18.83%  (p\u003d0.000 n\u003d20+10)\nSum64/100B-8                          5.81GB/s ± 0%  5.39GB/s ± 0%   -7.14%  (p\u003d0.000 n\u003d18+9)\nSum64/4KB-8                           14.6GB/s ± 0%  10.0GB/s ± 0%  -31.35%  (p\u003d0.000 n\u003d17+9)\nSum64/10MB-8                          13.3GB/s ± 1%   9.6GB/s ± 0%  -27.63%  (p\u003d0.000 n\u003d16+9)\nSum64String/4B-8                       731MB/s ± 4%   776MB/s ± 1%   +6.25%  (p\u003d0.000 n\u003d20+9)\nSum64String/16B-8                     2.17GB/s ± 2%  1.94GB/s ± 1%  -10.30%  (p\u003d0.000 n\u003d18+9)\nSum64String/100B-8                    5.27GB/s ± 2%  5.26GB/s ± 0%   -0.27%  (p\u003d0.035 n\u003d18+10)\nSum64String/4KB-8                     14.3GB/s ± 2%  10.0GB/s ± 0%  -29.74%  (p\u003d0.000 n\u003d19+9)\nSum64String/10MB-8                    13.0GB/s ± 4%   9.6GB/s ± 1%  -25.97%  (p\u003d0.000 n\u003d20+10)\n"
    },
    {
      "commit": "aa1a74e0bbdf53357dbe98044f3f7652864212ca",
      "tree": "7dc343fda8edf3e34925e45a18ad6ba0c55b6ccf",
      "parents": [
        "9ee41ed4f6e16aa87c0c28ff468118b1bf77c7c8"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Jan 10 22:45:01 2022"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Jan 10 22:45:01 2022"
      },
      "message": "Add 16-byte hash benchmarks\n\nRight now we skip from 4B to 100B but small-string performance is\nprobably worth a bit more emphasis.\n"
    },
    {
      "commit": "9ee41ed4f6e16aa87c0c28ff468118b1bf77c7c8",
      "tree": "84991350f7afaff8b468686297017e1af4d02c4b",
      "parents": [
        "532df6ae81bf8c2b37d4a375e13f720d2f28a81f"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 31 19:38:34 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 31 19:53:39 2021"
      },
      "message": "Switch to WillAbides/setup-go-faster\n"
    },
    {
      "commit": "532df6ae81bf8c2b37d4a375e13f720d2f28a81f",
      "tree": "8a3b9f9e99ab6aa95c5089d9b5ac894aa35ec3d7",
      "parents": [
        "08b98dc4990404e47f9bb36d46cae56196a0a0b6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 20:21:28 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 20:21:28 2021"
      },
      "message": "Format with Go 1.17 gofmt to use //go:build constraints\n"
    },
    {
      "commit": "08b98dc4990404e47f9bb36d46cae56196a0a0b6",
      "tree": "3f1f371901b46cda718a2d40c3da40d486a54d3c",
      "parents": [
        "0f9df2801227bf72450d1af39971fac7d35e35c5"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 02:22:30 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 02:22:40 2021"
      },
      "message": "Make comment more accurate\n"
    },
    {
      "commit": "0f9df2801227bf72450d1af39971fac7d35e35c5",
      "tree": "e816ea0392e7f60a909d5d2b0ce502b84771bee5",
      "parents": [
        "adef12e66f773c5559dc4b931a6b849020bc6bc9"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 00:54:41 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 01:05:43 2021"
      },
      "message": "Run tests on 386, arm, and arm64 via qemu\n"
    },
    {
      "commit": "adef12e66f773c5559dc4b931a6b849020bc6bc9",
      "tree": "8bad9aa1151a6faef5a2f4938021694c9a45e2e6",
      "parents": [
        "e7a6b52374f7e2abfb8abb27249d53a1997b09a7"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 00:19:26 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 00:19:26 2021"
      },
      "message": "Update README\n"
    },
    {
      "commit": "e7a6b52374f7e2abfb8abb27249d53a1997b09a7",
      "tree": "78bbde113826f3f23077705c85b4e2b48a4c6624",
      "parents": [
        "3b9a658f01dd5db41fa2272fb9a22e60ce4c1807"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 06:25:48 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 09:58:46 2021"
      },
      "message": "Fix asm for dynamic linking\n\nR15 and CX are both clobbered under dynamic linking; avoid them.\n\nFixes #54\n"
    },
    {
      "commit": "3b9a658f01dd5db41fa2272fb9a22e60ce4c1807",
      "tree": "4b38a84b763c209fe69feb9e38cfce8489eecf57",
      "parents": [
        "3c9a0f33e520886dce0de00dfd546be2cc459dde"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 09:07:40 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 09:58:46 2021"
      },
      "message": "Add a basic test for dynamic linking\n"
    },
    {
      "commit": "3c9a0f33e520886dce0de00dfd546be2cc459dde",
      "tree": "b4056415f1123b8b00222f8bb9705d28744eb53c",
      "parents": [
        "15613bbf27a61478eb44de76620f33eb7e485776"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 08:34:45 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 08:34:45 2021"
      },
      "message": "Update badges\n"
    },
    {
      "commit": "15613bbf27a61478eb44de76620f33eb7e485776",
      "tree": "29e9bc1ed43179457099f09bbbb8c59df19a205e",
      "parents": [
        "8d433f3eafcbf8d37d12c8968670eb0bfb31089e"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 07:27:42 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 08:28:07 2021"
      },
      "message": "Remove Travis CI; use GH Actions\n"
    },
    {
      "commit": "8d433f3eafcbf8d37d12c8968670eb0bfb31089e",
      "tree": "719c17841828e8603a7afe85b344d4b886e100ef",
      "parents": [
        "1a548c8655f85f3ffcf3578aa1dc8f922ecb6a98"
      ],
      "author": {
        "name": "Aliaksandr Valialkin",
        "email": "valyala@gmail.com",
        "time": "Tue Jun 08 12:38:49 2021"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jun 08 17:37:11 2021"
      },
      "message": "Add VictoriaMetrics to the list of projects that use xxhash"
    },
    {
      "commit": "1a548c8655f85f3ffcf3578aa1dc8f922ecb6a98",
      "tree": "3656667a9a3093c6e4c3a261f7ea62bb83eaec0d",
      "parents": [
        "fd5c34b71e8ec6a322b55ae01fde54e8edea759a"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 05 09:12:55 2020"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 05 09:12:55 2020"
      },
      "message": "Fix skipped test case\n"
    },
    {
      "commit": "fd5c34b71e8ec6a322b55ae01fde54e8edea759a",
      "tree": "045d7aa5aab84113b2c2d42b1cb6f6e2d959bb81",
      "parents": [
        "a7909af24e080cb18e105af79be6915531147a86"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 20:52:10 2020"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 20:52:10 2020"
      },
      "message": "Remove useless assignment\n"
    },
    {
      "commit": "a7909af24e080cb18e105af79be6915531147a86",
      "tree": "b85828dcf6111d138d17fc08ad93899d26f43157",
      "parents": [
        "e0ea1e3196ac0aac60eccd7670662049875d8b7b"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 04:05:45 2020"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 20:50:37 2020"
      },
      "message": "Allow Sum64String and (*Digest).WriteString to be inlined\n\nBenchmarks:\n\nname                  old time/op    new time/op    delta\nSum64String/4B-12       4.78ns ± 1%    3.57ns ± 4%  -25.27%  (p\u003d0.000 n\u003d8+10)\nSum64String/100B-12     14.5ns ± 1%    12.9ns ± 0%  -10.76%  (p\u003d0.000 n\u003d9+10)\nSum64String/4KB-12       229ns ± 0%     229ns ± 1%     ~     (p\u003d0.395 n\u003d7+10)\nSum64String/10MB-12      628µs ± 1%     630µs ± 2%     ~     (p\u003d1.000 n\u003d9+10)\nDigestString/4B-12      11.4ns ± 1%     9.7ns ± 1%  -14.95%  (p\u003d0.000 n\u003d10+10)\nDigestString/100B-12    23.6ns ± 1%    21.3ns ± 2%   -9.65%  (p\u003d0.000 n\u003d10+10)\nDigestString/4KB-12      241ns ± 1%     239ns ± 0%   -0.67%  (p\u003d0.001 n\u003d10+7)\nDigestString/10MB-12     627µs ± 1%     628µs ± 1%     ~     (p\u003d0.631 n\u003d10+10)\n\nname                  old speed      new speed      delta\nSum64String/4B-12      837MB/s ± 1%  1124MB/s ± 2%  +34.42%  (p\u003d0.000 n\u003d10+9)\nSum64String/100B-12   6.88GB/s ± 2%  7.72GB/s ± 1%  +12.16%  (p\u003d0.000 n\u003d10+10)\nSum64String/4KB-12    17.5GB/s ± 0%  17.5GB/s ± 1%     ~     (p\u003d0.408 n\u003d8+10)\nSum64String/10MB-12   15.9GB/s ± 1%  15.9GB/s ± 2%     ~     (p\u003d1.000 n\u003d9+10)\nDigestString/4B-12     350MB/s ± 1%   411MB/s ± 1%  +17.55%  (p\u003d0.000 n\u003d10+10)\nDigestString/100B-12  4.23GB/s ± 1%  4.69GB/s ± 1%  +10.84%  (p\u003d0.000 n\u003d10+9)\nDigestString/4KB-12   16.6GB/s ± 1%  16.7GB/s ± 0%   +0.67%  (p\u003d0.001 n\u003d10+8)\nDigestString/10MB-12  16.0GB/s ± 1%  15.9GB/s ± 1%     ~     (p\u003d0.631 n\u003d10+10)\n\nAnd with -tags purego:\n\nname                  old time/op    new time/op    delta\nSum64String/4B-12       5.57ns ± 1%    4.22ns ± 1%  -24.14%  (p\u003d0.000 n\u003d10+9)\nSum64String/100B-12     16.0ns ± 1%    14.8ns ± 0%   -7.27%  (p\u003d0.000 n\u003d10+6)\nSum64String/4KB-12       327ns ± 2%     325ns ± 1%     ~     (p\u003d0.050 n\u003d10+10)\nSum64String/10MB-12      866µs ± 3%     856µs ± 0%   -1.05%  (p\u003d0.002 n\u003d9+8)\nDigestString/4B-12      11.2ns ± 1%    10.0ns ± 1%  -10.90%  (p\u003d0.000 n\u003d10+9)\nDigestString/100B-12    25.5ns ± 1%    22.8ns ± 0%  -10.62%  (p\u003d0.000 n\u003d10+9)\nDigestString/4KB-12      342ns ± 1%     340ns ± 1%   -0.56%  (p\u003d0.018 n\u003d9+10)\nDigestString/10MB-12     877µs ± 1%     878µs ± 2%     ~     (p\u003d0.400 n\u003d10+9)\n\nname                  old speed      new speed      delta\nSum64String/4B-12      718MB/s ± 1%   947MB/s ± 1%  +31.82%  (p\u003d0.000 n\u003d10+9)\nSum64String/100B-12   6.26GB/s ± 1%  6.75GB/s ± 1%   +7.81%  (p\u003d0.000 n\u003d10+10)\nSum64String/4KB-12    12.2GB/s ± 2%  12.3GB/s ± 1%   +0.70%  (p\u003d0.022 n\u003d10+9)\nSum64String/10MB-12   11.6GB/s ± 3%  11.7GB/s ± 0%   +1.05%  (p\u003d0.002 n\u003d9+8)\nDigestString/4B-12     357MB/s ± 1%   401MB/s ± 1%  +12.32%  (p\u003d0.000 n\u003d10+9)\nDigestString/100B-12  3.93GB/s ± 1%  4.40GB/s ± 0%  +11.95%  (p\u003d0.000 n\u003d10+9)\nDigestString/4KB-12   11.7GB/s ± 1%  11.8GB/s ± 1%   +0.68%  (p\u003d0.011 n\u003d10+10)\nDigestString/10MB-12  11.4GB/s ± 1%  11.4GB/s ± 2%     ~     (p\u003d0.400 n\u003d10+9)\n"
    },
    {
      "commit": "e0ea1e3196ac0aac60eccd7670662049875d8b7b",
      "tree": "8ee1887326be7eaef9690cd47f0b4703f8df27b0",
      "parents": [
        "9160c383fd497cbfe304e949e27ae4a806c5c7e6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 02:07:25 2020"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 02:08:30 2020"
      },
      "message": "Rewrite benchmarks not to use indirect calls\n\nMove the important benchmarks back into the xxhash package itself.\n\nUpdates #22\n"
    },
    {
      "commit": "9160c383fd497cbfe304e949e27ae4a806c5c7e6",
      "tree": "f2f7ed67d26e9833b6c0d5af15b858acedd92768",
      "parents": [
        "e307e39619f5579ffe9b567bf81bca8ec20151de"
      ],
      "author": {
        "name": "Gerasimos (Makis) Maropoulos",
        "email": "kataras2006@hotmail.com",
        "time": "Sun Nov 15 09:53:52 2020"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Nov 16 17:25:59 2020"
      },
      "message": "Add FastCache to the Projects using this package\n\nAdd [FastCache](https://github.com/VictoriaMetrics/fastcache) to the Projects using this package on README.md.\r\n\r\nSource: https://github.com/VictoriaMetrics/fastcache/blob/8835719dc76cc26f97026e3aa726742e7d2f1053/fastcache.go#L11"
    },
    {
      "commit": "e307e39619f5579ffe9b567bf81bca8ec20151de",
      "tree": "9c07a73abbec7b70e238e526e947ebd8b2a55af9",
      "parents": [
        "d7df74196a9e781ede915320c11c378c1b2f3a1f"
      ],
      "author": {
        "name": "nagesh4193",
        "email": "70690392+nagesh4193@users.noreply.github.com",
        "time": "Wed Oct 07 12:39:35 2020"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 07 12:39:35 2020"
      },
      "message": "Added Power Support ppc64le"
    },
    {
      "commit": "d7df74196a9e781ede915320c11c378c1b2f3a1f",
      "tree": "6bab238664d6122ceefa198029b504f268e8b783",
      "parents": [
        "2372543dd2bbab7a55ce14c54eb357abe23a42f5"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 14 17:47:13 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 14 17:47:13 2019"
      },
      "message": "Fix go vet complaint\n\nThanks to @klauspost for pointing this out in #33.\n"
    },
    {
      "commit": "2372543dd2bbab7a55ce14c54eb357abe23a42f5",
      "tree": "21a005971f5e20e71743ab7353ed102c5e284396",
      "parents": [
        "34bb48f01fcee1ff49ed3002909415bf0aee859d",
        "b06934cfcfd47f49592e8296621c0abeda88839c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Oct 31 20:04:18 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Oct 31 20:04:18 2019"
      },
      "message": "Merge remote-tracking branch \u0027jooola/patch-1\u0027\n"
    },
    {
      "commit": "34bb48f01fcee1ff49ed3002909415bf0aee859d",
      "tree": "d30427911117930651b63d767cb23e56f172c700",
      "parents": [
        "997e1685cae39ce5a9573990e7fabe3e796898a0"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Oct 31 19:55:04 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Oct 31 19:55:57 2019"
      },
      "message": "Be more specific about supported Go versions\n"
    },
    {
      "commit": "b06934cfcfd47f49592e8296621c0abeda88839c",
      "tree": "68f675672e4402fedd4ca7a6e63fc45f7c75c072",
      "parents": [
        "997e1685cae39ce5a9573990e7fabe3e796898a0"
      ],
      "author": {
        "name": "Jonas L",
        "email": "jooola@users.noreply.github.com",
        "time": "Thu Oct 31 19:30:07 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 31 19:30:07 2019"
      },
      "message": "Fix minimal go version (\u003e1.11)\n\nWhen downloading your library with go \u003c1.13, it fails because of the requirement set in the go.mod file."
    },
    {
      "commit": "997e1685cae39ce5a9573990e7fabe3e796898a0",
      "tree": "80e17dd649bebe58096c5ccf30e685a17b2a69ec",
      "parents": [
        "de209a9ffae3256185a6bb135d1a0ada7b2b5f09"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Oct 25 18:21:38 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Oct 25 18:21:38 2019"
      },
      "message": "Add note about using Go 1.11+\n"
    },
    {
      "commit": "de209a9ffae3256185a6bb135d1a0ada7b2b5f09",
      "tree": "d505f1fa5cc3cfcd26ebeb2eb87a4c0b4e987f3b",
      "parents": [
        "32f3a100fff237d14029d34ec8579ef02aaaf87c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Sep 03 23:50:28 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Sep 04 02:34:00 2019"
      },
      "message": "Move benchmarks to their own module\n\nThis avoids all dependencies for users. It also fixes the weird v1\nself-dependency.\n\nFixes #28\n"
    },
    {
      "commit": "32f3a100fff237d14029d34ec8579ef02aaaf87c",
      "tree": "688a9381ae0c683901a2c916681a7a0272a54b92",
      "parents": [
        "3767db7a7e183c0ad3395680d460d0b61534ae7b"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Jun 12 16:48:07 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Jun 12 16:48:07 2019"
      },
      "message": "Remove unnecessary conversions\n\nFixes #26\n"
    },
    {
      "commit": "3767db7a7e183c0ad3395680d460d0b61534ae7b",
      "tree": "6f9812ff6860471f03d38d1c9159cb2dc61b1484",
      "parents": [
        "3b82fb7d186719faeedd0c2864f868c74fbf79a1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:30:14 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:30:14 2019"
      },
      "message": "Run go mod tidy\n"
    },
    {
      "commit": "3b82fb7d186719faeedd0c2864f868c74fbf79a1",
      "tree": "e49484d2c69ecc2dd1401f9ca2ce6988f9d261a9",
      "parents": [
        "30d0e5bcb75d96ed4140aa9fdd4a3df79f60747e"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:26:12 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:26:19 2019"
      },
      "message": "Update module/import paths for v2\n"
    },
    {
      "commit": "30d0e5bcb75d96ed4140aa9fdd4a3df79f60747e",
      "tree": "ae4370838acc73eba075ee7d53570279c000ae5f",
      "parents": [
        "7052e46dac0638e1fa34fac4c6af1c58fac7c102"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Jan 02 00:17:29 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:19:26 2019"
      },
      "message": "Make Digest implement the encoding.Binary(Un)Marshaler interfaces\n"
    },
    {
      "commit": "7052e46dac0638e1fa34fac4c6af1c58fac7c102",
      "tree": "b6eb0606e8727afae5b32b7a7a18b76071d43bca",
      "parents": [
        "733af8e8a8dd8706a3fc084f59a52be2b20d688f"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 23:21:05 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:17:27 2019"
      },
      "message": "Remove pre-Go1.9 fallback code\n\nGo 1.12beta1 is out and even Appengine\u0027s oldest runtime is Go 1.9,\nso get rid of pre-1.9 fallback code and always use math/bits.\n"
    },
    {
      "commit": "733af8e8a8dd8706a3fc084f59a52be2b20d688f",
      "tree": "1a58011cbcee02fa5ce2126fa0d2c1f6104b37f6",
      "parents": [
        "b821ea84e368f8b58a4942d161447cff8eb1f34b"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Jan 02 00:58:43 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:16:03 2019"
      },
      "message": "Delete commented-out test\n\nNo point in keeping this around. Running automated tests with various\nbuild tags is good enough.\n"
    },
    {
      "commit": "b821ea84e368f8b58a4942d161447cff8eb1f34b",
      "tree": "8b35ef639e5485185d163a7462e97c52648755bd",
      "parents": [
        "fd51581916f524bf9854413f9871cd27bcc9d7a0"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 22:54:18 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Jan 04 01:13:50 2019"
      },
      "message": "Tidy up the README\n"
    },
    {
      "commit": "fd51581916f524bf9854413f9871cd27bcc9d7a0",
      "tree": "900b983f9517229bd0204ac455d262d74a9166e8",
      "parents": [
        "26315204797e07a5e9a825080a37ababf62404d3"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 22:03:33 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 22:55:40 2019"
      },
      "message": "Use tests to verify zero-allocation code paths\n"
    },
    {
      "commit": "26315204797e07a5e9a825080a37ababf62404d3",
      "tree": "a7300fcf90dc045b7eb39b0a1799aab67ba238e7",
      "parents": [
        "bf43f18fa4a914841bb5c40ccdd9109b77d550e9"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 21:58:30 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 22:04:24 2019"
      },
      "message": "Clean up subtests/subbenchmarks\n"
    },
    {
      "commit": "bf43f18fa4a914841bb5c40ccdd9109b77d550e9",
      "tree": "f973be80e27483a6204a59970f164f05434e31a5",
      "parents": [
        "9d72dfec76812e1ff4dba23edb251bc1fa635513"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 21:26:32 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 22:04:24 2019"
      },
      "message": "Tweak doc comments\n"
    },
    {
      "commit": "9d72dfec76812e1ff4dba23edb251bc1fa635513",
      "tree": "511bd23f7c52872202c6a7bb0994f31368aa9652",
      "parents": [
        "f728abcf1928d0eeb63ca34d33e1aa93133162e5"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 20:53:33 2019"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 22:04:20 2019"
      },
      "message": "Change Digest receiver name from x to d\n"
    },
    {
      "commit": "f728abcf1928d0eeb63ca34d33e1aa93133162e5",
      "tree": "c155127deebe92bbd43601acd105ad30682b680e",
      "parents": [
        "9db2993fa67554a53d4c77b0f9a4a2edd8082892"
      ],
      "author": {
        "name": "Diego Ongaro",
        "email": "dongaro@ebay.com",
        "time": "Thu Nov 29 22:45:49 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 19:47:05 2019"
      },
      "message": "Add Digest.WriteString()\n\nThis helps avoid a memory allocations when hashing strings using a Digest. See\nhttps://github.com/cespare/xxhash/issues/13.\n\nHere\u0027s the delta with the previous commit, showing how WriteString avoids the\nlast alllocation.\n\nname                                   old time/op    new time/op    delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4     16.7ns ± 1%    17.5ns ±11%      ~     (p\u003d0.500 n\u003d7+6)\nHashes/xxhash,direct,string,n\u003d100_B-4    19.0ns ± 1%    19.1ns ± 2%      ~     (p\u003d0.925 n\u003d6+7)\nHashes/xxhash,digest,bytes,n\u003d100_B-4     29.4ns ± 1%    29.5ns ± 2%      ~     (p\u003d0.730 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4    66.6ns ± 1%    32.5ns ± 1%   -51.27%  (p\u003d0.001 n\u003d7+6)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4     17.8ns ± 2%    17.7ns ± 1%      ~     (p\u003d0.461 n\u003d7+7)\nHashes/xxhash,direct,string,n\u003d100_B-4    20.1ns ± 2%    20.0ns ± 1%      ~     (p\u003d0.867 n\u003d7+7)\nHashes/xxhash,digest,bytes,n\u003d100_B-4     38.4ns ± 2%    38.1ns ± 2%      ~     (p\u003d0.133 n\u003d6+7)\nHashes/xxhash,digest,string,n\u003d100_B-4    92.3ns ±28%    41.2ns ± 1%   -55.34%  (p\u003d0.001 n\u003d7+7)\n\nname                                   old speed      new speed      delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4   6.00GB/s ± 1%  5.50GB/s ±26%      ~     (p\u003d0.383 n\u003d7+7)\nHashes/xxhash,direct,string,n\u003d100_B-4  5.24GB/s ± 1%  5.25GB/s ± 2%      ~     (p\u003d0.945 n\u003d6+7)\nHashes/xxhash,digest,bytes,n\u003d100_B-4   3.40GB/s ± 1%  3.39GB/s ± 2%      ~     (p\u003d1.000 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4  1.50GB/s ± 1%  3.07GB/s ± 2%  +104.55%  (p\u003d0.001 n\u003d7+7)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4   5.61GB/s ± 1%  5.64GB/s ± 1%      ~     (p\u003d0.259 n\u003d7+7)\nHashes/xxhash,direct,string,n\u003d100_B-4  4.99GB/s ± 2%  4.99GB/s ± 1%      ~     (p\u003d0.710 n\u003d7+7)\nHashes/xxhash,digest,bytes,n\u003d100_B-4   2.60GB/s ± 2%  2.62GB/s ± 2%      ~     (p\u003d0.181 n\u003d6+7)\nHashes/xxhash,digest,string,n\u003d100_B-4  1.10GB/s ±23%  2.43GB/s ± 1%  +120.31%  (p\u003d0.001 n\u003d7+7)\n\nname                                   old alloc/op   new alloc/op   delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4      0.00B          0.00B           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4     0.00B          0.00B           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4      0.00B          0.00B           ~     (all equal)\nHashes/xxhash,digest,string,n\u003d100_B-4      112B ± 0%        0B       -100.00%  (p\u003d0.001 n\u003d7+7)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4      0.00B          0.00B           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4     0.00B          0.00B           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4      0.00B          0.00B           ~     (all equal)\nHashes/xxhash,digest,string,n\u003d100_B-4      112B ± 0%        0B       -100.00%  (p\u003d0.001 n\u003d7+7)\n\nname                                   old allocs/op  new allocs/op  delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4       0.00           0.00           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4      0.00           0.00           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4       0.00           0.00           ~     (all equal)\nHashes/xxhash,digest,string,n\u003d100_B-4      1.00 ± 0%      0.00       -100.00%  (p\u003d0.001 n\u003d7+7)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4       0.00           0.00           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4      0.00           0.00           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4       0.00           0.00           ~     (all equal)\nHashes/xxhash,digest,string,n\u003d100_B-4      1.00 ± 0%      0.00       -100.00%  (p\u003d0.001 n\u003d7+7)\n"
    },
    {
      "commit": "9db2993fa67554a53d4c77b0f9a4a2edd8082892",
      "tree": "9f5683b6a669f668d77bf15f0ff717e6966e943e",
      "parents": [
        "15c3e70b56a33f5ea3a66469fdff1f85e90d798c"
      ],
      "author": {
        "name": "Diego Ongaro",
        "email": "dongaro@ebay.com",
        "time": "Thu Nov 29 22:34:13 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 19:47:05 2019"
      },
      "message": "Update New() to return *Digest (breaking change)\n\nNew used to return a hash.Hash64. This resulted in unnecessary memory\nallocations for the caller, and it prevented the returned value from exposing\nadditional methods like WriteString. Digest still implements hash.Hash64, so\ncallers may continue to use it as before.\n\nThis is a breaking change that may affect some users. Specifically, the\nfollowing code will no longer work:\n    var myHashFunc func() hash.Hash64\n    myHashFunc \u003d xxhash.New\n\nSee https://github.com/cespare/xxhash/issues/13.\n\nThis commit also changes the formatting on the README slightly. The * in\n*Digest caused it to render poorly when simply indenting the godoc output, so\nthis commit switches it to ``` instead.\n\nHere is the delta with the previous commit as a baseline. Note the redution in\nmemory allocations.\n\nname                                   old time/op    new time/op    delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4     16.3ns ± 2%    16.7ns ± 1%    +2.37%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,direct,string,n\u003d100_B-4    18.7ns ± 2%    19.0ns ± 1%    +1.87%  (p\u003d0.005 n\u003d7+6)\nHashes/xxhash,digest,bytes,n\u003d100_B-4     51.8ns ± 1%    29.4ns ± 1%   -43.28%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4     100ns ±26%      67ns ± 1%   -33.57%  (p\u003d0.001 n\u003d7+7)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4     17.6ns ± 2%    17.8ns ± 2%    +1.22%  (p\u003d0.038 n\u003d7+7)\nHashes/xxhash,direct,string,n\u003d100_B-4    19.9ns ± 1%    20.1ns ± 2%      ~     (p\u003d0.266 n\u003d6+7)\nHashes/xxhash,digest,bytes,n\u003d100_B-4     58.9ns ± 1%    38.4ns ± 2%   -34.80%  (p\u003d0.000 n\u003d7+6)\nHashes/xxhash,digest,string,n\u003d100_B-4    96.7ns ± 1%    92.3ns ±28%      ~     (p\u003d0.209 n\u003d7+7)\n\nname                                   old speed      new speed      delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4   6.14GB/s ± 2%  6.00GB/s ± 1%    -2.28%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,direct,string,n\u003d100_B-4  5.35GB/s ± 2%  5.24GB/s ± 1%    -2.02%  (p\u003d0.002 n\u003d7+6)\nHashes/xxhash,digest,bytes,n\u003d100_B-4   1.93GB/s ± 1%  3.40GB/s ± 1%   +76.20%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4  1.01GB/s ±22%  1.50GB/s ± 1%   +48.36%  (p\u003d0.001 n\u003d7+7)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4   5.68GB/s ± 2%  5.61GB/s ± 1%    -1.27%  (p\u003d0.026 n\u003d7+7)\nHashes/xxhash,direct,string,n\u003d100_B-4  5.02GB/s ± 1%  4.99GB/s ± 2%      ~     (p\u003d0.234 n\u003d6+7)\nHashes/xxhash,digest,bytes,n\u003d100_B-4   1.70GB/s ± 1%  2.60GB/s ± 2%   +53.35%  (p\u003d0.001 n\u003d7+6)\nHashes/xxhash,digest,string,n\u003d100_B-4  1.03GB/s ± 1%  1.10GB/s ±23%      ~     (p\u003d0.209 n\u003d7+7)\n\nname                                   old alloc/op   new alloc/op   delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4      0.00B          0.00B           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4     0.00B          0.00B           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4      80.0B ± 0%      0.0B       -100.00%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4      192B ± 0%      112B ± 0%   -41.67%  (p\u003d0.001 n\u003d7+7)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4      0.00B          0.00B           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4     0.00B          0.00B           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4      80.0B ± 0%      0.0B       -100.00%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4      192B ± 0%      112B ± 0%   -41.67%  (p\u003d0.001 n\u003d7+7)\n\nname                                   old allocs/op  new allocs/op  delta\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4       0.00           0.00           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4      0.00           0.00           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4       1.00 ± 0%      0.00       -100.00%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4      2.00 ± 0%      1.00 ± 0%   -50.00%  (p\u003d0.001 n\u003d7+7)\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4       0.00           0.00           ~     (all equal)\nHashes/xxhash,direct,string,n\u003d100_B-4      0.00           0.00           ~     (all equal)\nHashes/xxhash,digest,bytes,n\u003d100_B-4       1.00 ± 0%      0.00       -100.00%  (p\u003d0.001 n\u003d7+7)\nHashes/xxhash,digest,string,n\u003d100_B-4      2.00 ± 0%      1.00 ± 0%   -50.00%  (p\u003d0.001 n\u003d7+7)\n"
    },
    {
      "commit": "15c3e70b56a33f5ea3a66469fdff1f85e90d798c",
      "tree": "3c38b80711856c0b6ae0a9c8b6f7ed4017d14fc7",
      "parents": [
        "6e6013902ce9f911fd0b042e3510fd1c4b3e0f6e"
      ],
      "author": {
        "name": "Diego Ongaro",
        "email": "dongaro@ebay.com",
        "time": "Thu Nov 29 22:12:05 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 19:47:05 2019"
      },
      "message": "Add more benchmarks using New(), etc\n\nThe current 100B hash results on my MacBook Pro with Go v1.11.2 are:\n\nname                                     time/op\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4       16.3ns ± 2%\nHashes/xxhash,direct,string,n\u003d100_B-4      18.7ns ± 2%\nHashes/xxhash,digest,bytes,n\u003d100_B-4       51.8ns ± 1%\nHashes/xxhash,digest,string,n\u003d100_B-4       100ns ±26%\nHashes/OneOfOne,direct,bytes,n\u003d100_B-4     22.5ns ± 1%\nHashes/OneOfOne,direct,string,n\u003d100_B-4    24.3ns ± 1%\nHashes/OneOfOne,digest,bytes,n\u003d100_B-4     38.2ns ± 1%\nHashes/OneOfOne,digest,string,n\u003d100_B-4    40.1ns ± 2%\nHashes/murmur3,direct,bytes,n\u003d100_B-4      33.9ns ± 1%\nHashes/murmur3,direct,string,n\u003d100_B-4     72.9ns ± 1%\nHashes/murmur3,digest,bytes,n\u003d100_B-4      85.1ns ± 1%\nHashes/murmur3,digest,string,n\u003d100_B-4      125ns ± 1%\nHashes/CRC-32,direct,bytes,n\u003d100_B-4       36.5ns ± 2%\nHashes/CRC-32,direct,string,n\u003d100_B-4      81.6ns ± 8%\nHashes/CRC-32,digest,bytes,n\u003d100_B-4       72.8ns ± 1%\nHashes/CRC-32,digest,string,n\u003d100_B-4       110ns ± 2%\nHashes/fnv1a,digest,bytes,n\u003d100_B-4         122ns ± 1%\nHashes/fnv1a,digest,string,n\u003d100_B-4        158ns ± 1%\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4       17.6ns ± 2%\nHashes/xxhash,direct,string,n\u003d100_B-4      19.9ns ± 1%\nHashes/xxhash,digest,bytes,n\u003d100_B-4       58.9ns ± 1%\nHashes/xxhash,digest,string,n\u003d100_B-4      96.7ns ± 1%\n\nname                                     speed\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4     6.14GB/s ± 2%\nHashes/xxhash,direct,string,n\u003d100_B-4    5.35GB/s ± 2%\nHashes/xxhash,digest,bytes,n\u003d100_B-4     1.93GB/s ± 1%\nHashes/xxhash,digest,string,n\u003d100_B-4    1.01GB/s ±22%\nHashes/OneOfOne,direct,bytes,n\u003d100_B-4   4.44GB/s ± 2%\nHashes/OneOfOne,direct,string,n\u003d100_B-4  4.11GB/s ± 1%\nHashes/OneOfOne,digest,bytes,n\u003d100_B-4   2.62GB/s ± 1%\nHashes/OneOfOne,digest,string,n\u003d100_B-4  2.50GB/s ± 1%\nHashes/murmur3,direct,bytes,n\u003d100_B-4    2.95GB/s ± 1%\nHashes/murmur3,direct,string,n\u003d100_B-4   1.37GB/s ± 1%\nHashes/murmur3,digest,bytes,n\u003d100_B-4    1.18GB/s ± 1%\nHashes/murmur3,digest,string,n\u003d100_B-4    798MB/s ± 2%\nHashes/CRC-32,direct,bytes,n\u003d100_B-4     2.74GB/s ± 2%\nHashes/CRC-32,direct,string,n\u003d100_B-4    1.23GB/s ± 8%\nHashes/CRC-32,digest,bytes,n\u003d100_B-4     1.37GB/s ± 1%\nHashes/CRC-32,digest,string,n\u003d100_B-4     906MB/s ± 2%\nHashes/fnv1a,digest,bytes,n\u003d100_B-4       816MB/s ± 1%\nHashes/fnv1a,digest,string,n\u003d100_B-4      630MB/s ± 2%\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4     5.68GB/s ± 2%\nHashes/xxhash,direct,string,n\u003d100_B-4    5.02GB/s ± 1%\nHashes/xxhash,digest,bytes,n\u003d100_B-4     1.70GB/s ± 1%\nHashes/xxhash,digest,string,n\u003d100_B-4    1.03GB/s ± 1%\n\nname                                     alloc/op\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4        0.00B\nHashes/xxhash,direct,string,n\u003d100_B-4       0.00B\nHashes/xxhash,digest,bytes,n\u003d100_B-4        80.0B ± 0%\nHashes/xxhash,digest,string,n\u003d100_B-4        192B ± 0%\nHashes/OneOfOne,direct,bytes,n\u003d100_B-4      0.00B\nHashes/OneOfOne,direct,string,n\u003d100_B-4     0.00B\nHashes/OneOfOne,digest,bytes,n\u003d100_B-4      0.00B\nHashes/OneOfOne,digest,string,n\u003d100_B-4     0.00B\nHashes/murmur3,direct,bytes,n\u003d100_B-4       0.00B\nHashes/murmur3,direct,string,n\u003d100_B-4       112B ± 0%\nHashes/murmur3,digest,bytes,n\u003d100_B-4       96.0B ± 0%\nHashes/murmur3,digest,string,n\u003d100_B-4       208B ± 0%\nHashes/CRC-32,direct,bytes,n\u003d100_B-4        0.00B\nHashes/CRC-32,direct,string,n\u003d100_B-4        112B ± 0%\nHashes/CRC-32,digest,bytes,n\u003d100_B-4        16.0B ± 0%\nHashes/CRC-32,digest,string,n\u003d100_B-4        128B ± 0%\nHashes/fnv1a,digest,bytes,n\u003d100_B-4         8.00B ± 0%\nHashes/fnv1a,digest,string,n\u003d100_B-4         120B ± 0%\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4        0.00B\nHashes/xxhash,direct,string,n\u003d100_B-4       0.00B\nHashes/xxhash,digest,bytes,n\u003d100_B-4        80.0B ± 0%\nHashes/xxhash,digest,string,n\u003d100_B-4        192B ± 0%\n\nname                                     allocs/op\ntags:!purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4         0.00\nHashes/xxhash,direct,string,n\u003d100_B-4        0.00\nHashes/xxhash,digest,bytes,n\u003d100_B-4         1.00 ± 0%\nHashes/xxhash,digest,string,n\u003d100_B-4        2.00 ± 0%\nHashes/OneOfOne,direct,bytes,n\u003d100_B-4       0.00\nHashes/OneOfOne,direct,string,n\u003d100_B-4      0.00\nHashes/OneOfOne,digest,bytes,n\u003d100_B-4       0.00\nHashes/OneOfOne,digest,string,n\u003d100_B-4      0.00\nHashes/murmur3,direct,bytes,n\u003d100_B-4        0.00\nHashes/murmur3,direct,string,n\u003d100_B-4       1.00 ± 0%\nHashes/murmur3,digest,bytes,n\u003d100_B-4        1.00 ± 0%\nHashes/murmur3,digest,string,n\u003d100_B-4       2.00 ± 0%\nHashes/CRC-32,direct,bytes,n\u003d100_B-4         0.00\nHashes/CRC-32,direct,string,n\u003d100_B-4        1.00 ± 0%\nHashes/CRC-32,digest,bytes,n\u003d100_B-4         1.00 ± 0%\nHashes/CRC-32,digest,string,n\u003d100_B-4        2.00 ± 0%\nHashes/fnv1a,digest,bytes,n\u003d100_B-4          1.00 ± 0%\nHashes/fnv1a,digest,string,n\u003d100_B-4         2.00 ± 0%\ntags:purego\nHashes/xxhash,direct,bytes,n\u003d100_B-4         0.00\nHashes/xxhash,direct,string,n\u003d100_B-4        0.00\nHashes/xxhash,digest,bytes,n\u003d100_B-4         1.00 ± 0%\nHashes/xxhash,digest,string,n\u003d100_B-4        2.00 ± 0%\n\nNote that the memory allocations currently dominate the xxhash,digest\nbenchmarks, as reported in https://github.com/cespare/xxhash/issues/13\n\nBenchmark taken with:\n(\n  echo \u0027tags: !purego\u0027\n  go test -benchtime 3s -count 7 -benchmem -bench \u0027/.*n\u003d100_B\u0027\n  echo \u0027tags: purego\u0027\n  go test -benchtime 3s -count 7 -benchmem -tags purego -bench \u0027/xx.*n\u003d100_B\u0027\n) \u003e base.txt\nbenchstat -split tags base.txt\n"
    },
    {
      "commit": "6e6013902ce9f911fd0b042e3510fd1c4b3e0f6e",
      "tree": "afcca2b22964c97355b19309ed0885a5f274c01f",
      "parents": [
        "9573aff1c3fac17fd2632bc44faa33ce808339d2"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 29 03:29:15 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Dec 31 22:13:21 2018"
      },
      "message": "Change writeBlocks signature to avoid making xxh escape\n\nThanks to @ongardie for the suggestion.\n"
    },
    {
      "commit": "9573aff1c3fac17fd2632bc44faa33ce808339d2",
      "tree": "e448549d85d075c8bb9b1af3b1b6c24f7e5d4834",
      "parents": [
        "f177858c62a2baf8e896a39916935666f7e98304"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 29 02:40:25 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 29 02:40:25 2018"
      },
      "message": "Add build status badge\n"
    },
    {
      "commit": "f177858c62a2baf8e896a39916935666f7e98304",
      "tree": "4c3044089e822d2458be008bd2c850b78d894811",
      "parents": [
        "096ff4a8a0597537a6da372d07186f3ea5de20af"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 29 02:36:27 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 29 02:36:27 2018"
      },
      "message": "Add Travis CI\n\nFixes #7.\n"
    },
    {
      "commit": "096ff4a8a0597537a6da372d07186f3ea5de20af",
      "tree": "d1dcc76a2561faed217316981c994aa841d4a040",
      "parents": [
        "569f7c8abf1f58d9043ab804d364483cb1c853b6"
      ],
      "author": {
        "name": "Ralph Caraveo III",
        "email": "deckarep@gmail.com",
        "time": "Wed Oct 17 00:07:24 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Oct 17 00:47:59 2018"
      },
      "message": "Updating README.md with reference to freecache\n\n* Freecache recently changed to use this hashing strategy"
    },
    {
      "commit": "569f7c8abf1f58d9043ab804d364483cb1c853b6",
      "tree": "d7da7b600476f0c28af8e9789586a63df38b5f21",
      "parents": [
        "48099fad606eafc26e3a569fad19ff510fff4df6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Sep 10 06:45:31 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Sep 10 06:45:31 2018"
      },
      "message": "Add go.mod\n"
    },
    {
      "commit": "48099fad606eafc26e3a569fad19ff510fff4df6",
      "tree": "de487255fb8eaede9c3396b131bb171a69c6f7ce",
      "parents": [
        "e4e2bd419cbedb5b2ec48e4a88e4c993ddb74555"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Jan 29 23:03:33 2018"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Jan 29 23:03:33 2018"
      },
      "message": "Rename the \u0027noasm\u0027 tag to \u0027purego\u0027\n\nThis is the convention that the Go ecosystem is standardizing on.\n\nSee golang/go#23172.\n"
    },
    {
      "commit": "e4e2bd419cbedb5b2ec48e4a88e4c993ddb74555",
      "tree": "7c3995bdd49b307a9b69aa33ef59f460c666786e",
      "parents": [
        "9b8290949883af426e06f42d5b6708c397715dae"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 28 17:35:32 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 28 17:44:39 2017"
      },
      "message": "Update benchmarks\n"
    },
    {
      "commit": "9b8290949883af426e06f42d5b6708c397715dae",
      "tree": "100dea68665ae9cab2daa47287651e8ea1e39e29",
      "parents": [
        "5c37fe3735342a2e0d01c87a907579987c8936cc"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 28 17:23:17 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 28 17:23:17 2017"
      },
      "message": "Use math/bits in Go 1.9+\n"
    },
    {
      "commit": "5c37fe3735342a2e0d01c87a907579987c8936cc",
      "tree": "82c2b6e192a21370054c094607532bb54d2a32c5",
      "parents": [
        "16460042cdbad6a538a47ecb1dc405b91087ed81"
      ],
      "author": {
        "name": "Alexey Palazhchenko",
        "email": "alexey.palazhchenko@gmail.com",
        "time": "Tue Aug 08 05:22:00 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 08 05:22:27 2017"
      },
      "message": "Fix minor typo"
    },
    {
      "commit": "16460042cdbad6a538a47ecb1dc405b91087ed81",
      "tree": "21157404726821d2059d6dbc98e0245b496179b7",
      "parents": [
        "1b6d2e40c16ba0dfce5c8eac2480ad6e7394819b"
      ],
      "author": {
        "name": "Alexey Palazhchenko",
        "email": "alexey.palazhchenko@gmail.com",
        "time": "Tue Aug 08 05:19:49 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 08 05:21:57 2017"
      },
      "message": "Add Prometheus\n\nhttps://godoc.org/github.com/cespare/xxhash?importers"
    },
    {
      "commit": "1b6d2e40c16ba0dfce5c8eac2480ad6e7394819b",
      "tree": "499e86c7c00d7a799651e4b01b4f00646359bf02",
      "parents": [
        "b0b3ac4c8896b190538395d80e8389e20578efc4"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Jun 04 09:40:20 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Jun 04 09:40:20 2017"
      },
      "message": "Adjust some wording\n"
    },
    {
      "commit": "b0b3ac4c8896b190538395d80e8389e20578efc4",
      "tree": "0e258af523f9a9846c17a7d10da73cc6bbf588fe",
      "parents": [
        "09e1e23aaa83fc6b47aa8aedbb62846c521ede77"
      ],
      "author": {
        "name": "Kaur Kuut",
        "email": "strom@nevermore.ee",
        "time": "Thu Apr 06 04:37:38 2017"
      },
      "committer": {
        "name": "Kaur Kuut",
        "email": "strom@nevermore.ee",
        "time": "Thu Apr 06 04:37:38 2017"
      },
      "message": "Separated unsafe code for App Engine support.\n"
    },
    {
      "commit": "09e1e23aaa83fc6b47aa8aedbb62846c521ede77",
      "tree": "1cc7731bbfb0819b8d37c0a0d43dbc63f9f8b14b",
      "parents": [
        "0c3aa314b221a64bec7eb9539116fb7bc12cbb18"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 30 21:27:15 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 30 21:27:15 2017"
      },
      "message": "Fix status link\n"
    },
    {
      "commit": "0c3aa314b221a64bec7eb9539116fb7bc12cbb18",
      "tree": "8204cab77b4a111fbeab161dab7140dec8121444",
      "parents": [
        "2a89cb3dcf30ef71636c5715ac65f385a27b54a3"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 23 23:26:12 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 23 23:26:12 2017"
      },
      "message": "Write unsafe string-\u003e[]byte conversion to avoid liveness issue\n"
    },
    {
      "commit": "2a89cb3dcf30ef71636c5715ac65f385a27b54a3",
      "tree": "d6dbb9c7aceb6e88d7e805fdaedf743a76069ab7",
      "parents": [
        "7d97cb14891924c6877c6d7a50ebfa3e153764d1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 23 15:58:49 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 23 15:58:49 2017"
      },
      "message": "Remove unnecessary type conversions\n"
    },
    {
      "commit": "7d97cb14891924c6877c6d7a50ebfa3e153764d1",
      "tree": "b1e29da600fb930eddb1752cfb6d78cb083bbca8",
      "parents": [
        "91747467f0a3fdded30cc79c0dd3ee47f6c59d2c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 22:15:41 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 22:15:56 2017"
      },
      "message": "README updates\n"
    },
    {
      "commit": "91747467f0a3fdded30cc79c0dd3ee47f6c59d2c",
      "tree": "3892d9f5ced026142d0eb79875b097a495197b84",
      "parents": [
        "4a94f899c20bc44d4f5f807cb14529e72aca99d6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 21:55:00 2017"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 22:04:15 2017"
      },
      "message": "Add Sum64String for avoiding copies when hashing strings\n\nbenchmark                                   old ns/op     new ns/op     delta\nBenchmarkHashes/xxhash-string,n\u003d5_B-4       19.6          10.9          -44.39%\nBenchmarkHashes/xxhash-string,n\u003d100_B-4     126           24.9          -80.24%\nBenchmarkHashes/xxhash-string,n\u003d4_KB-4      1270          385           -69.69%\nBenchmarkHashes/xxhash-string,n\u003d10_MB-4     2898449       1101514       -62.00%\n\nbenchmark                                   old MB/s     new MB/s     speedup\nBenchmarkHashes/xxhash-string,n\u003d5_B-4       255.53       458.15       1.79x\nBenchmarkHashes/xxhash-string,n\u003d100_B-4     792.18       4023.53      5.08x\nBenchmarkHashes/xxhash-string,n\u003d4_KB-4      3147.43      10386.63     3.30x\nBenchmarkHashes/xxhash-string,n\u003d10_MB-4     3450.12      9078.41      2.63x\n\nThere\u0027s still a function call that prevents the string version from\nbeing exactly as fast as []byte.\n"
    },
    {
      "commit": "4a94f899c20bc44d4f5f807cb14529e72aca99d6",
      "tree": "b9d13b0340392beba56e84ccc72370173d4bcc66",
      "parents": [
        "0845171153ba6f1f0ec8671ba9bcedb426d7a6db"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 18 03:48:13 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 18 03:59:02 2016"
      },
      "message": "Avoid function call overhead\n\nThis is not a good solution, but it\u0027ll do for the moment.\n\nnoasm:\n\n benchmark                            old MB/s     new MB/s     speedup\nBenchmarkHashes/xxhash,n\u003d5_B-4       383.10       596.40       1.56x\nBenchmarkHashes/xxhash,n\u003d100_B-4     3558.30      4301.40      1.21x\nBenchmarkHashes/xxhash,n\u003d4_KB-4      8778.69      8840.83      1.01x\nBenchmarkHashes/xxhash,n\u003d10_MB-4     7731.16      7736.64      1.00x\n\nasm:\n\nbenchmark                            old MB/s     new MB/s     speedup\nBenchmarkHashes/xxhash,n\u003d5_B-4       539.76       711.11       1.32x\nBenchmarkHashes/xxhash,n\u003d100_B-4     4227.89      4598.95      1.09x\nBenchmarkHashes/xxhash,n\u003d4_KB-4      10590.16     10549.72     1.00x\nBenchmarkHashes/xxhash,n\u003d10_MB-4     9058.39      9024.04      1.00x\n"
    },
    {
      "commit": "0845171153ba6f1f0ec8671ba9bcedb426d7a6db",
      "tree": "c5bad80c239d221a0e7641df6d8b2787cbe5bea4",
      "parents": [
        "ffb2439cc55e9c3d0b2035fcf45b5827dcc14143"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 18 01:07:00 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 18 01:07:00 2016"
      },
      "message": "Use constant primes where possible\n\nAvoiding some MOVQs provides a small boost.\n\nname                   old time/op   new time/op   delta\nHashes/xxhash,n\u003d5_B-4   13.6ns ± 2%   13.2ns ± 0%  -2.80%  (p\u003d0.000 n\u003d10+8)\n\nname                   old speed     new speed     delta\nHashes/xxhash,n\u003d5_B-4  368MB/s ± 2%  379MB/s ± 0%  +2.95%  (p\u003d0.000 n\u003d10+9)\n"
    },
    {
      "commit": "ffb2439cc55e9c3d0b2035fcf45b5827dcc14143",
      "tree": "952dd3652fb76880a6f3dad8b4bd4a19f704e819",
      "parents": [
        "4a66a12749189566cb040736cbb48d16af4b45ce"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 23:33:46 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 23:37:58 2016"
      },
      "message": "Add some benchmarks to the readme\n"
    },
    {
      "commit": "4a66a12749189566cb040736cbb48d16af4b45ce",
      "tree": "96b475aedd0d80d1aa8df6a6d6a85f3a6699ac86",
      "parents": [
        "1ce10610a70c8da08278fbe935f2feafd6d9074d"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 23:07:52 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 23:10:25 2016"
      },
      "message": "Speed up pure-Go implementation by ensuring we use ROLQ instructions\n\nThe compiler requires a little massaging to emit rotate instructions.\nThis ends up being a fairly significant performance boost.\n\nname                   old time/op    new time/op    delta\nHashes/xxhash,n\u003d4KB-4     616ns ± 2%     466ns ± 1%  -24.33%  (p\u003d0.008 n\u003d5+5)\n\nname                   old speed      new speed      delta\nHashes/xxhash,n\u003d4KB-4  6.49GB/s ± 2%  8.57GB/s ± 1%  +32.04%  (p\u003d0.008 n\u003d5+5)\n"
    },
    {
      "commit": "1ce10610a70c8da08278fbe935f2feafd6d9074d",
      "tree": "c371db9fcf57b087d90d1eb1783c4356fa3c2c01",
      "parents": [
        "883fc5c9f98b44921b2a03569d58833278d7936f"
      ],
      "author": {
        "name": "Dave Cheney",
        "email": "dave@cheney.net",
        "time": "Wed Sep 14 07:35:43 2016"
      },
      "committer": {
        "name": "Dave Cheney",
        "email": "dave@cheney.net",
        "time": "Wed Sep 14 07:35:43 2016"
      },
      "message": "Mark []byte passed to Sum64 as noescape\n\nThe compiler cannot tell if arguments passed to an asm function escape\nso it assumes that they always do. Mark arguments passed to Sum64 as\nnoescape so any temporary created from a []byte(string) conversion does\nnot escape.\n\n% benchstat {old,new}.txt\nname          old time/op    new time/op    delta\nStringHash-4    80.8ns ± 4%    20.8ns ± 0%   -74.25%   (p\u003d0.000 n\u003d10+9)\n\nname          old alloc/op   new alloc/op   delta\nStringHash-4     16.0B ± 0%     0.0B ±NaN%  -100.00%  (p\u003d0.000 n\u003d10+10)\n\nname          old allocs/op  new allocs/op  delta\nStringHash-4      1.00 ± 0%     0.00 ±NaN%  -100.00%  (p\u003d0.000 n\u003d10+10)\n"
    },
    {
      "commit": "883fc5c9f98b44921b2a03569d58833278d7936f",
      "tree": "005d135adb3ea16d0468339cad82f3efa7821739",
      "parents": [
        "4fbe9820cf29c44b81ba4fe2d81aec20e3624988"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Sep 01 01:31:21 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Sep 01 01:48:08 2016"
      },
      "message": "Fix occasional crash due to construction of bad pointer\n\nYou don\u0027t want to create a slice with a bad base pointer, even if the\nlen and cap are 0.\n\nFixes #1.\n"
    },
    {
      "commit": "4fbe9820cf29c44b81ba4fe2d81aec20e3624988",
      "tree": "6f124988a9e221a6d9edbdc334e982ae267f66fc",
      "parents": [
        "9d332d7f860004dfc3396a7abcc35fa9638aa858"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Aug 31 21:38:38 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Aug 31 21:55:40 2016"
      },
      "message": "Don\u0027t keep primes in registers if we don\u0027t reuse them\n"
    },
    {
      "commit": "9d332d7f860004dfc3396a7abcc35fa9638aa858",
      "tree": "8b27633910974afff6a4e3d4486972c4a458336a",
      "parents": [
        "ad6d7b4509c1d9529f2b72b06eaecb44494851ec"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Aug 31 21:10:48 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Aug 31 21:54:59 2016"
      },
      "message": "In asm, load primes from globals rather than using macros\n\nThis also improves the speed slightly. Maybe just because of smaller\ncode size?\n\nbenchmark                           old ns/op     new ns/op     delta\nBenchmarkHashes/xxhash,n\u003d5b-4       9.69          9.23          -4.75%\nBenchmarkHashes/xxhash,n\u003d20b-4      11.7          11.4          -2.56%\nBenchmarkHashes/xxhash,n\u003d100b-4     24.4          23.6          -3.28%\nBenchmarkHashes/xxhash,n\u003d4KB-4      384           375           -2.34%\nBenchmarkHashes/xxhash,n\u003d10MB-4     1113137       1089693       -2.11%\n\nbenchmark                           old MB/s     new MB/s     speedup\nBenchmarkHashes/xxhash,n\u003d5b-4       515.96       541.56       1.05x\nBenchmarkHashes/xxhash,n\u003d20b-4      1704.45      1761.10      1.03x\nBenchmarkHashes/xxhash,n\u003d100b-4     4092.55      4245.48      1.04x\nBenchmarkHashes/xxhash,n\u003d4KB-4      10406.76     10638.45     1.02x\nBenchmarkHashes/xxhash,n\u003d10MB-4     8983.62      9176.89      1.02x\n"
    },
    {
      "commit": "ad6d7b4509c1d9529f2b72b06eaecb44494851ec",
      "tree": "5edcfb5a8a45f66520ac15bb6da78b748a46fcc6",
      "parents": [
        "17e1db989f60426940c01de9e34a9c8c3f9b65a1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 10:28:20 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 10:28:20 2016"
      },
      "message": "Implement an asm version of the Write inner loop as well\n"
    },
    {
      "commit": "17e1db989f60426940c01de9e34a9c8c3f9b65a1",
      "tree": "7703ed8861f9c568374246e9a407e54dfa9a649b",
      "parents": [
        "1e0a9745da81b2a1a7ab2850930e8e8ca5a05224"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 09:40:02 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 09:43:21 2016"
      },
      "message": "Shuffle some code around\n"
    },
    {
      "commit": "1e0a9745da81b2a1a7ab2850930e8e8ca5a05224",
      "tree": "966de8bb5261f784f8855a1b537a544d1c72a798",
      "parents": [
        "b1ec157bda158fa653e3f05a0ee971d2ba3c1a3c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:41:59 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:41:59 2016"
      },
      "message": "Fix some text formatting\n"
    },
    {
      "commit": "b1ec157bda158fa653e3f05a0ee971d2ba3c1a3c",
      "tree": "a10756f0d512a007687e82a1721644dadca9c226",
      "parents": [
        "980fc73468a84b8129ca099aa114fbeea84fbd49"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:39:18 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:40:19 2016"
      },
      "message": "Clean up some messiness\n"
    },
    {
      "commit": "980fc73468a84b8129ca099aa114fbeea84fbd49",
      "tree": "12ad41e53b14cc165f10b2cb5a65b51821998434",
      "parents": [
        "ead31754ce89d9283740fb3276660134ac2d6e58"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:34:31 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:34:31 2016"
      },
      "message": "Update README\n"
    },
    {
      "commit": "ead31754ce89d9283740fb3276660134ac2d6e58",
      "tree": "00e98ff05a903ebff6b5938539945a6d400ec1b6",
      "parents": [
        "285cb94bc62ebb330e13a20829f94c14d39819e1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:25:53 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 05:28:40 2016"
      },
      "message": "Add assembly implementation for amd64\n\nPretty big speed improvement. Now I can get about 10 GB/s on my laptop.\n\nI haven\u0027t looked too closely into where the big improvements are.\nDisabling bounds checks on the pure Go version only gives a minor\nspeedup, so it\u0027s not from that. At least some, and maybe a lot of the\nimprovement comes from using ROLQ in the inner loop instead of a\nmulti-instruction sequence.\n\nbenchmark                           old ns/op     new ns/op     delta\nBenchmarkHashes/xxhash,n\u003d5b-4       16.8          11.1          -33.93%\nBenchmarkHashes/xxhash,n\u003d20b-4      21.7          13.6          -37.33%\nBenchmarkHashes/xxhash,n\u003d100b-4     39.6          27.5          -30.56%\nBenchmarkHashes/xxhash,n\u003d4KB-4      667           389           -41.68%\nBenchmarkHashes/xxhash,n\u003d10MB-4     1743953       1062719       -39.06%\n\nbenchmark                           old MB/s     new MB/s     speedup\nBenchmarkHashes/xxhash,n\u003d5b-4       297.56       450.28       1.51x\nBenchmarkHashes/xxhash,n\u003d20b-4      922.48       1468.74      1.59x\nBenchmarkHashes/xxhash,n\u003d100b-4     2527.95      3640.75      1.44x\nBenchmarkHashes/xxhash,n\u003d4KB-4      5993.83      10282.16     1.72x\nBenchmarkHashes/xxhash,n\u003d10MB-4     5734.10      9409.82      1.64x\n"
    },
    {
      "commit": "285cb94bc62ebb330e13a20829f94c14d39819e1",
      "tree": "b01fc95634e8257be4b7f349e5d4df8d6b0098ad",
      "parents": [
        "8eaca1a4b35a17aa0fb1bb9225843014858ba891"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 01:53:50 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 01:53:50 2016"
      },
      "message": "Remove TODO that I\u0027m unlikely to do\n"
    },
    {
      "commit": "8eaca1a4b35a17aa0fb1bb9225843014858ba891",
      "tree": "a393e6bae5dee4f40c9b0ae957fd27cbc161084d",
      "parents": [
        "5e5370c72dc510918b2aa8f4ef5b39945c3ab343"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 01:34:42 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 01:34:42 2016"
      },
      "message": "Coerce the compiler to elide some bounds checks\n\nbenchmark                           old ns/op     new ns/op     delta\nBenchmarkHashes/xxhash,n\u003d5b-4       10.9          10.8          -0.92%\nBenchmarkHashes/xxhash,n\u003d20b-4      15.2          15.5          +1.97%\nBenchmarkHashes/xxhash,n\u003d100b-4     35.2          33.3          -5.40%\nBenchmarkHashes/xxhash,n\u003d4KB-4      738           640           -13.28%\nBenchmarkHashes/xxhash,n\u003d10MB-4     1972254       1745572       -11.49%\n\nbenchmark                           old MB/s     new MB/s     speedup\nBenchmarkHashes/xxhash,n\u003d5b-4       457.71       462.18       1.01x\nBenchmarkHashes/xxhash,n\u003d20b-4      1315.18      1292.48      0.98x\nBenchmarkHashes/xxhash,n\u003d100b-4     2837.88      3003.43      1.06x\nBenchmarkHashes/xxhash,n\u003d4KB-4      5419.98      6242.59      1.15x\nBenchmarkHashes/xxhash,n\u003d10MB-4     5070.34      5728.78      1.13x\n"
    },
    {
      "commit": "5e5370c72dc510918b2aa8f4ef5b39945c3ab343",
      "tree": "f92a336dd9d2027b97f4fdf71fa2b0ad9932991e",
      "parents": [
        "df646d696b744bb01214519eb1455e4295f7479b"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 00:58:53 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 01:01:57 2016"
      },
      "message": "Implement Sum64 directly\n\nThis helps a lot for small inputs.\n\nbenchmark                           old ns/op     new ns/op     delta\nBenchmarkHashes/xxhash,n\u003d5b-4       68.2          10.9          -84.02%\nBenchmarkHashes/xxhash,n\u003d20b-4      73.1          15.2          -79.21%\nBenchmarkHashes/xxhash,n\u003d100b-4     91.2          35.2          -61.40%\nBenchmarkHashes/xxhash,n\u003d4KB-4      766           738           -3.66%\nBenchmarkHashes/xxhash,n\u003d10MB-4     1905236       1972254       +3.52%\n\nbenchmark                           old MB/s     new MB/s     speedup\nBenchmarkHashes/xxhash,n\u003d5b-4       73.35        457.71       6.24x\nBenchmarkHashes/xxhash,n\u003d20b-4      273.46       1315.18      4.81x\nBenchmarkHashes/xxhash,n\u003d100b-4     1097.00      2837.88      2.59x\nBenchmarkHashes/xxhash,n\u003d4KB-4      5217.91      5419.98      1.04x\nBenchmarkHashes/xxhash,n\u003d10MB-4     5248.69      5070.34      0.97x\n"
    },
    {
      "commit": "df646d696b744bb01214519eb1455e4295f7479b",
      "tree": "11209cfb503b86b2616795d18403403ec480ebb8",
      "parents": [
        "cae921c1334b952028cbf30a758eb0f813bb72c3"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 00:45:48 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 00:45:48 2016"
      },
      "message": "Rename a couple of fields\n"
    },
    {
      "commit": "cae921c1334b952028cbf30a758eb0f813bb72c3",
      "tree": "d4269bf48fec5e8b25d84b8c23811ae2b73b41f9",
      "parents": [
        "141c235cf4dd9b79e446bed800afa98410bb6ae4"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 23:28:43 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 23:28:43 2016"
      },
      "message": "Update benchmarks\n\n- Don\u0027t measure lots of slow hashes\n- Compare against github.com/OneOfOne/xxhash\n- Use a direct summing function, if available\n"
    },
    {
      "commit": "141c235cf4dd9b79e446bed800afa98410bb6ae4",
      "tree": "ad19f5328492ff9c5429f6236a5c74ca920c2135",
      "parents": [
        "39334e8bb7e393e8128d133134c67a621e85a48f"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:51:15 2016"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:51:15 2016"
      },
      "message": "Add some benchmarks\n"
    }
  ],
  "next": "39334e8bb7e393e8128d133134c67a621e85a48f"
}
