)]}'
{
  "log": [
    {
      "commit": "ab37246c889f9db16b606fda1c232d659df9271d",
      "tree": "bdd320ce7d0774395a4002ec2ee24b513603a6ff",
      "parents": [
        "998dce232f17418a7a5721ecf87ca714025a3243"
      ],
      "author": {
        "name": "Andreas Deininger",
        "email": "andreas@deininger.net",
        "time": "Wed Jul 03 19:28:37 2024 +0200"
      },
      "committer": {
        "name": "Andreas Deininger",
        "email": "andreas@deininger.net",
        "time": "Wed Jul 03 20:01:36 2024 +0200"
      },
      "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 11:16:23 2024 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Apr 04 13:00:10 2024 -0700"
      },
      "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 11:03:00 2023 +0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jul 25 22:37:07 2023 -0700"
      },
      "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 10:22:42 2023 +0800"
      },
      "committer": {
        "name": "rfyiamcool",
        "email": "rfyiamcool@163.com",
        "time": "Mon Apr 03 22:09:43 2023 +0800"
      },
      "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": "Sat Dec 03 18:11:49 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 18:11:49 2022 -0800"
      },
      "message": "Update Go versions for GH action\n"
    },
    {
      "commit": "a76eb16a93c1e30527c073ca831d9048b4b935f6",
      "tree": "d7a4df4734457fde84d5cd12a75ab7426a909435",
      "parents": [
        "3c87ff894fa24483d63e6d273333caa9b5495e2d"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 18:06:23 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 18:06:23 2022 -0800"
      },
      "message": "Fix staticcheck failure\n"
    },
    {
      "commit": "3c87ff894fa24483d63e6d273333caa9b5495e2d",
      "tree": "b104f04b59bbadcb3c46887bdc5715f0678dd622",
      "parents": [
        "ced83c3f121e24066be8cc47008e9ee8c25acf72"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 18:03:10 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 18:03:10 2022 -0800"
      },
      "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 01:38:09 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 01:38:09 2022 -0800"
      },
      "message": "Rename register aliases\n"
    },
    {
      "commit": "603b3360ce0c53eb7b5e7642771468071be47a79",
      "tree": "9a8228d829f64f732edb92dd230b7d93a22903c2",
      "parents": [
        "929933797dbb42d00e635b04ad1117ebce97e90c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 01:32:30 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 01:32:30 2022 -0800"
      },
      "message": "Asmfmt\n"
    },
    {
      "commit": "929933797dbb42d00e635b04ad1117ebce97e90c",
      "tree": "a5ae920505388e96241d75b2ce4f569607dce4e5",
      "parents": [
        "3614b5ced39cb28cafbb2e51c9283b40ea6683a2"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 01:32:05 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 01:32:05 2022 -0800"
      },
      "message": "Add better register alias\n"
    },
    {
      "commit": "3614b5ced39cb28cafbb2e51c9283b40ea6683a2",
      "tree": "f1145e1e5ec2a4002f05eb727d41a27eb5400a5f",
      "parents": [
        "34f9c9a7b02e38574373c31ed9de682ffeb0002d"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 00:13:50 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 03 01:11:24 2022 -0800"
      },
      "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 14:04:12 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 14:04:12 2022 -0800"
      },
      "message": "Start primes at 0\n"
    },
    {
      "commit": "27bcde000d950455f4d83f384cba33cc3b98a19c",
      "tree": "bea337efbe6996b4e9d075183b69b71b38c0933f",
      "parents": [
        "bbc478633dd7c24a4b0b653b19d2a3f8b9cad045"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 13:58:59 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Dec 02 13:58:59 2022 -0800"
      },
      "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": "Thu Dec 01 23:34:18 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 23:34:18 2022 -0800"
      },
      "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": "Thu Dec 01 23:32:55 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 23:32:55 2022 -0800"
      },
      "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 13:22:39 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 14:51:08 2022 -0800"
      },
      "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 13:21:11 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 13:21:11 2022 -0800"
      },
      "message": "Consolidate array of primes\n"
    },
    {
      "commit": "fbdfba690cf74e13d4806d438f0104420a751109",
      "tree": "8d51f3762397603c044b3d2b9cabc975f8c052fb",
      "parents": [
        "4467c197908f7693d3d99ae578d6569bd18a3db1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Nov 13 00:51:19 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 11:17:04 2022 -0800"
      },
      "message": "Update some comments\n"
    },
    {
      "commit": "4467c197908f7693d3d99ae578d6569bd18a3db1",
      "tree": "558e1694bf29cc55f1edeb81c5e2ba8185d59b07",
      "parents": [
        "b5aede900e8eb16bf7e894108a437828bbaaffc6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 11:15:16 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 11:15:32 2022 -0800"
      },
      "message": "Apply asmfmt\n"
    },
    {
      "commit": "b5aede900e8eb16bf7e894108a437828bbaaffc6",
      "tree": "d8dc8d2fd029b9f346ecdb650129ae201db92f39",
      "parents": [
        "0c6a696a4466055c5cd99446b1d8bd8c55bbe337"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 11:06:45 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 11:15:30 2022 -0800"
      },
      "message": "Simplify/tweak arm64 asm\n"
    },
    {
      "commit": "0c6a696a4466055c5cd99446b1d8bd8c55bbe337",
      "tree": "bd3e71d301f4a66f3908fa5732680f731d209925",
      "parents": [
        "a3876ed889e43007e34b72aba7be1543009d14d5"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 10:55:26 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 10:55:26 2022 -0800"
      },
      "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 15:50:48 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 10:52:42 2022 -0800"
      },
      "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 10:51:23 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 01 10:51:23 2022 -0800"
      },
      "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 13:12:54 2022 +0100"
      },
      "committer": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Mon Nov 14 18:20:30 2022 +0100"
      },
      "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 13:58:39 2022 +0100"
      },
      "committer": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Sun Nov 13 14:03:20 2022 +0100"
      },
      "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 11:55:07 2022 +0100"
      },
      "committer": {
        "name": "greatroar",
        "email": "61184462+greatroar@users.noreply.github.com",
        "time": "Fri Nov 11 13:14:53 2022 +0100"
      },
      "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 14:45:01 2022 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Jan 10 14:45:01 2022 -0800"
      },
      "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 12:38:34 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 31 12:53:39 2021 -0700"
      },
      "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 13:21:28 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 29 13:21:28 2021 -0700"
      },
      "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": "Sat Aug 28 19:22:30 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 28 19:22:40 2021 -0700"
      },
      "message": "Make comment more accurate\n"
    },
    {
      "commit": "0f9df2801227bf72450d1af39971fac7d35e35c5",
      "tree": "e816ea0392e7f60a909d5d2b0ce502b84771bee5",
      "parents": [
        "adef12e66f773c5559dc4b931a6b849020bc6bc9"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 28 17:54:41 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 28 18:05:43 2021 -0700"
      },
      "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": "Sat Aug 28 17:19:26 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 28 17:19:26 2021 -0700"
      },
      "message": "Update README\n"
    },
    {
      "commit": "e7a6b52374f7e2abfb8abb27249d53a1997b09a7",
      "tree": "78bbde113826f3f23077705c85b4e2b48a4c6624",
      "parents": [
        "3b9a658f01dd5db41fa2272fb9a22e60ce4c1807"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Aug 23 23:25:48 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 02:58:46 2021 -0700"
      },
      "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 02:07:40 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 02:58:46 2021 -0700"
      },
      "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 01:34:45 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 01:34:45 2021 -0700"
      },
      "message": "Update badges\n"
    },
    {
      "commit": "15613bbf27a61478eb44de76620f33eb7e485776",
      "tree": "29e9bc1ed43179457099f09bbbb8c59df19a205e",
      "parents": [
        "8d433f3eafcbf8d37d12c8968670eb0bfb31089e"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 00:27:42 2021 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Aug 24 01:28:07 2021 -0700"
      },
      "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 15:38:49 2021 +0300"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jun 08 10:37:11 2021 -0700"
      },
      "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 01:12:55 2020 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Dec 05 01:12:55 2020 -0800"
      },
      "message": "Fix skipped test case\n"
    },
    {
      "commit": "fd5c34b71e8ec6a322b55ae01fde54e8edea759a",
      "tree": "045d7aa5aab84113b2c2d42b1cb6f6e2d959bb81",
      "parents": [
        "a7909af24e080cb18e105af79be6915531147a86"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 12:52:10 2020 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 12:52:10 2020 -0800"
      },
      "message": "Remove useless assignment\n"
    },
    {
      "commit": "a7909af24e080cb18e105af79be6915531147a86",
      "tree": "b85828dcf6111d138d17fc08ad93899d26f43157",
      "parents": [
        "e0ea1e3196ac0aac60eccd7670662049875d8b7b"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 19 20:05:45 2020 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Nov 20 12:50:37 2020 -0800"
      },
      "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": "Thu Nov 19 18:07:25 2020 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 19 18:08:30 2020 -0800"
      },
      "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 11:53:52 2020 +0200"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Nov 16 09:25:59 2020 -0800"
      },
      "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 18:09:35 2020 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 07 18:09:35 2020 +0530"
      },
      "message": "Added Power Support ppc64le"
    },
    {
      "commit": "d7df74196a9e781ede915320c11c378c1b2f3a1f",
      "tree": "6bab238664d6122ceefa198029b504f268e8b783",
      "parents": [
        "2372543dd2bbab7a55ce14c54eb357abe23a42f5"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 14 09:47:13 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 14 09:47:13 2019 -0800"
      },
      "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 13:04:18 2019 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Oct 31 13:04:18 2019 -0700"
      },
      "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 12:55:04 2019 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Oct 31 12:55:57 2019 -0700"
      },
      "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 20:30:07 2019 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 31 20:30:07 2019 +0100"
      },
      "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 11:21:38 2019 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Fri Oct 25 11:21:38 2019 -0700"
      },
      "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 16:50:28 2019 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Sep 03 19:34:00 2019 -0700"
      },
      "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 09:48:07 2019 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Jun 12 09:48:07 2019 -0700"
      },
      "message": "Remove unnecessary conversions\n\nFixes #26\n"
    },
    {
      "commit": "3767db7a7e183c0ad3395680d460d0b61534ae7b",
      "tree": "6f9812ff6860471f03d38d1c9159cb2dc61b1484",
      "parents": [
        "3b82fb7d186719faeedd0c2864f868c74fbf79a1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:30:14 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:30:14 2019 -0800"
      },
      "message": "Run go mod tidy\n"
    },
    {
      "commit": "3b82fb7d186719faeedd0c2864f868c74fbf79a1",
      "tree": "e49484d2c69ecc2dd1401f9ca2ce6988f9d261a9",
      "parents": [
        "30d0e5bcb75d96ed4140aa9fdd4a3df79f60747e"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:26:12 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:26:19 2019 -0800"
      },
      "message": "Update module/import paths for v2\n"
    },
    {
      "commit": "30d0e5bcb75d96ed4140aa9fdd4a3df79f60747e",
      "tree": "ae4370838acc73eba075ee7d53570279c000ae5f",
      "parents": [
        "7052e46dac0638e1fa34fac4c6af1c58fac7c102"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 16:17:29 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:19:26 2019 -0800"
      },
      "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 15:21:05 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:17:27 2019 -0800"
      },
      "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": "Tue Jan 01 16:58:43 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:16:03 2019 -0800"
      },
      "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 14:54:18 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Jan 03 17:13:50 2019 -0800"
      },
      "message": "Tidy up the README\n"
    },
    {
      "commit": "fd51581916f524bf9854413f9871cd27bcc9d7a0",
      "tree": "900b983f9517229bd0204ac455d262d74a9166e8",
      "parents": [
        "26315204797e07a5e9a825080a37ababf62404d3"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 14:03:33 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 14:55:40 2019 -0800"
      },
      "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 13:58:30 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 14:04:24 2019 -0800"
      },
      "message": "Clean up subtests/subbenchmarks\n"
    },
    {
      "commit": "bf43f18fa4a914841bb5c40ccdd9109b77d550e9",
      "tree": "f973be80e27483a6204a59970f164f05434e31a5",
      "parents": [
        "9d72dfec76812e1ff4dba23edb251bc1fa635513"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 13:26:32 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 14:04:24 2019 -0800"
      },
      "message": "Tweak doc comments\n"
    },
    {
      "commit": "9d72dfec76812e1ff4dba23edb251bc1fa635513",
      "tree": "511bd23f7c52872202c6a7bb0994f31368aa9652",
      "parents": [
        "f728abcf1928d0eeb63ca34d33e1aa93133162e5"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 12:53:33 2019 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 14:04:20 2019 -0800"
      },
      "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 14:45:49 2018 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 11:47:05 2019 -0800"
      },
      "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 14:34:13 2018 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 11:47:05 2019 -0800"
      },
      "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 14:12:05 2018 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Jan 01 11:47:05 2019 -0800"
      },
      "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": "Wed Nov 28 19:29:15 2018 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Dec 31 14:13:21 2018 -0800"
      },
      "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": "Wed Nov 28 18:40:25 2018 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Nov 28 18:40:25 2018 -0800"
      },
      "message": "Add build status badge\n"
    },
    {
      "commit": "f177858c62a2baf8e896a39916935666f7e98304",
      "tree": "4c3044089e822d2458be008bd2c850b78d894811",
      "parents": [
        "096ff4a8a0597537a6da372d07186f3ea5de20af"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Nov 28 18:36:27 2018 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Nov 28 18:36:27 2018 -0800"
      },
      "message": "Add Travis CI\n\nFixes #7.\n"
    },
    {
      "commit": "096ff4a8a0597537a6da372d07186f3ea5de20af",
      "tree": "d1dcc76a2561faed217316981c994aa841d4a040",
      "parents": [
        "569f7c8abf1f58d9043ab804d364483cb1c853b6"
      ],
      "author": {
        "name": "Ralph Caraveo III",
        "email": "deckarep@gmail.com",
        "time": "Tue Oct 16 17:07:24 2018 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Tue Oct 16 17:47:59 2018 -0700"
      },
      "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": "Sun Sep 09 23:45:31 2018 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Sep 09 23:45:31 2018 -0700"
      },
      "message": "Add go.mod\n"
    },
    {
      "commit": "48099fad606eafc26e3a569fad19ff510fff4df6",
      "tree": "de487255fb8eaede9c3396b131bb171a69c6f7ce",
      "parents": [
        "e4e2bd419cbedb5b2ec48e4a88e4c993ddb74555"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Jan 29 15:03:33 2018 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Jan 29 15:03:33 2018 -0800"
      },
      "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 11:35:32 2017 -0600"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 28 11:44:39 2017 -0600"
      },
      "message": "Update benchmarks\n"
    },
    {
      "commit": "9b8290949883af426e06f42d5b6708c397715dae",
      "tree": "100dea68665ae9cab2daa47287651e8ea1e39e29",
      "parents": [
        "5c37fe3735342a2e0d01c87a907579987c8936cc"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 28 11:23:17 2017 -0600"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Dec 28 11:23:17 2017 -0600"
      },
      "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 08:22:00 2017 +0300"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Aug 07 22:22:27 2017 -0700"
      },
      "message": "Fix minor typo"
    },
    {
      "commit": "16460042cdbad6a538a47ecb1dc405b91087ed81",
      "tree": "21157404726821d2059d6dbc98e0245b496179b7",
      "parents": [
        "1b6d2e40c16ba0dfce5c8eac2480ad6e7394819b"
      ],
      "author": {
        "name": "Alexey Palazhchenko",
        "email": "alexey.palazhchenko@gmail.com",
        "time": "Tue Aug 08 08:19:49 2017 +0300"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Mon Aug 07 22:21:57 2017 -0700"
      },
      "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 02:40:20 2017 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Jun 04 02:40:20 2017 -0700"
      },
      "message": "Adjust some wording\n"
    },
    {
      "commit": "b0b3ac4c8896b190538395d80e8389e20578efc4",
      "tree": "0e258af523f9a9846c17a7d10da73cc6bbf588fe",
      "parents": [
        "09e1e23aaa83fc6b47aa8aedbb62846c521ede77"
      ],
      "author": {
        "name": "Kaur Kuut",
        "email": "strom@nevermore.ee",
        "time": "Thu Apr 06 07:37:38 2017 +0300"
      },
      "committer": {
        "name": "Kaur Kuut",
        "email": "strom@nevermore.ee",
        "time": "Thu Apr 06 07:37:38 2017 +0300"
      },
      "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 14:27:15 2017 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 30 14:27:15 2017 -0700"
      },
      "message": "Fix status link\n"
    },
    {
      "commit": "0c3aa314b221a64bec7eb9539116fb7bc12cbb18",
      "tree": "8204cab77b4a111fbeab161dab7140dec8121444",
      "parents": [
        "2a89cb3dcf30ef71636c5715ac65f385a27b54a3"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 23 16:26:12 2017 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 23 16:26:12 2017 -0700"
      },
      "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 08:58:49 2017 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Mar 23 08:58:49 2017 -0700"
      },
      "message": "Remove unnecessary type conversions\n"
    },
    {
      "commit": "7d97cb14891924c6877c6d7a50ebfa3e153764d1",
      "tree": "b1e29da600fb930eddb1752cfb6d78cb083bbca8",
      "parents": [
        "91747467f0a3fdded30cc79c0dd3ee47f6c59d2c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 14:15:41 2017 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 14:15:56 2017 -0800"
      },
      "message": "README updates\n"
    },
    {
      "commit": "91747467f0a3fdded30cc79c0dd3ee47f6c59d2c",
      "tree": "3892d9f5ced026142d0eb79875b097a495197b84",
      "parents": [
        "4a94f899c20bc44d4f5f807cb14529e72aca99d6"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 13:55:00 2017 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Feb 02 14:04:15 2017 -0800"
      },
      "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": "Thu Nov 17 19:48:13 2016 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 19:59:02 2016 -0800"
      },
      "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": "Thu Nov 17 17:07:00 2016 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 17:07:00 2016 -0800"
      },
      "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 15:33:46 2016 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 15:37:58 2016 -0800"
      },
      "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 15:07:52 2016 -0800"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Thu Nov 17 15:10:25 2016 -0800"
      },
      "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 17:35:43 2016 +1000"
      },
      "committer": {
        "name": "Dave Cheney",
        "email": "dave@cheney.net",
        "time": "Wed Sep 14 17:35:43 2016 +1000"
      },
      "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": "Wed Aug 31 18:31:21 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Aug 31 18:48:08 2016 -0700"
      },
      "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 14:38:38 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Aug 31 14:55:40 2016 -0700"
      },
      "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 14:10:48 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Wed Aug 31 14:54:59 2016 -0700"
      },
      "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 03:28:20 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 03:28:20 2016 -0700"
      },
      "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 02:40:02 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sun Aug 28 02:43:21 2016 -0700"
      },
      "message": "Shuffle some code around\n"
    },
    {
      "commit": "1e0a9745da81b2a1a7ab2850930e8e8ca5a05224",
      "tree": "966de8bb5261f784f8855a1b537a544d1c72a798",
      "parents": [
        "b1ec157bda158fa653e3f05a0ee971d2ba3c1a3c"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:41:59 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:41:59 2016 -0700"
      },
      "message": "Fix some text formatting\n"
    },
    {
      "commit": "b1ec157bda158fa653e3f05a0ee971d2ba3c1a3c",
      "tree": "a10756f0d512a007687e82a1721644dadca9c226",
      "parents": [
        "980fc73468a84b8129ca099aa114fbeea84fbd49"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:39:18 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:40:19 2016 -0700"
      },
      "message": "Clean up some messiness\n"
    },
    {
      "commit": "980fc73468a84b8129ca099aa114fbeea84fbd49",
      "tree": "12ad41e53b14cc165f10b2cb5a65b51821998434",
      "parents": [
        "ead31754ce89d9283740fb3276660134ac2d6e58"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:34:31 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:34:31 2016 -0700"
      },
      "message": "Update README\n"
    },
    {
      "commit": "ead31754ce89d9283740fb3276660134ac2d6e58",
      "tree": "00e98ff05a903ebff6b5938539945a6d400ec1b6",
      "parents": [
        "285cb94bc62ebb330e13a20829f94c14d39819e1"
      ],
      "author": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:25:53 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 22:28:40 2016 -0700"
      },
      "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": "Sat Aug 27 18:53:50 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 18:53:50 2016 -0700"
      },
      "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": "Sat Aug 27 18:34:42 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 18:34:42 2016 -0700"
      },
      "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": "Sat Aug 27 17:58:53 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 18:01:57 2016 -0700"
      },
      "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": "Sat Aug 27 17:45:48 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 17:45:48 2016 -0700"
      },
      "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 16:28:43 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 16:28:43 2016 -0700"
      },
      "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 15:51:15 2016 -0700"
      },
      "committer": {
        "name": "Caleb Spare",
        "email": "cespare@gmail.com",
        "time": "Sat Aug 27 15:51:15 2016 -0700"
      },
      "message": "Add some benchmarks\n"
    }
  ],
  "next": "39334e8bb7e393e8128d133134c67a621e85a48f"
}
