DockerCLI/vendor/github.com/klauspost/compress/zstd/internal/xxhash
Sebastiaan van Stijn dc9e069ff2
vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43
Changed `matcher.Matches(file)` to `matcher.MatchesOrParentMatches(file)`:

    cli/command/image/build/context.go:95:9: SA1019: matcher.Matches is deprecated: This implementation is buggy (it only checks a single parent dir against the pattern) and will be removed soon. Use either MatchesOrParentMatches or MatchesUsingParentResults instead.  (staticcheck)
        return matcher.Matches(file)
               ^

And updated a test to match the JSON omitting empty RootFS.Type fields (in
practice, this field should never be empty in real situations, and always
be "layer"). Changed the test to use subtests to easier find which case
is failing.

full diff: 343665850e...83b51522df

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-03-09 18:45:37 +01:00
..
LICENSE.txt vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00
README.md vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00
xxhash.go vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00
xxhash_amd64.s vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00
xxhash_arm64.s vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00
xxhash_asm.go vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00
xxhash_other.go vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00
xxhash_safe.go vendor: github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43 2022-03-09 18:45:37 +01:00

README.md

xxhash

VENDORED: Go to github.com/cespare/xxhash for original package.

GoDoc Build Status

xxhash is a Go implementation of the 64-bit xxHash algorithm, XXH64. This is a high-quality hashing algorithm that is much faster than anything in the Go standard library.

This package provides a straightforward API:

func Sum64(b []byte) uint64
func Sum64String(s string) uint64
type Digest struct{ ... }
    func New() *Digest

The Digest type implements hash.Hash64. Its key methods are:

func (*Digest) Write([]byte) (int, error)
func (*Digest) WriteString(string) (int, error)
func (*Digest) Sum64() uint64

This implementation provides a fast pure-Go implementation and an even faster assembly implementation for amd64.

Benchmarks

Here are some quick benchmarks comparing the pure-Go and assembly implementations of Sum64.

input size purego asm
5 B 979.66 MB/s 1291.17 MB/s
100 B 7475.26 MB/s 7973.40 MB/s
4 KB 17573.46 MB/s 17602.65 MB/s
10 MB 17131.46 MB/s 17142.16 MB/s

These numbers were generated on Ubuntu 18.04 with an Intel i7-8700K CPU using the following commands under Go 1.11.2:

$ go test -tags purego -benchtime 10s -bench '/xxhash,direct,bytes'
$ go test -benchtime 10s -bench '/xxhash,direct,bytes'

Projects using this package