drh [Sat, 15 Feb 2025 20:31:25 +0000 (20:31 +0000)]
An alternative implementation of the default-in-values feature that is
cleaner (it avoids dodgy poking about in the parser LALR stack looking for
errors) and has less performance impact in the common case where DEFAULT is
not used.
stephan [Sat, 15 Feb 2025 16:12:28 +0000 (16:12 +0000)]
DLL installation rules no longer create versioned symlinks on platforms where the DLL extension is '.dll' (cygwin, msys2, etc.), as suggested in [forum:28bb79638844c328|forum post 28bb79638844c328].
stephan [Fri, 14 Feb 2025 17:21:05 +0000 (17:21 +0000)]
Work around a autosetup --help bug which only(?) triggers on tcl 8.6, introduced by [9978c87139b7b042] and reported upstream as [https://github.com/msteveb/autosetup/issues/73|ticket #73]. Summary: calling 'options' from a proc, instead of the global scope, triggers an error about an invalid use of 'break'.
stephan [Fri, 14 Feb 2025 16:42:37 +0000 (16:42 +0000)]
ICU config support: add more details to error messages and correct a typo which would cause a configure crash if --with-icu-config=X refered to a non-executable X.
drh [Fri, 14 Feb 2025 10:28:28 +0000 (10:28 +0000)]
Fix test cases added for [d7b90d92ffbfc61f] so that they also work when
compiling with ICU support.
[forum:/forumpost/2ca8a09a7e|Forum post 2ca8a09a7e]
drh [Tue, 11 Feb 2025 19:40:19 +0000 (19:40 +0000)]
Omit the src/ctime.c source file, since it is automatically generated by a TCL
script. Instead, add rules to the various makefiles to generate ctime.c on
demand.
stephan [Tue, 11 Feb 2025 17:10:10 +0000 (17:10 +0000)]
Move the configure flags definition and handling into autosetup/sqlite-config.tcl to avoid duplication between auto.def and autoconf/auto.def while still giving us a way to filter the canonical-tree-only flags out of the autoconf build.
stephan [Tue, 11 Feb 2025 13:13:46 +0000 (13:13 +0000)]
Make the --out-implib support ([6092b0b86bf93a3d]) specifically opt-in because the feature check for it passes on some platforms where it is not recognized at link-time.
stephan [Tue, 11 Feb 2025 13:00:40 +0000 (13:00 +0000)]
Adapt [https://fossil-scm.org/home/info/3bff7b92d6d|Fossil SCM patch 3bff7b92d6d], applying -lrt for platforms which need it for one of {fdatasync, nanosleep}.
stephan [Mon, 10 Feb 2025 15:58:22 +0000 (15:58 +0000)]
Add jimsh.exe and jimsh0.exe to the clean rules in Makefile.msc so that stale builds of those files from msys2 and friends do not cause mysterious build errors.
stephan [Mon, 10 Feb 2025 15:01:14 +0000 (15:01 +0000)]
configure: when dlopen() is not found, only fail fatally if --enable-loadable-module is explicitly provided, else warn instead. Based on discussion around [forum:2efe9c33bd9021ca|forum post 2efe9c33bd9021ca]. Update proj-indented-notice to behave like its docs say it should when the -error flag is used.
stephan [Sun, 9 Feb 2025 04:38:56 +0000 (04:38 +0000)]
configure: if the linker supports --out-implib, generate libsqlite3.X.a, where X is the platform's DLL file extension. Discussion in/around [forum:0c7fc097b2|forum post 0c7fc097b2].
stephan [Sun, 9 Feb 2025 04:16:01 +0000 (04:16 +0000)]
wasm: add some build-time validation to ensure that the problem fixed in [65798c09a00662a3] does not recur. Ensure that files generated via mkwasmbuilds.c have the generated makefile as a dependency.
stephan [Sun, 9 Feb 2025 03:24:00 +0000 (03:24 +0000)]
wasm: when building in -O0 mode (typical dev mode), use -sASSERTIONS=2, else -sASSERTIONS=0, in response [https://github.com/emscripten-core/emscripten/pull/23629/commits/7e3e35cbff9c5688eacb3cddc5045f872d744efd|Emscripten checkin 7e3e35cbff9], which adds assertions to check for the condition reported in [https://github.com/emscripten-core/emscripten/issues/23420|Emscripten ticket 23420]. Update some unrelated JS-side internal docs.
stephan [Sun, 9 Feb 2025 01:25:00 +0000 (01:25 +0000)]
configure: when transfering ENABLE/OMIT flags from CFLAGS to OPT_FEATURE_FLAGS, also do the same for CPPFLAGS and remove those ENABLE/OMIT flags from CFLAGS/CPPFLAGS to mimic legacy build behavior. Strip ENABLE/OMIT flags from BUILD_CFLAGS but do not transfer those to OPT_FEATURE_FLAGS, also to mimic legacy behavior. This is the second part of a fix discussed at [forum:9801e54665afd728|forum post 9801e54665afd728].
drh [Sat, 8 Feb 2025 14:15:42 +0000 (14:15 +0000)]
Use the sqlite3ColumnIndex() routine to look up a column in a table, rather
than using a custom loop. Performance improvement, size reduction, and
complexity decrease.
drh [Sat, 8 Feb 2025 11:15:41 +0000 (11:15 +0000)]
Improvements to the hash table used to store symbols in the schema, so that
it works better (requires fewer calls to sqlite3StrICmp()) for large schemas,
and uses less code space.
drh [Fri, 7 Feb 2025 19:09:20 +0000 (19:09 +0000)]
Fix comments on the Parse.nMaxArgs field so that they are correct. Add
assert()s to ensure they are correct. Other Parse changes to reduce the
amount of memset() needed to initialize it.
stephan [Fri, 7 Feb 2025 12:58:09 +0000 (12:58 +0000)]
configure: change extension of static libraries from .lib to .a on msys/cygwin, as per discussion in [forum:02db2d4240|forum post 02db2d4240]. Replace unidiomatic JS-style use of inner procs in autosetup/proj.tcl with TCL lambdas.
stephan [Fri, 7 Feb 2025 12:33:48 +0000 (12:33 +0000)]
Reorder a piece of ext/wasm/GNUmakefile to correct the timing of various var accesses. Fixes a problem [https://github.com/sqlite/sqlite-wasm/pull/99|reported in the downstream npm subproject] and explains the confusion in [4aa025a943a4024094b9] (which has been reverted).
stephan [Thu, 6 Feb 2025 13:18:49 +0000 (13:18 +0000)]
Fix a dependencies/order-of-operations bug in ext/wasm/GNUmakefile which causes creation of files filtered via c-pp to fail if the ext/wasm/jswasm dir did not exist beforehand.
stephan [Mon, 3 Feb 2025 17:34:12 +0000 (17:34 +0000)]
Rework [76c8435a] to eliminate automatic JS-to-WASM function conversions of sqlite3_set_auxdata() destructors because it can leads to leaks on every call of a UDF. This feature never worked before [76c8435a] but fixing it was ill-conceived because of the memory leakage it introduces. WASM function pointers can still be used as destructors in this context.
stephan [Mon, 3 Feb 2025 14:55:56 +0000 (14:55 +0000)]
Add a more complete test for [76c8435a] and add some commentary about (A) the inability to automatically clean up automatically-generated WASM proxy functions for sqlite3_set_auxdata() destructors and (B) how to deal with (A) to avoid leaking WASM proxy functions.
drh [Mon, 3 Feb 2025 14:44:16 +0000 (14:44 +0000)]
Fix the build process on Windows so that it generates identical sqlite3.c,
sqlite3.h, and shell.c files on Windows and Unix. This patch also includes
a change to JS bindings that got caught up in the branch.
stephan [Mon, 3 Feb 2025 14:04:27 +0000 (14:04 +0000)]
Correct the FuncPtrAdapter signature for the JS binding of sqlite3_set_auxdata(). Reported in [https://github.com/sqlite/sqlite-wasm/issues/92|the npm subproject, ticket #92].