p2: digest with in-sift FIFO, SQLite caches, Honcho context, recover
Dixie is capped (max_inflight 2, queue_depth 8, queue_wait 20s) and never queued on llama-server. Streaming chat, thinking off, 45s fallback to clean. Digest and chunk-embedding caches are content-addressed SQLite (Honcho context is not cached). Recover uses the guarded Fetcher. guardian-star is refused in code.
This commit is contained in:
+316
@@ -0,0 +1,316 @@
|
||||
// Code generated by modernc.org/undup from the per-target sqlite_*.go files; DO NOT EDIT.
|
||||
|
||||
//go:build (freebsd && 386) || (freebsd && amd64) || (freebsd && arm) || (freebsd && arm64) || (linux && 386) || (linux && amd64) || (linux && arm) || (linux && arm64) || (linux && loong64) || (linux && ppc64le) || (linux && riscv64) || (linux && s390x) || (netbsd && amd64) || (openbsd && amd64) || (openbsd && arm64)
|
||||
|
||||
package sqlite3
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"modernc.org/libc"
|
||||
)
|
||||
|
||||
const AT_FDCWD = -100
|
||||
|
||||
const HAVE_FULLFSYNC = 0
|
||||
|
||||
const INT_FAST16_MAX = 2147483647
|
||||
|
||||
const INT_FAST16_MIN = -2147483648
|
||||
|
||||
const RTLD_GLOBAL = 256
|
||||
|
||||
type Tfsblkcnt_t = uint64
|
||||
|
||||
type Tfsfilcnt_t = uint64
|
||||
|
||||
type Tint_fast16_t = int32
|
||||
|
||||
type Tlocale_t = uintptr
|
||||
|
||||
type Tuint_fast16_t = uint32
|
||||
|
||||
const UINT_FAST16_MAX = 4294967295
|
||||
|
||||
// C documentation
|
||||
//
|
||||
// /*
|
||||
// ** If the following global variable points to a string which is the
|
||||
// ** name of a directory, then that directory will be used to store
|
||||
// ** temporary files.
|
||||
// **
|
||||
// ** See also the "PRAGMA temp_store_directory" SQL command.
|
||||
// */
|
||||
var Xsqlite3_temp_directory uintptr
|
||||
|
||||
/*
|
||||
** Make sure we can call this stuff from C++.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Facilitate override of interface linkage and calling conventions.
|
||||
** Be aware that these macros may not be used within this particular
|
||||
** translation of the amalgamation and its associated header file.
|
||||
**
|
||||
** The SQLITE_EXTERN and SQLITE_API macros are used to instruct the
|
||||
** compiler that the target identifier should have external linkage.
|
||||
**
|
||||
** The SQLITE_CDECL macro is used to set the calling convention for
|
||||
** public functions that accept a variable number of arguments.
|
||||
**
|
||||
** The SQLITE_APICALL macro is used to set the calling convention for
|
||||
** public functions that accept a fixed number of arguments.
|
||||
**
|
||||
** The SQLITE_STDCALL macro is no longer used and is now deprecated.
|
||||
**
|
||||
** The SQLITE_CALLBACK macro is used to set the calling convention for
|
||||
** function pointers.
|
||||
**
|
||||
** The SQLITE_SYSAPI macro is used to set the calling convention for
|
||||
** functions provided by the operating system.
|
||||
**
|
||||
** Currently, the SQLITE_CDECL, SQLITE_APICALL, SQLITE_CALLBACK, and
|
||||
** SQLITE_SYSAPI macros are used only when building for environments
|
||||
** that require non-default calling conventions.
|
||||
*/
|
||||
|
||||
/*
|
||||
** These no-op macros are used in front of interfaces to mark those
|
||||
** interfaces as either deprecated or experimental. New applications
|
||||
** should not use deprecated interfaces - they are supported for backwards
|
||||
** compatibility only. Application writers should be aware that
|
||||
** experimental interfaces are subject to change in point releases.
|
||||
**
|
||||
** These macros used to resolve to various kinds of compiler magic that
|
||||
** would generate warning messages when they were used. But that
|
||||
** compiler magic ended up generating such a flurry of bug reports
|
||||
** that we have taken it all out and gone back to using simple
|
||||
** noop macros.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Ensure these symbols were not defined by some previous header file.
|
||||
*/
|
||||
|
||||
/*
|
||||
** CAPI3REF: Compile-Time Library Version Numbers
|
||||
**
|
||||
** ^(The [SQLITE_VERSION] C preprocessor macro in the sqlite3.h header
|
||||
** evaluates to a string literal that is the SQLite version in the
|
||||
** format "X.Y.Z" where X is the major version number (always 3 for
|
||||
** SQLite3) and Y is the minor version number and Z is the release number.)^
|
||||
** ^(The [SQLITE_VERSION_NUMBER] C preprocessor macro resolves to an integer
|
||||
** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z are the same
|
||||
** numbers used in [SQLITE_VERSION].)^
|
||||
** The SQLITE_VERSION_NUMBER for any given release of SQLite will also
|
||||
** be larger than the release from which it is derived. Either Y will
|
||||
** be held constant and Z will be incremented or else Y will be incremented
|
||||
** and Z will be reset to zero.
|
||||
**
|
||||
** Since [version 3.6.18] ([dateof:3.6.18]),
|
||||
** SQLite source code has been stored in the
|
||||
** <a href="http://fossil-scm.org/">Fossil configuration management
|
||||
** system</a>. ^The SQLITE_SOURCE_ID macro evaluates to
|
||||
** a string which identifies a particular check-in of SQLite
|
||||
** within its configuration management system. ^The SQLITE_SOURCE_ID
|
||||
** string contains the date and time of the check-in (UTC) and a SHA1
|
||||
** or SHA3-256 hash of the entire source tree. If the source code has
|
||||
** been edited in any way since it was last checked in, then the last
|
||||
** four hexadecimal digits of the hash may be modified.
|
||||
**
|
||||
** See also: [sqlite3_libversion()],
|
||||
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
||||
** [sqlite_version()] and [sqlite_source_id()].
|
||||
*/
|
||||
|
||||
// C documentation
|
||||
//
|
||||
// /*
|
||||
// ** Return the ON CONFLICT resolution mode in effect for the virtual
|
||||
// ** table update operation currently in progress.
|
||||
// **
|
||||
// ** The results of this routine are undefined unless it is called from
|
||||
// ** within an xUpdate method.
|
||||
// */
|
||||
func Xsqlite3_vtab_on_conflict(tls *libc.TLS, db uintptr) (r int32) {
|
||||
return libc.Int32FromUint8(_aMap[libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer(db)).FvtabOnConflict)-int32(1)])
|
||||
}
|
||||
|
||||
const _POSIX_CHOWN_RESTRICTED = 1
|
||||
|
||||
const _POSIX_JOB_CONTROL = 1
|
||||
|
||||
const _POSIX_NO_TRUNC = 1
|
||||
|
||||
const _POSIX_REGEXP = 1
|
||||
|
||||
const _POSIX_SHELL = 1
|
||||
|
||||
const __ELF__ = 1
|
||||
|
||||
const __unix__ = 1
|
||||
|
||||
// C documentation
|
||||
//
|
||||
// /*
|
||||
// ** Close a file. Make sure the lock has been released before closing.
|
||||
// */
|
||||
func _dotlockClose(tls *libc.TLS, id uintptr) (r int32) {
|
||||
var pFile uintptr
|
||||
_ = pFile
|
||||
pFile = id
|
||||
_dotlockUnlock(tls, id, NO_LOCK)
|
||||
Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FlockingContext)
|
||||
return _closeUnixFile(tls, id)
|
||||
}
|
||||
|
||||
/****************** End of the dot-file lock implementation *******************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
************************** Begin flock Locking ********************************
|
||||
**
|
||||
** Use the flock() system call to do file locking.
|
||||
**
|
||||
** flock() locking is like dot-file locking in that the various
|
||||
** fine-grain locking levels supported by SQLite are collapsed into
|
||||
** a single exclusive lock. In other words, SHARED, RESERVED, and
|
||||
** PENDING locks are the same thing as an EXCLUSIVE lock. SQLite
|
||||
** still works when you do this, but concurrency is reduced since
|
||||
** only a single process can be reading the database at a time.
|
||||
**
|
||||
** Omit this section if SQLITE_ENABLE_LOCKING_STYLE is turned off
|
||||
*/
|
||||
|
||||
/******************* End of the flock lock implementation *********************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
************************ Begin Named Semaphore Locking ************************
|
||||
**
|
||||
** Named semaphore locking is only supported on VxWorks.
|
||||
**
|
||||
** Semaphore locking is like dot-lock and flock in that it really only
|
||||
** supports EXCLUSIVE locking. Only a single process can read or write
|
||||
** the database file at a time. This reduces potential concurrency, but
|
||||
** makes the lock implementation much easier.
|
||||
*/
|
||||
/*
|
||||
** Named semaphore locking is only available on VxWorks.
|
||||
**
|
||||
*************** End of the named semaphore lock implementation ****************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*************************** Begin AFP Locking *********************************
|
||||
**
|
||||
** AFP is the Apple Filing Protocol. AFP is a network filesystem found
|
||||
** on Apple Macintosh computers - both OS9 and OSX.
|
||||
**
|
||||
** Third-party implementations of AFP are available. But this code here
|
||||
** only works on OSX.
|
||||
*/
|
||||
|
||||
/*
|
||||
** The code above is the AFP lock implementation. The code is specific
|
||||
** to MacOSX and does not work on other unix platforms. No alternative
|
||||
** is available. If you don't compile for a mac, then the "unix-afp"
|
||||
** VFS is not available.
|
||||
**
|
||||
********************* End of the AFP lock implementation **********************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*************************** Begin NFS Locking ********************************/
|
||||
|
||||
/*
|
||||
** The code above is the NFS lock implementation. The code is specific
|
||||
** to MacOSX and does not work on other unix platforms. No alternative
|
||||
** is available.
|
||||
**
|
||||
********************* End of the NFS lock implementation **********************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
**************** Non-locking sqlite3_file methods *****************************
|
||||
**
|
||||
** The next division contains implementations for all methods of the
|
||||
** sqlite3_file object other than the locking methods. The locking
|
||||
** methods were defined in divisions above (one locking method per
|
||||
** division). Those methods that are common to all locking modes
|
||||
** are gather together into this division.
|
||||
*/
|
||||
|
||||
// C documentation
|
||||
//
|
||||
// /*
|
||||
// ** The fsync() system call does not work as advertised on many
|
||||
// ** unix systems. The following procedure is an attempt to make
|
||||
// ** it work better.
|
||||
// **
|
||||
// ** The SQLITE_NO_SYNC macro disables all fsync()s. This is useful
|
||||
// ** for testing when we want to run through the test suite quickly.
|
||||
// ** You are strongly advised *not* to deploy with SQLITE_NO_SYNC
|
||||
// ** enabled, however, since with SQLITE_NO_SYNC enabled, an OS crash
|
||||
// ** or power failure will likely corrupt the database file.
|
||||
// **
|
||||
// ** SQLite sets the dataOnly flag if the size of the file is unchanged.
|
||||
// ** The idea behind dataOnly is that it should only write the file content
|
||||
// ** to disk, not the inode. We only set dataOnly if the file size is
|
||||
// ** unchanged since the file size is part of the inode. However,
|
||||
// ** Ted Ts'o tells us that fdatasync() will also write the inode if the
|
||||
// ** file size has changed. The only real difference between fdatasync()
|
||||
// ** and fsync(), Ted tells us, is that fdatasync() will not flush the
|
||||
// ** inode if the mtime or owner or other inode attributes have changed.
|
||||
// ** We only care about the file size, not the other file attributes, so
|
||||
// ** as far as SQLite is concerned, an fdatasync() is always adequate.
|
||||
// ** So, we always use fdatasync() if it is available, regardless of
|
||||
// ** the value of the dataOnly flag.
|
||||
// */
|
||||
func _full_fsync(tls *libc.TLS, fd int32, fullSync int32, dataOnly int32) (r int32) {
|
||||
var rc int32
|
||||
_ = rc
|
||||
/* The following "ifdef/elif/else/" block has the same structure as
|
||||
** the one below. It is replicated here solely to avoid cluttering
|
||||
** up the real code with the UNUSED_PARAMETER() macros.
|
||||
*/
|
||||
_ = fullSync
|
||||
_ = dataOnly
|
||||
/* Record the number of times that we do a normal fsync() and
|
||||
** FULLSYNC. This is used during testing to verify that this procedure
|
||||
** gets called with the correct arguments.
|
||||
*/
|
||||
/* If we compiled with the SQLITE_NO_SYNC flag, then syncing is a
|
||||
** no-op. But go ahead and call fstat() to validate the file
|
||||
** descriptor as we need a method to provoke a failure during
|
||||
** coverage testing.
|
||||
*/
|
||||
rc = libc.Xfsync(tls, fd)
|
||||
if libc.Bool(OS_VXWORKS != 0) && rc != -int32(1) {
|
||||
rc = 0
|
||||
}
|
||||
return rc
|
||||
}
|
||||
|
||||
func init() {
|
||||
p := unsafe.Pointer(&_dotlockIoFinder)
|
||||
*(*uintptr)(unsafe.Add(p, 0)) = __ccgo_fp(_dotlockIoFinderImpl)
|
||||
}
|
||||
|
||||
/*
|
||||
** The proxy locking method is a "super-method" in the sense that it
|
||||
** opens secondary file descriptors for the conch and lock files and
|
||||
** it uses proxy, dot-file, AFP, and flock() locking methods on those
|
||||
** secondary files. For this reason, the division that implements
|
||||
** proxy locking is located much further down in the file. But we need
|
||||
** to go ahead and define the sqlite3_io_methods and finder function
|
||||
** for proxy locking here. So we forward declare the I/O methods.
|
||||
*/
|
||||
|
||||
/* nfs lockd on OSX 10.3+ doesn't clear write locks when a read lock is set */
|
||||
|
||||
type locale_t = Tlocale_t
|
||||
|
||||
const math_errhandling = 2
|
||||
|
||||
type timer_t = Ttimer_t
|
||||
Reference in New Issue
Block a user