From ca994bd82617b48aa1a8cd63361d813fc921d253 Mon Sep 17 00:00:00 2001 From: "renovate-rancher[bot]" <119870437+renovate-rancher[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 08:39:23 +0000 Subject: [PATCH] Update module modernc.org/memory to v1.11.0 --- go.mod | 6 +- go.sum | 13 +- .../github.com/remyoudompheng/bigfft/README | 11 ++ vendor/modernc.org/mathutil/Makefile | 2 +- vendor/modernc.org/mathutil/builder.json | 6 + vendor/modernc.org/mathutil/mathutil.go | 84 ++++----- vendor/modernc.org/mathutil/rat.go | 7 +- vendor/modernc.org/mathutil/rnd.go | 12 +- vendor/modernc.org/memory/AUTHORS | 4 +- vendor/modernc.org/memory/CONTRIBUTORS | 4 +- vendor/modernc.org/memory/LICENSE-LOGO | 1 + vendor/modernc.org/memory/Makefile | 36 +++- vendor/modernc.org/memory/README.md | 4 +- vendor/modernc.org/memory/builder.json | 6 + vendor/modernc.org/memory/logo.png | Bin 0 -> 11369 bytes vendor/modernc.org/memory/memory.go | 163 +++++------------- vendor/modernc.org/memory/memory64.go | 4 +- vendor/modernc.org/memory/mmap_darwin.go | 19 -- vendor/modernc.org/memory/mmap_freebsd_32.go | 22 --- vendor/modernc.org/memory/mmap_freebsd_64.go | 22 --- .../modernc.org/memory/mmap_illumos_amd64.go | 91 ---------- vendor/modernc.org/memory/mmap_linux_32.go | 35 ---- vendor/modernc.org/memory/mmap_linux_64.go | 26 --- vendor/modernc.org/memory/mmap_linux_s390x.go | 23 --- vendor/modernc.org/memory/mmap_netbsd_32.go | 22 --- vendor/modernc.org/memory/mmap_netbsd_64.go | 22 --- vendor/modernc.org/memory/mmap_openbsd.go | 19 -- vendor/modernc.org/memory/mmap_unix.go | 37 ++-- vendor/modernc.org/memory/mmap_windows.go | 4 +- vendor/modules.txt | 10 +- 30 files changed, 199 insertions(+), 516 deletions(-) create mode 100644 vendor/modernc.org/mathutil/builder.json create mode 100644 vendor/modernc.org/memory/LICENSE-LOGO create mode 100644 vendor/modernc.org/memory/builder.json create mode 100644 vendor/modernc.org/memory/logo.png delete mode 100644 vendor/modernc.org/memory/mmap_darwin.go delete mode 100644 vendor/modernc.org/memory/mmap_freebsd_32.go delete mode 100644 vendor/modernc.org/memory/mmap_freebsd_64.go delete mode 100644 vendor/modernc.org/memory/mmap_illumos_amd64.go delete mode 100644 vendor/modernc.org/memory/mmap_linux_32.go delete mode 100644 vendor/modernc.org/memory/mmap_linux_64.go delete mode 100644 vendor/modernc.org/memory/mmap_linux_s390x.go delete mode 100644 vendor/modernc.org/memory/mmap_netbsd_32.go delete mode 100644 vendor/modernc.org/memory/mmap_netbsd_64.go delete mode 100644 vendor/modernc.org/memory/mmap_openbsd.go diff --git a/go.mod b/go.mod index 0a93718e4..e25c18299 100644 --- a/go.mod +++ b/go.mod @@ -137,7 +137,7 @@ require ( github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/remyoudompheng/bigfft v0.0.0-20230126093431-47fa9a501578 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/sassoftware/relic v7.2.1+incompatible // indirect github.com/secure-systems-lab/go-securesystemslib v0.10.0 // indirect @@ -195,8 +195,8 @@ require ( k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect modernc.org/libc v1.22.2 // indirect - modernc.org/mathutil v1.5.0 // indirect - modernc.org/memory v1.5.0 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.11.0 // indirect modernc.org/sqlite v1.20.3 // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect diff --git a/go.sum b/go.sum index e307fe795..fc8fc6c66 100644 --- a/go.sum +++ b/go.sum @@ -505,9 +505,8 @@ github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05Zp github.com/quay/clair/v2 v2.1.8 h1:F3C4CTno0UaGYOajWg19orY4sZe1YBYszL5o7UP6Lc8= github.com/quay/clair/v2 v2.1.8/go.mod h1:W98TX5hlrJA0+InaAtyM0R7x8e5SVonTSTj/Pj7ZGiY= github.com/remind101/migrate v0.0.0-20160423010909-d22d647232c2/go.mod h1:rhSvwcijY9wfmrBYrfCvapX8/xOTV46NAUjBRgUyJqc= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/remyoudompheng/bigfft v0.0.0-20230126093431-47fa9a501578 h1:VstopitMQi3hZP0fzvnsLmzXZdQGc4bEcgu24cp+d4M= -github.com/remyoudompheng/bigfft v0.0.0-20230126093431-47fa9a501578/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -820,10 +819,10 @@ k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzk k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= modernc.org/libc v1.22.2 h1:4U7v51GyhlWqQmwCHj28Rdq2Yzwk55ovjFrdPjs8Hb0= modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= -modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= +modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= +modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= +modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= modernc.org/sqlite v1.20.3 h1:SqGJMMxjj1PHusLxdYxeQSodg7Jxn9WWkaAQjKrntZs= modernc.org/sqlite v1.20.3/go.mod h1:zKcGyrICaxNTMEHSr1HQ2GUraP0j+845GYw37+EyT6A= pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= diff --git a/vendor/github.com/remyoudompheng/bigfft/README b/vendor/github.com/remyoudompheng/bigfft/README index 303c61772..0fcd39d96 100644 --- a/vendor/github.com/remyoudompheng/bigfft/README +++ b/vendor/github.com/remyoudompheng/bigfft/README @@ -1,3 +1,14 @@ +This library is a toy proof-of-concept implementation of the +well-known Schonhage-Strassen method for multiplying integers. +It is not expected to have a real life usecase outside number +theory computations, nor is it expected to be used in any production +system. + +If you are using it in your project, you may want to carefully +examine the actual requirement or problem you are trying to solve. + +# Comparison with the standard library and GMP + Benchmarking math/big vs. bigfft Number size old ns/op new ns/op delta diff --git a/vendor/modernc.org/mathutil/Makefile b/vendor/modernc.org/mathutil/Makefile index 879017db7..0e144134c 100644 --- a/vendor/modernc.org/mathutil/Makefile +++ b/vendor/modernc.org/mathutil/Makefile @@ -28,7 +28,7 @@ cpu: clean go tool pprof -lines *.test cpu.out edit: - @ 1>/dev/null 2>/dev/null gvim -p Makefile *.go & + @ 1>/dev/null 2>/dev/null gvim -p Makefile go.mod builder.json *.go & editor: gofmt -l -s -w *.go diff --git a/vendor/modernc.org/mathutil/builder.json b/vendor/modernc.org/mathutil/builder.json new file mode 100644 index 000000000..029d1414e --- /dev/null +++ b/vendor/modernc.org/mathutil/builder.json @@ -0,0 +1,6 @@ +{ + "autogen": "", + "autoupdate": ".", + "autotag": ".", + "test": "." +} diff --git a/vendor/modernc.org/mathutil/mathutil.go b/vendor/modernc.org/mathutil/mathutil.go index 6db664093..a73c8a6e1 100644 --- a/vendor/modernc.org/mathutil/mathutil.go +++ b/vendor/modernc.org/mathutil/mathutil.go @@ -5,7 +5,7 @@ // Package mathutil provides utilities supplementing the standard 'math' and // 'math/rand' packages. // -// Release history and compatibility issues +// # Release history and compatibility issues // // 2020-12-20 v1.2.1 fixes MulOverflowInt64. // @@ -14,50 +14,52 @@ // 2018-10-21 Added BinaryLog // // 2018-04-25: New functions for determining Max/Min of nullable values. Ex: -// func MaxPtr(a, b *int) *int { -// func MinPtr(a, b *int) *int { -// func MaxBytePtr(a, b *byte) *byte { -// func MinBytePtr(a, b *byte) *byte { -// ... +// +// func MaxPtr(a, b *int) *int { +// func MinPtr(a, b *int) *int { +// func MaxBytePtr(a, b *byte) *byte { +// func MinBytePtr(a, b *byte) *byte { +// ... // // 2017-10-14: New variadic functions for Max/Min. Ex: -// func MaxVal(val int, vals ...int) int { -// func MinVal(val int, vals ...int) int { -// func MaxByteVal(val byte, vals ...byte) byte { -// func MinByteVal(val byte, vals ...byte) byte { -// ... +// +// func MaxVal(val int, vals ...int) int { +// func MinVal(val int, vals ...int) int { +// func MaxByteVal(val byte, vals ...byte) byte { +// func MinByteVal(val byte, vals ...byte) byte { +// ... // // 2016-10-10: New functions QuadPolyDiscriminant and QuadPolyFactors. // // 2013-12-13: The following functions have been REMOVED // -// func Uint64ToBigInt(n uint64) *big.Int -// func Uint64FromBigInt(n *big.Int) (uint64, bool) +// func Uint64ToBigInt(n uint64) *big.Int +// func Uint64FromBigInt(n *big.Int) (uint64, bool) // // 2013-05-13: The following functions are now DEPRECATED // -// func Uint64ToBigInt(n uint64) *big.Int -// func Uint64FromBigInt(n *big.Int) (uint64, bool) +// func Uint64ToBigInt(n uint64) *big.Int +// func Uint64FromBigInt(n *big.Int) (uint64, bool) // // These functions will be REMOVED with Go release 1.1+1. // // 2013-01-21: The following functions have been REMOVED // -// func MaxInt() int -// func MinInt() int -// func MaxUint() uint -// func UintPtrBits() int +// func MaxInt() int +// func MinInt() int +// func MaxUint() uint +// func UintPtrBits() int // // They are now replaced by untyped constants // -// MaxInt -// MinInt -// MaxUint -// UintPtrBits +// MaxInt +// MinInt +// MaxUint +// UintPtrBits // // Additionally one more untyped constant was added // -// IntBits +// IntBits // // This change breaks any existing code depending on the above removed // functions. They should have not been published in the first place, that was @@ -71,8 +73,8 @@ // 1.0.3+1 and REMOVED with Go release 1.0.3+2, b/c of // http://code.google.com/p/go/source/detail?r=954a79ee3ea8 // -// func Uint64ToBigInt(n uint64) *big.Int -// func Uint64FromBigInt(n *big.Int) (uint64, bool) +// func Uint64ToBigInt(n uint64) *big.Int +// func Uint64FromBigInt(n *big.Int) (uint64, bool) package mathutil // import "modernc.org/mathutil" import ( @@ -507,20 +509,20 @@ k == 1. Wrt pseudocode shown at http://en.wikipedia.org/wiki/Miller-Rabin_primality_test#Algorithm_and_running_time - Input: n > 3, an odd integer to be tested for primality; - Input: k, a parameter that determines the accuracy of the test - Output: composite if n is composite, otherwise probably prime - write n − 1 as 2^s·d with d odd by factoring powers of 2 from n − 1 - LOOP: repeat k times: - pick a random integer a in the range [2, n − 2] - x ← a^d mod n - if x = 1 or x = n − 1 then do next LOOP - for r = 1 .. s − 1 - x ← x^2 mod n - if x = 1 then return composite - if x = n − 1 then do next LOOP - return composite - return probably prime + Input: n > 3, an odd integer to be tested for primality; + Input: k, a parameter that determines the accuracy of the test + Output: composite if n is composite, otherwise probably prime + write n − 1 as 2^s·d with d odd by factoring powers of 2 from n − 1 + LOOP: repeat k times: + pick a random integer a in the range [2, n − 2] + x ← a^d mod n + if x = 1 or x = n − 1 then do next LOOP + for r = 1 .. s − 1 + x ← x^2 mod n + if x = 1 then return composite + if x = n − 1 then do next LOOP + return composite + return probably prime ... this function behaves like passing 1 for 'k' and additionally a fixed/non-random 'a'. Otherwise it's the same algorithm. @@ -1385,7 +1387,7 @@ func ClampInt64(v, lo, hi int64) int64 { // ToBase produces n in base b. For example // -// ToBase(2047, 22) -> [1, 5, 4] +// ToBase(2047, 22) -> [1, 5, 4] // // 1 * 22^0 1 // 5 * 22^1 110 diff --git a/vendor/modernc.org/mathutil/rat.go b/vendor/modernc.org/mathutil/rat.go index 2f3742f72..a4829ec19 100644 --- a/vendor/modernc.org/mathutil/rat.go +++ b/vendor/modernc.org/mathutil/rat.go @@ -6,10 +6,9 @@ package mathutil // import "modernc.org/mathutil" // QCmpUint32 compares a/b and c/d and returns: // -// -1 if a/b < c/d -// 0 if a/b == c/d -// +1 if a/b > c/d -// +// -1 if a/b < c/d +// 0 if a/b == c/d +// +1 if a/b > c/d func QCmpUint32(a, b, c, d uint32) int { switch x, y := uint64(a)*uint64(d), uint64(b)*uint64(c); { case x < y: diff --git a/vendor/modernc.org/mathutil/rnd.go b/vendor/modernc.org/mathutil/rnd.go index 598bad4fe..08454cd81 100644 --- a/vendor/modernc.org/mathutil/rnd.go +++ b/vendor/modernc.org/mathutil/rnd.go @@ -15,12 +15,12 @@ import ( // this code doesn't produce values at constant delta (mod cycle length). // The 32 bit limit is per this implementation, the algorithm used has no intrinsic limit on the cycle size. // Properties include: -// - Adjustable limits on creation (hi, lo). -// - Positionable/randomly accessible (Pos, Seek). -// - Repeatable (deterministic). -// - Can run forward or backward (Next, Prev). -// - For a billion numbers cycle the Next/Prev PRN can be produced in cca 100-150ns. -// That's like 5-10 times slower compared to PRNs generated using the (non FC) rand package. +// - Adjustable limits on creation (hi, lo). +// - Positionable/randomly accessible (Pos, Seek). +// - Repeatable (deterministic). +// - Can run forward or backward (Next, Prev). +// - For a billion numbers cycle the Next/Prev PRN can be produced in cca 100-150ns. +// That's like 5-10 times slower compared to PRNs generated using the (non FC) rand package. type FC32 struct { cycle int64 // On average: 3 * delta / 2, (HQ: 2 * delta) delta int64 // hi - lo diff --git a/vendor/modernc.org/memory/AUTHORS b/vendor/modernc.org/memory/AUTHORS index 06687a287..1c9e7bf33 100644 --- a/vendor/modernc.org/memory/AUTHORS +++ b/vendor/modernc.org/memory/AUTHORS @@ -8,6 +8,8 @@ # # Please keep the list sorted. +Chris Waldon +Gleb Sakhnov Jan Mercl <0xjnml@gmail.com> +Scot C Bontrager Steffen Butzer -Gleb Sakhnov diff --git a/vendor/modernc.org/memory/CONTRIBUTORS b/vendor/modernc.org/memory/CONTRIBUTORS index 56ea0f100..df91c088f 100644 --- a/vendor/modernc.org/memory/CONTRIBUTORS +++ b/vendor/modernc.org/memory/CONTRIBUTORS @@ -7,7 +7,9 @@ # Please keep the list sorted. Anup Kodlekere +Chris Waldon +Gleb Sakhnov Jan Mercl <0xjnml@gmail.com> +Scot C Bontrager Steffen Butzer ZHU Zijia -Gleb Sakhnov diff --git a/vendor/modernc.org/memory/LICENSE-LOGO b/vendor/modernc.org/memory/LICENSE-LOGO new file mode 100644 index 000000000..ec496d173 --- /dev/null +++ b/vendor/modernc.org/memory/LICENSE-LOGO @@ -0,0 +1 @@ +https://commons.wikimedia.org/wiki/File:Memory_infra_logo.png diff --git a/vendor/modernc.org/memory/Makefile b/vendor/modernc.org/memory/Makefile index 466c940e9..40a91322c 100644 --- a/vendor/modernc.org/memory/Makefile +++ b/vendor/modernc.org/memory/Makefile @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -.PHONY: all clean cover cpu editor internalError later mem nuke todo edit +.PHONY: all clean cover cpu editor internalError later mem nuke todo edit build_all_targets grep=--include=*.go --include=*.l --include=*.y --include=*.yy ngrep='TODOOK\|parser\.go\|scanner\.go\|.*_string\.go' @@ -30,34 +30,66 @@ cpu: clean go tool pprof -lines *.test cpu.out edit: - @ 1>/dev/null 2>/dev/null gvim -p Makefile *.go & + @ 1>/dev/null 2>/dev/null gvim -p Makefile go.mod builder.json *.go & editor: gofmt -l -s -w *.go + +build_all_targets: GOOS=darwin GOARCH=amd64 go build + GOOS=darwin GOARCH=amd64 staticcheck GOOS=darwin GOARCH=arm64 go build + GOOS=darwin GOARCH=arm64 staticcheck GOOS=freebsd GOARCH=386 go build + GOOS=freebsd GOARCH=386 staticcheck GOOS=freebsd GOARCH=amd64 go build + GOOS=freebsd GOARCH=amd64 staticcheck GOOS=freebsd GOARCH=arm go build + GOOS=freebsd GOARCH=arm staticcheck GOOS=freebsd GOARCH=arm64 go build + GOOS=freebsd GOARCH=arm64 staticcheck GOOS=illumos GOARCH=amd64 go build + GOOS=illumos GOARCH=amd64 staticcheck GOOS=linux GOARCH=386 go build + GOOS=linux GOARCH=386 staticcheck GOOS=linux GOARCH=amd64 go build + GOOS=linux GOARCH=amd64 staticcheck GOOS=linux GOARCH=arm go build + GOOS=linux GOARCH=arm staticcheck GOOS=linux GOARCH=arm64 go build + GOOS=linux GOARCH=arm64 staticcheck + GOOS=linux GOARCH=loong64 go build + GOOS=linux GOARCH=loong64 staticcheck GOOS=linux GOARCH=mips go build + GOOS=linux GOARCH=mips staticcheck GOOS=linux GOARCH=mips64le go build + GOOS=linux GOARCH=mips64le staticcheck GOOS=linux GOARCH=mipsle go build + GOOS=linux GOARCH=mipsle staticcheck + GOOS=linux GOARCH=ppc64le go build + GOOS=linux GOARCH=ppc64le staticcheck GOOS=linux GOARCH=riscv64 go build + GOOS=linux GOARCH=riscv64 staticcheck GOOS=linux GOARCH=s390x go build + GOOS=linux GOARCH=s390x staticcheck GOOS=netbsd GOARCH=386 go build + GOOS=netbsd GOARCH=386 staticcheck GOOS=netbsd GOARCH=amd64 go build + GOOS=netbsd GOARCH=amd64 staticcheck GOOS=netbsd GOARCH=arm go build + GOOS=netbsd GOARCH=arm staticcheck GOOS=openbsd GOARCH=386 go build + GOOS=openbsd GOARCH=386 staticcheck GOOS=openbsd GOARCH=amd64 go build + GOOS=openbsd GOARCH=amd64 staticcheck GOOS=openbsd GOARCH=arm64 go build + GOOS=openbsd GOARCH=arm64 staticcheck GOOS=windows GOARCH=386 go build + GOOS=windows GOARCH=386 staticcheck GOOS=windows GOARCH=amd64 go build + GOOS=windows GOARCH=amd64 staticcheck + GOOS=windows GOARCH=arm64 go build + GOOS=windows GOARCH=arm64 staticcheck internalError: egrep -ho '"internal error.*"' *.go | sort | cat -n diff --git a/vendor/modernc.org/memory/README.md b/vendor/modernc.org/memory/README.md index 9354a3650..02c301256 100644 --- a/vendor/modernc.org/memory/README.md +++ b/vendor/modernc.org/memory/README.md @@ -1,4 +1,4 @@ -# memory +![logo-png](logo.png) Package memory implements a memory allocator. @@ -10,4 +10,4 @@ Installation $ go get modernc.org/memory -Documentation: [godoc.org/modernc.org/memory](http://godoc.org/modernc.org/memory) +[![Go Reference](https://pkg.go.dev/badge/modernc.org/memory.0.svg)](https://pkg.go.dev/modernc.org/memory) diff --git a/vendor/modernc.org/memory/builder.json b/vendor/modernc.org/memory/builder.json new file mode 100644 index 000000000..029d1414e --- /dev/null +++ b/vendor/modernc.org/memory/builder.json @@ -0,0 +1,6 @@ +{ + "autogen": "", + "autoupdate": ".", + "autotag": ".", + "test": "." +} diff --git a/vendor/modernc.org/memory/logo.png b/vendor/modernc.org/memory/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4eb2013e458967edff1047cca303008b9979e1 GIT binary patch literal 11369 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 literal 0 HcmV?d00001 diff --git a/vendor/modernc.org/memory/memory.go b/vendor/modernc.org/memory/memory.go index bbfaffcf7..6593c4234 100644 --- a/vendor/modernc.org/memory/memory.go +++ b/vendor/modernc.org/memory/memory.go @@ -4,125 +4,59 @@ // Package memory implements a memory allocator. // -// Build status +// # Build status // // available at https://modern-c.appspot.com/-/builder/?importpath=modernc.org%2fmemory // -// Changelog +// # Changelog // // 2017-10-03 Added alternative, unsafe.Pointer-based API. // // Package memory implements a memory allocator. // -// Changelog +// # Changelog // // 2017-10-03 Added alternative, unsafe.Pointer-based API. // -// Benchmarks +// # Benchmarks // -// AMD Ryzen 9 3900X 12-Core Processor × 24 -// -// jnml@3900x:~/src/modernc.org/memory$ date ; go version ; go test -run @ -bench . -benchmem |& tee log -// Fri Nov 20 17:23:04 CET 2020 -// go version go1.15.5 linux/amd64 -// goos: linux -// goarch: amd64 -// pkg: modernc.org/memory -// BenchmarkFree16-24 141188362 8.26 ns/op 0 B/op 0 allocs/op -// BenchmarkFree32-24 100000000 11.4 ns/op 0 B/op 0 allocs/op -// BenchmarkFree64-24 67160647 18.3 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc16-24 60612698 19.8 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc32-24 47968105 23.8 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc64-24 40752181 28.6 ns/op 0 B/op 0 allocs/op -// BenchmarkGoCalloc16-24 66487354 17.8 ns/op 16 B/op 1 allocs/op -// BenchmarkGoCalloc32-24 56009206 21.2 ns/op 32 B/op 1 allocs/op -// BenchmarkGoCalloc64-24 52086571 23.4 ns/op 64 B/op 1 allocs/op -// BenchmarkMalloc16-24 113943390 10.2 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc32-24 113520471 10.2 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc64-24 108787056 10.7 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree16-24 146110286 7.94 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree32-24 93052707 12.0 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree64-24 69805262 17.3 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc16-24 85282725 13.7 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc32-24 66489789 17.9 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc64-24 53561092 22.7 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc16-24 222978858 5.28 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc32-24 210443384 5.30 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc64-24 213706227 5.47 ns/op 0 B/op 0 allocs/op -// PASS -// ok modernc.org/memory 70.528s -// jnml@3900x:~/src/modernc.org/memory$ -// -// Intel® Core™ i5-4670 CPU @ 3.40GHz × 4 -// -// ==== jnml@4670:~/src/modernc.org/memory> date ; go version ; go test -run @ -bench . -benchmem |& tee log -// Sat Dec 8 12:56:53 CET 2018 -// go version go1.11.2 linux/amd64 -// goos: linux -// goarch: amd64 -// pkg: modernc.org/memory -// BenchmarkFree16-4 100000000 14.7 ns/op 0 B/op 0 allocs/op -// BenchmarkFree32-4 100000000 20.5 ns/op 0 B/op 0 allocs/op -// BenchmarkFree64-4 50000000 32.8 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc16-4 50000000 24.4 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc32-4 50000000 29.2 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc64-4 50000000 35.7 ns/op 0 B/op 0 allocs/op -// BenchmarkGoCalloc16-4 50000000 27.0 ns/op 16 B/op 1 allocs/op -// BenchmarkGoCalloc32-4 50000000 27.3 ns/op 32 B/op 1 allocs/op -// BenchmarkGoCalloc64-4 30000000 37.9 ns/op 64 B/op 1 allocs/op -// BenchmarkMalloc16-4 100000000 12.9 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc32-4 100000000 12.9 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc64-4 100000000 13.2 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree16-4 100000000 12.0 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree32-4 100000000 17.5 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree64-4 50000000 28.9 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc16-4 100000000 17.8 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc32-4 100000000 22.9 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc64-4 50000000 29.6 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc16-4 200000000 7.31 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc32-4 200000000 7.47 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc64-4 200000000 7.68 ns/op 0 B/op 0 allocs/op -// PASS -// ok modernc.org/memory 73.859s -// // -// Intel® Xeon(R) CPU E5-1650 v2 @ 3.50GHz × 12 -// -// ==== jnml@e5-1650:~/src/modernc.org/memory> date ; go version ; go test -run @ -bench . -benchmem -// Fri Dec 7 14:18:50 CET 2018 -// go version go1.11.2 linux/amd64 -// goos: linux -// goarch: amd64 -// pkg: modernc.org/memory -// BenchmarkFree16-12 100000000 16.7 ns/op 0 B/op 0 allocs/op -// BenchmarkFree32-12 50000000 25.0 ns/op 0 B/op 0 allocs/op -// BenchmarkFree64-12 30000000 39.7 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc16-12 50000000 26.3 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc32-12 50000000 33.4 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc64-12 30000000 38.3 ns/op 0 B/op 0 allocs/op -// BenchmarkGoCalloc16-12 50000000 26.6 ns/op 16 B/op 1 allocs/op -// BenchmarkGoCalloc32-12 50000000 26.8 ns/op 32 B/op 1 allocs/op -// BenchmarkGoCalloc64-12 30000000 35.1 ns/op 64 B/op 1 allocs/op -// BenchmarkMalloc16-12 100000000 13.5 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc32-12 100000000 13.4 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc64-12 100000000 14.1 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree16-12 100000000 14.4 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree32-12 100000000 21.7 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree64-12 50000000 36.7 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc16-12 100000000 20.4 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc32-12 50000000 27.1 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc64-12 50000000 33.4 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc16-12 200000000 8.02 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc32-12 200000000 8.28 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc64-12 200000000 8.29 ns/op 0 B/op 0 allocs/op -// PASS -// ok modernc.org/memory 80.896s +// jnml@3900x:~/src/modernc.org/memory$ date ; go version ; go test -run @ -bench . -benchmem |& tee log +// Mon Sep 25 16:02:02 CEST 2023 +// go version go1.21.1 linux/amd64 +// goos: linux +// goarch: amd64 +// pkg: modernc.org/memory +// cpu: AMD Ryzen 9 3900X 12-Core Processor +// BenchmarkFree16-24 123506772 9.802 ns/op 0 B/op 0 allocs/op +// BenchmarkFree32-24 73853230 15.08 ns/op 0 B/op 0 allocs/op +// BenchmarkFree64-24 43070334 25.15 ns/op 0 B/op 0 allocs/op +// BenchmarkCalloc16-24 59353304 18.92 ns/op 0 B/op 0 allocs/op +// BenchmarkCalloc32-24 39415004 29.00 ns/op 0 B/op 0 allocs/op +// BenchmarkCalloc64-24 35825725 32.02 ns/op 0 B/op 0 allocs/op +// BenchmarkGoCalloc16-24 38274313 26.99 ns/op 16 B/op 1 allocs/op +// BenchmarkGoCalloc32-24 44590477 33.06 ns/op 32 B/op 1 allocs/op +// BenchmarkGoCalloc64-24 44233016 37.20 ns/op 64 B/op 1 allocs/op +// BenchmarkMalloc16-24 145736911 7.720 ns/op 0 B/op 0 allocs/op +// BenchmarkMalloc32-24 128898334 7.887 ns/op 0 B/op 0 allocs/op +// BenchmarkMalloc64-24 149569483 7.994 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrFree16-24 117043012 9.205 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrFree32-24 77399617 14.20 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrFree64-24 48770785 25.04 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrCalloc16-24 79257636 15.44 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrCalloc32-24 49644562 23.62 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrCalloc64-24 39854710 28.22 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrMalloc16-24 252987727 4.525 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrMalloc32-24 241423840 4.433 ns/op 0 B/op 0 allocs/op +// BenchmarkUintptrMalloc64-24 256450324 4.669 ns/op 0 B/op 0 allocs/op +// PASS +// ok modernc.org/memory 93.178s +// jnml@3900x:~/src/modernc.org/memory$ package memory // import "modernc.org/memory" import ( "fmt" "math/bits" "os" - "reflect" "unsafe" ) @@ -175,6 +109,12 @@ func (a *Allocator) mmap(size int) (uintptr /* *page */, error) { return 0, err } + //TODO(jnml) The returned size may now be nearly as twice as large as we asked + //for. Use that extra capacity. For that we need to move the respective + //Allocator.cap item into the page struct so the page cap becomes dynamic. + // + // Related: This is a consequence of fixing the bigsort.test failures on + // linux/s390x, see: https://gitlab.com/cznic/sqlite/-/issues/207 if counters { a.Mmaps++ a.Bytes += size @@ -370,7 +310,7 @@ func (a *Allocator) UintptrRealloc(p uintptr, size int) (r uintptr, err error) { } us := UintptrUsableSize(p) - if us > size { + if us >= size { return p, nil } @@ -417,12 +357,7 @@ func (a *Allocator) Calloc(size int) (r []byte, err error) { return nil, err } - var b []byte - sh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) - sh.Cap = usableSize(p) - sh.Data = p - sh.Len = size - return b, nil + return (*rawmem)(unsafe.Pointer(p))[:size:usableSize(p)], nil } // Close releases all OS resources used by a and sets it to its zero value. @@ -461,11 +396,7 @@ func (a *Allocator) Malloc(size int) (r []byte, err error) { return nil, err } - sh := (*reflect.SliceHeader)(unsafe.Pointer(&r)) - sh.Cap = usableSize(p) - sh.Data = p - sh.Len = size - return r, nil + return (*rawmem)(unsafe.Pointer(p))[:size:usableSize(p)], nil } // Realloc changes the size of the backing array of b to size bytes or returns @@ -487,11 +418,7 @@ func (a *Allocator) Realloc(b []byte, size int) (r []byte, err error) { return nil, err } - sh := (*reflect.SliceHeader)(unsafe.Pointer(&r)) - sh.Cap = usableSize(p) - sh.Data = p - sh.Len = size - return r, nil + return (*rawmem)(unsafe.Pointer(p))[:size:usableSize(p)], nil } // UsableSize reports the size of the memory block allocated at p, which must diff --git a/vendor/modernc.org/memory/memory64.go b/vendor/modernc.org/memory/memory64.go index 2e51bb296..633929258 100644 --- a/vendor/modernc.org/memory/memory64.go +++ b/vendor/modernc.org/memory/memory64.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build amd64 || amd64p32 || arm64 || arm64be || mips64 || mips64le || mips64p32 || mips64p32le || ppc64 || ppc64le || sparc64 || riscv64 -// +build amd64 amd64p32 arm64 arm64be mips64 mips64le mips64p32 mips64p32le ppc64 ppc64le sparc64 riscv64 +//go:build amd64 || amd64p32 || arm64 || arm64be || mips64 || mips64le || mips64p32 || mips64p32le || ppc64 || ppc64le || sparc64 || riscv64 || loong64 +// +build amd64 amd64p32 arm64 arm64be mips64 mips64le mips64p32 mips64p32le ppc64 ppc64le sparc64 riscv64 loong64 package memory // import "modernc.org/memory" diff --git a/vendor/modernc.org/memory/mmap_darwin.go b/vendor/modernc.org/memory/mmap_darwin.go deleted file mode 100644 index d597cb45c..000000000 --- a/vendor/modernc.org/memory/mmap_darwin.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 || arm64 -// +build amd64 arm64 - -package memory - -import ( - _ "unsafe" -) - -// Function syscall.mmap for darwin and openbsd calls internal/abi.FuncPCABI0, -// which is implemented as a compile intrinsic so the code cannot be reused. -// Using go:linkname directive to link mmapSyscall to syscall.mmap - -//go:linkname mmapSyscall syscall.mmap -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) diff --git a/vendor/modernc.org/memory/mmap_freebsd_32.go b/vendor/modernc.org/memory/mmap_freebsd_32.go deleted file mode 100644 index 8b88f1b0e..000000000 --- a/vendor/modernc.org/memory/mmap_freebsd_32.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build (freebsd && 386) || (freebsd && arm) -// +build freebsd,386 freebsd,arm - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_386.go -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_freebsd_64.go b/vendor/modernc.org/memory/mmap_freebsd_64.go deleted file mode 100644 index 9a988bca1..000000000 --- a/vendor/modernc.org/memory/mmap_freebsd_64.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build (freebsd && amd64) || (freebsd && arm64) -// +build freebsd,amd64 freebsd,arm64 - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_amd64.go;l=1337-1346 -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_illumos_amd64.go b/vendor/modernc.org/memory/mmap_illumos_amd64.go deleted file mode 100644 index 1006fe812..000000000 --- a/vendor/modernc.org/memory/mmap_illumos_amd64.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2011 Evan Shaw. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-MMAP-GO file. - -// Modifications (c) 2022 The Memory Authors. - -package memory // import "modernc.org/memory" - -import ( - "os" - "syscall" - _ "unsafe" -) - -const ( - pageSizeLog = 20 - - // $ find /usr/include -name syscall.h - // /usr/include/sys/syscall.h - // $ grep -ni munmap /usr/include/sys/syscall.h - // 293:#define SYS_munmap 117 - // $ grep -ni mmap /usr/include/sys/syscall.h - // 291:#define SYS_mmap 115 - // 303:#define SYS_mmapobj 127 - // 442:#define SYS_mmap64 214 - // $ - // $ uname -a - // SunOS omnios64 5.11 omnios-r151044-d3b715b9d1 i86pc i386 i86pc - // $ - sys_MUNMAP = 117 - sys_MMAP = 214 -) - -var ( - osPageMask = osPageSize - 1 - osPageSize = os.Getpagesize() -) - -//go:linkname mmapSyscall syscall.mmap -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func unmap(addr uintptr, size int) error { - _, _, errno := syscall.Syscall(sys_MUNMAP, addr, uintptr(size), 0) - if errno != 0 { - return errno - } - - return nil -} - -// pageSize aligned. -func mmap(size int) (uintptr, int, error) { - size = roundup(size, osPageSize) - // The actual mmap syscall varies by architecture. mmapSyscall provides same - // functionality as the unexported funtion syscall.mmap and is declared in - // mmap_*_*.go and mmap_fallback.go. To add support for a new architecture, - // check function mmap in src/syscall/syscall_*_*.go or - // src/syscall/zsyscall_*_*.go in Go's source code. - p, err := mmapSyscall(0, uintptr(size+pageSize), syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANON, -1, 0) - if err != nil { - return 0, 0, err - } - - n := size + pageSize - if p&uintptr(osPageMask) != 0 { - panic("internal error") - } - - mod := int(p) & pageMask - if mod != 0 { - m := pageSize - mod - if err := unmap(p, m); err != nil { - return 0, 0, err - } - - n -= m - p += uintptr(m) - } - - if p&uintptr(pageMask) != 0 { - panic("internal error") - } - - if n-size != 0 { - if err := unmap(p+uintptr(size), n-size); err != nil { - return 0, 0, err - } - } - - return p, size, nil -} diff --git a/vendor/modernc.org/memory/mmap_linux_32.go b/vendor/modernc.org/memory/mmap_linux_32.go deleted file mode 100644 index 207ad417d..000000000 --- a/vendor/modernc.org/memory/mmap_linux_32.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build linux && (386 || arm || mips || mipsle) -// +build linux -// +build 386 arm mips mipsle - -package memory - -import ( - "syscall" -) - -// Function syscall.mmap and syscall.mmap2 are same for linux/386, linux/arm, -// linux/mips and linux/mipsle - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/syscall_linux_386.go;l=99-105 -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, syscall.EINVAL - } - return mmap2Syscall(addr, length, prot, flags, fd, page) -} - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_linux_386.go;l=1361-1370 -func mmap2Syscall(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_linux_64.go b/vendor/modernc.org/memory/mmap_linux_64.go deleted file mode 100644 index 3780c1492..000000000 --- a/vendor/modernc.org/memory/mmap_linux_64.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build linux && (amd64 || arm64 || mips64 || mips64le || riscv64 || ppc64le) -// +build linux -// +build amd64 arm64 mips64 mips64le riscv64 ppc64le - -package memory - -import ( - "syscall" -) - -// Function syscall.mmap is same for linux/amd64, linux/arm64, linux/mips64, -// linux/mips64le and linux/riscv64. - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_linux_amd64.go;l=1575-1584 -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_linux_s390x.go b/vendor/modernc.org/memory/mmap_linux_s390x.go deleted file mode 100644 index bf7260e52..000000000 --- a/vendor/modernc.org/memory/mmap_linux_s390x.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -package memory - -import ( - "syscall" - "unsafe" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/syscall_linux_s390x.go;l=105-115 -// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. -// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in . -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} - r0, _, e1 := syscall.Syscall(syscall.SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_netbsd_32.go b/vendor/modernc.org/memory/mmap_netbsd_32.go deleted file mode 100644 index 2c17038ae..000000000 --- a/vendor/modernc.org/memory/mmap_netbsd_32.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build (netbsd && 386) || (netbsd && arm) -// +build netbsd,386 netbsd,arm - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_386.go -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_netbsd_64.go b/vendor/modernc.org/memory/mmap_netbsd_64.go deleted file mode 100644 index 5c09a7bb0..000000000 --- a/vendor/modernc.org/memory/mmap_netbsd_64.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build netbsd && amd64 -// +build netbsd,amd64 - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_netbsd_amd64.go;l=1190 -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_openbsd.go b/vendor/modernc.org/memory/mmap_openbsd.go deleted file mode 100644 index 0b5e4f1de..000000000 --- a/vendor/modernc.org/memory/mmap_openbsd.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 || amd64 || arm64 -// +build 386 amd64 arm64 - -package memory - -import ( - _ "unsafe" -) - -// Function syscall.mmap for darwin and openbsd calls internal/abi.FuncPCABI0, -// which is implemented as a compile intrinsic so the code cannot be reused. -// Using go:linkname directive to link mmapSyscall to syscall.mmap - -//go:linkname mmapSyscall syscall.mmap -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) diff --git a/vendor/modernc.org/memory/mmap_unix.go b/vendor/modernc.org/memory/mmap_unix.go index 93f9b820c..8ee991538 100644 --- a/vendor/modernc.org/memory/mmap_unix.go +++ b/vendor/modernc.org/memory/mmap_unix.go @@ -2,19 +2,19 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE-MMAP-GO file. -//go:build darwin || dragonfly || freebsd || linux || openbsd || (solaris && !illumos) || netbsd -// +build darwin dragonfly freebsd linux openbsd solaris,!illumos netbsd +//go:build unix // Modifications (c) 2017 The Memory Authors. package memory // import "modernc.org/memory" import ( + "golang.org/x/sys/unix" "os" - "syscall" + "unsafe" ) -const pageSizeLog = 20 +const pageSizeLog = 16 var ( osPageMask = osPageSize - 1 @@ -22,36 +22,29 @@ var ( ) func unmap(addr uintptr, size int) error { - _, _, errno := syscall.Syscall(syscall.SYS_MUNMAP, addr, uintptr(size), 0) - if errno != 0 { - return errno - } - - return nil + return unix.MunmapPtr(unsafe.Pointer(addr), uintptr(size)) } // pageSize aligned. func mmap(size int) (uintptr, int, error) { size = roundup(size, osPageSize) - // The actual mmap syscall varies by architecture. mmapSyscall provides same - // functionality as the unexported funtion syscall.mmap and is declared in - // mmap_*_*.go and mmap_fallback.go. To add support for a new architecture, - // check function mmap in src/syscall/syscall_*_*.go or - // src/syscall/zsyscall_*_*.go in Go's source code. - p, err := mmapSyscall(0, uintptr(size+pageSize), syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANON, -1, 0) + // Ask for more so we can align the result at a pageSize boundary + n := size + pageSize + up, err := unix.MmapPtr(-1, 0, nil, uintptr(n), unix.PROT_READ|unix.PROT_WRITE, unix.MAP_PRIVATE|unix.MAP_ANON) if err != nil { return 0, 0, err } - n := size + pageSize + p := uintptr(up) if p&uintptr(osPageMask) != 0 { panic("internal error") } mod := int(p) & pageMask - if mod != 0 { + if mod != 0 { // Return the extra part before pageSize aligned block m := pageSize - mod if err := unmap(p, m); err != nil { + unmap(p, n) // Do not leak the first mmap return 0, 0, err } @@ -63,9 +56,13 @@ func mmap(size int) (uintptr, int, error) { panic("internal error") } - if n-size != 0 { + if n > size { // Return the extra part after pageSize aligned block if err := unmap(p+uintptr(size), n-size); err != nil { - return 0, 0, err + // Do not error when the kernel rejects the extra part after, just return the + // unexpectedly enlarged size. + // + // Fixes the bigsort.test failures on linux/s390x, see: https://gitlab.com/cznic/sqlite/-/issues/207 + size = n } } diff --git a/vendor/modernc.org/memory/mmap_windows.go b/vendor/modernc.org/memory/mmap_windows.go index 3c402039b..f88e51606 100644 --- a/vendor/modernc.org/memory/mmap_windows.go +++ b/vendor/modernc.org/memory/mmap_windows.go @@ -5,8 +5,8 @@ package memory // import "modernc.org/memory" import ( + syscall "golang.org/x/sys/windows" "os" - "syscall" ) const ( @@ -22,7 +22,7 @@ const ( const pageSizeLog = 16 var ( - modkernel32 = syscall.NewLazyDLL("kernel32.dll") + modkernel32 = syscall.NewLazySystemDLL("kernel32.dll") osPageMask = osPageSize - 1 osPageSize = os.Getpagesize() procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") diff --git a/vendor/modules.txt b/vendor/modules.txt index 0c3a77d7a..929c00c40 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -651,7 +651,7 @@ github.com/pmezard/go-difflib/difflib # github.com/quay/clair/v2 v2.1.8 ## explicit; go 1.12 github.com/quay/clair/v2/pkg/tarutil -# github.com/remyoudompheng/bigfft v0.0.0-20230126093431-47fa9a501578 +# github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec ## explicit; go 1.12 github.com/remyoudompheng/bigfft # github.com/rivo/uniseg v0.4.7 @@ -1586,11 +1586,11 @@ modernc.org/libc/utime modernc.org/libc/uuid modernc.org/libc/uuid/uuid modernc.org/libc/wctype -# modernc.org/mathutil v1.5.0 -## explicit; go 1.13 +# modernc.org/mathutil v1.7.1 +## explicit; go 1.21 modernc.org/mathutil -# modernc.org/memory v1.5.0 -## explicit; go 1.18 +# modernc.org/memory v1.11.0 +## explicit; go 1.23.0 modernc.org/memory # modernc.org/sqlite v1.20.3 ## explicit; go 1.17