[chore] update to modernc.org/sqlite v1.38.0 with our concurrency workaround (#4256)

see: https://gitlab.com/cznic/sqlite/-/tags/v1.38.0
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4256
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
This commit is contained in:
kim 2025-06-10 13:19:18 +02:00 committed by tobi
commit 4ad17788cd
27 changed files with 88833 additions and 64669 deletions

3
vendor/modernc.org/libc/Makefile generated vendored
View file

@ -35,9 +35,10 @@ edit:
@if [ -f "Session.vim" ]; then gvim -S & else gvim -p Makefile go.mod builder.json & fi
editor:
gofmt -l -s -w *.go
# gofmt -l -s -w *.go
go test -c -o /dev/null
go build -o /dev/null -v generator*.go
go build -o /dev/null -v genasm.go
generate: download
mkdir -p $(DIR) || true

1320
vendor/modernc.org/libc/asm_linux_amd64.go generated vendored Normal file

File diff suppressed because it is too large Load diff

15647
vendor/modernc.org/libc/asm_linux_amd64.s generated vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -35,9 +35,9 @@ do
echo "GOOS=linux GOARCH=loong64"
GOOS=linux GOARCH=loong64 go build -tags=$tag -v ./...
GOOS=linux GOARCH=loong64 go test -tags=$tag -c -o /dev/null
echo "GOOS=linux GOARCH=mips64le"
GOOS=linux GOARCH=mips64le go build -tags=$tag -v ./...
GOOS=linux GOARCH=mips64le go test -tags=$tag -c -o /dev/null
# echo "GOOS=linux GOARCH=mips64le"
# GOOS=linux GOARCH=mips64le go build -tags=$tag -v ./...
# GOOS=linux GOARCH=mips64le go test -tags=$tag -c -o /dev/null
echo "GOOS=linux GOARCH=ppc64le"
GOOS=linux GOARCH=ppc64le go build -tags=$tag -v ./...
GOOS=linux GOARCH=ppc64le go test -tags=$tag -c -o /dev/null

View file

@ -244,10 +244,18 @@ var (
procWcsncpy = modcrt.NewProc("wcsncpy")
procWcsrchr = modcrt.NewProc("wcsrchr")
moducrt = windows.NewLazySystemDLL("ucrtbase.dll")
procFindfirst32 = moducrt.NewProc("_findfirst32")
procFindnext32 = moducrt.NewProc("_findnext32")
procStat64i32 = moducrt.NewProc("_stat64i32")
moducrt = windows.NewLazySystemDLL("ucrtbase.dll")
procFindfirst32 = moducrt.NewProc("_findfirst32")
procFindnext32 = moducrt.NewProc("_findnext32")
procStat64i32 = moducrt.NewProc("_stat64i32")
procWchmod = moducrt.NewProc("_wchmod")
procWfindfirst32 = moducrt.NewProc("_wfindfirst32")
procWfindfirst64i32 = moducrt.NewProc("_wfindfirst64i32")
procWfindnext32 = moducrt.NewProc("_wfindnext32")
procWfindnext64i32 = moducrt.NewProc("_wfindnext64i32")
procWmkdir = moducrt.NewProc("_wmkdir")
procWstat32 = moducrt.NewProc("_wstat32")
procWstat64i32 = moducrt.NewProc("_wstat64i32")
)
var (
@ -7775,3 +7783,75 @@ func X_strnicmp(tls *TLS, __Str1 uintptr, __Str2 uintptr, __MaxCount types.Size_
func X__builtin_ctz(t *TLS, n uint32) int32 {
return int32(mbits.TrailingZeros32(n))
}
// intptr_t _wfindfirst64i32(const wchar_t *filespec, struct _wfinddata64i32_t *fileinfo);
func X_wfindfirst64i32(tls *TLS, filespec, fileinfo uintptr) (r types.Intptr_t) {
r0, _, err := procWfindfirst64i32.Call(filespec, fileinfo)
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return types.Intptr_t(r0)
}
// int _wfindnext64i32(intptr_t handle, struct _wfinddata64i32_t *fileinfo);
func X_wfindnext64i32(tls *TLS, handle types.Intptr_t, fileinfo uintptr) (r int32) {
r0, _, err := procWfindnext64i32.Call(uintptr(handle), fileinfo)
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return int32(r0)
}
// int _wchmod( const wchar_t *filename, int pmode );
func X_wchmod(tls *TLS, filename uintptr, pmode int32) (r int32) {
r0, _, err := procWchmod.Call(filename, uintptr(pmode))
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return int32(r0)
}
// int _wmkdir(const wchar_t *dirname);
func X_wmkdir(tls *TLS, dirname uintptr) (r int32) {
r0, _, err := procWmkdir.Call(dirname)
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return int32(r0)
}
// int _wstat64i32(const wchar_t *path, struct _stat64i32 *buffer);
func X_wstat64i32(tls *TLS, path, buffer uintptr) (r int32) {
r0, _, err := procWstat64i32.Call(path, buffer)
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return int32(r0)
}
// intptr_t _wfindfirst32(const wchar_t *filespec, struct _wfinddata32_t *fileinfo);
func X_wfindfirst32(tls *TLS, filespec, fileinfo uintptr) (r types.Intptr_t) {
r0, _, err := procWfindfirst32.Call(filespec, fileinfo)
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return types.Intptr_t(r0)
}
// int _wfindnext32(intptr_t handle, struct _wfinddata32_t *fileinfo);
func X_wfindnext32(tls *TLS, handle types.Intptr_t, fileinfo uintptr) (r int32) {
r0, _, err := procWfindnext32.Call(uintptr(handle), fileinfo)
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return int32(r0)
}
// int _wstat32(const wchar_t *path, struct __stat32 *buffer);
func X_wstat32(tls *TLS, path, buffer uintptr) (r int32) {
r0, _, err := procWstat32.Call(path, buffer)
if err != windows.NOERROR {
tls.setErrno(int32(err.(windows.Errno)))
}
return int32(r0)
}

16
vendor/modernc.org/libc/tls_linux_amd64.go generated vendored Normal file
View file

@ -0,0 +1,16 @@
// Copyright 2025 The Libc Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package libc // import "modernc.org/libc"
func TLSAlloc(p0 *TLS, p1 int) uintptr
func TLSFree(p0 *TLS, p1 int)
func tlsAlloc(tls *TLS, n int) uintptr {
return tls.Alloc(n)
}
func tlsFre(tls *TLS, n int) {
tls.Free(n)
}

21
vendor/modernc.org/libc/tls_linux_amd64.s generated vendored Normal file
View file

@ -0,0 +1,21 @@
// Code generated for linux/amd64 by 'genasm []', DO NOT EDIT.
#include "textflag.h"
TEXT ·TLSAlloc(SB),$24-24
MOVQ p0+0(FP), AX
MOVQ AX, 0(SP)
MOVQ p1+8(FP), AX
MOVQ AX, 8(SP)
CALL ·tlsAlloc(SB)
MOVQ 16(SP), AX
MOVQ AX, ret+16(FP)
RET
TEXT ·TLSFree(SB),$16-16
MOVQ p0+0(FP), AX
MOVQ AX, 0(SP)
MOVQ p1+8(FP), AX
MOVQ AX, 8(SP)
CALL ·tlsFree(SB)
RET

1
vendor/modernc.org/sqlite/Makefile generated vendored
View file

@ -59,7 +59,6 @@ edit:
@if [ -f "Session.vim" ]; then gvim -S & else gvim -p Makefile go.mod builder.json all_test.go & fi
editor:
gofmt -l -s -w .
go test -c -o /dev/null
go build -v -o /dev/null ./...
cd vendor_libsqlite3 && go build -o /dev/null main.go

32
vendor/modernc.org/sqlite/doc.go generated vendored
View file

@ -27,21 +27,21 @@
//
// OS Arch SQLite version
// ------------------------------
// darwin amd64 3.49.0
// darwin arm64 3.49.0
// freebsd amd64 3.49.0
// freebsd arm64 3.49.0
// linux 386 3.49.0
// linux amd64 3.49.0
// linux arm 3.49.0
// linux arm64 3.49.0
// linux loong64 3.49.0
// linux ppc64le 3.49.0
// linux riscv64 3.49.0
// linux s390x 3.49.0
// windows 386 3.49.0
// windows amd64 3.49.0
// windows arm64 3.49.0
// darwin amd64 3.50.1
// darwin arm64 3.50.1
// freebsd amd64 3.50.1
// freebsd arm64 3.50.1
// linux 386 3.50.1
// linux amd64 3.50.1
// linux arm 3.50.1
// linux arm64 3.50.1
// linux loong64 3.50.1
// linux ppc64le 3.50.1
// linux riscv64 3.50.1
// linux s390x 3.50.1
// windows 386 3.50.1
// windows amd64 3.50.1
// windows arm64 3.50.1
//
// # Benchmarks
//
@ -55,6 +55,8 @@
//
// # Changelog
//
// - 2025-06-09 v1.38.0: Upgrade to SQLite 3.50.1.
//
// - 2025-02-26 v1.36.0: Upgrade to SQLite 3.49.0.
//
// - 2024-11-16 v1.34.0: Implement ResetSession and IsValid methods in connection

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

12
vendor/modernc.org/sqlite/sqlite.go generated vendored
View file

@ -603,6 +603,10 @@ func (s *stmt) query(ctx context.Context, args []driver.NamedValue) (r driver.Ro
var allocs []uintptr
defer func() {
if r == nil && err == nil {
r, err = newRows(s.c, pstmt, allocs, true)
}
if pstmt != 0 {
// ensure stmt finalized.
e := s.c.finalize(pstmt)
@ -613,10 +617,6 @@ func (s *stmt) query(ctx context.Context, args []driver.NamedValue) (r driver.Ro
err = e
}
}
if r == nil && err == nil {
r, err = newRows(s.c, pstmt, allocs, true)
}
}()
for psql := s.psql; *(*byte)(unsafe.Pointer(psql)) != 0; {
@ -2154,7 +2154,9 @@ func functionArgs(tls *libc.TLS, argc int32, argv uintptr) []driver.Value {
size := sqlite3.Xsqlite3_value_bytes(tls, valPtr)
blobPtr := sqlite3.Xsqlite3_value_blob(tls, valPtr)
v := make([]byte, size)
copy(v, (*libc.RawMem)(unsafe.Pointer(blobPtr))[:size:size])
if size != 0 {
copy(v, (*libc.RawMem)(unsafe.Pointer(blobPtr))[:size:size])
}
args[i] = v
default:
panic(fmt.Sprintf("unexpected argument type %q passed by sqlite", valType))

6
vendor/modules.txt vendored
View file

@ -1368,7 +1368,7 @@ gopkg.in/yaml.v2
# gopkg.in/yaml.v3 v3.0.1
## explicit
gopkg.in/yaml.v3
# modernc.org/libc v1.65.7
# modernc.org/libc v1.65.10
## explicit; go 1.23.0
modernc.org/libc
modernc.org/libc/errno
@ -1402,7 +1402,7 @@ modernc.org/mathutil
# modernc.org/memory v1.11.0
## explicit; go 1.23.0
modernc.org/memory
# modernc.org/sqlite v1.37.1 => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.37.1-concurrency-workaround
# modernc.org/sqlite v1.37.1 => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.38.0-concurrency-workaround
## explicit; go 1.23.0
modernc.org/sqlite
modernc.org/sqlite/lib
@ -1410,4 +1410,4 @@ modernc.org/sqlite/lib
## explicit; go 1.22.0
mvdan.cc/xurls/v2
# github.com/go-swagger/go-swagger => codeberg.org/superseriousbusiness/go-swagger v0.31.0-gts-go1.23-fix
# modernc.org/sqlite => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.37.1-concurrency-workaround
# modernc.org/sqlite => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.38.0-concurrency-workaround