1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Start work on an overhaul of the wasm build process, with an eye towards less over-engineering.

FossilOrigin-Name: ed746b3dd3248b68cb91de50ac5ba5fd3a7c2fcbde76324e86b88edbfecd896b
This commit is contained in:
stephan
2024-07-25 10:50:45 +00:00
parent b16c2980b3
commit cc65612e35
11 changed files with 157 additions and 151 deletions

View File

@ -54,6 +54,7 @@ MAKEFILE := $(lastword $(MAKEFILE_LIST))
CLEAN_FILES := CLEAN_FILES :=
DISTCLEAN_FILES := ./--dummy-- DISTCLEAN_FILES := ./--dummy--
release: oz release: oz
MAKING_CLEAN := $(if $(filter %clean,$(MAKECMDGOALS)),1,0)
######################################################################## ########################################################################
# JS_BUILD_NAMES exists for documentation purposes only. It enumerates # JS_BUILD_NAMES exists for documentation purposes only. It enumerates
@ -86,46 +87,6 @@ JS_BUILD_NAMES := sqlite3 sqlite3-wasmfs
# #
JS_BUILD_MODES := vanilla esm bunder-friendly node JS_BUILD_MODES := vanilla esm bunder-friendly node
########################################################################
# Emscripten SDK home dir and related binaries...
EMSDK_HOME ?= $(word 1,$(wildcard $(HOME)/emsdk $(HOME)/src/emsdk))
emcc.bin ?= $(word 1,$(wildcard $(EMSDK_HOME)/upstream/emscripten/emcc) $(shell which emcc))
ifeq (,$(emcc.bin))
$(error Cannot find emcc.)
endif
emcc.version := $(shell "$(emcc.bin)" --version | sed -n 1p \
| sed -e 's/^.* \([3-9][^ ]*\) .*$$/\1/;')
ifeq (,$(emcc.version))
$(warning Cannot determine emcc version. This might unduly impact build flags.)
else
$(info using emcc version [$(emcc.version)])
endif
wasm-strip ?= $(shell which wasm-strip 2>/dev/null)
ifeq (,$(filter clean,$(MAKECMDGOALS)))
ifeq (,$(wasm-strip))
$(info WARNING: *******************************************************************)
$(info WARNING: builds using -O2/-O3/-Os/-Oz will minify WASM-exported names,)
$(info WARNING: breaking _All The Things_. The workaround for that is to build)
$(info WARNING: with -g3 (which explodes the file size) and then strip the debug)
$(info WARNING: info after compilation, using wasm-strip, to shrink the wasm file.)
$(info WARNING: wasm-strip was not found in the PATH so we cannot strip those.)
$(info WARNING: If this build uses any optimization level higher than -O1 then)
$(info WARNING: the ***resulting JS code WILL NOT BE USABLE***.)
$(info WARNING: wasm-strip is part of the wabt package:)
$(info WARNING: https://github.com/WebAssembly/wabt)
$(info WARNING: on Ubuntu-like systems it can be installed with:)
$(info WARNING: sudo apt install wabt)
$(info WARNING: *******************************************************************)
endif
endif # 'make clean' check
ifeq (,$(wasm-strip))
maybe-wasm-strip = echo "not wasm-stripping"
else
maybe-wasm-strip = $(wasm-strip)
endif
######################################################################## ########################################################################
# dir.top = the top dir of the canonical build tree, where # dir.top = the top dir of the canonical build tree, where
# sqlite3.[ch] live. # sqlite3.[ch] live.
@ -141,41 +102,16 @@ dir.common := common
dir.fiddle := fiddle dir.fiddle := fiddle
dir.fiddle-debug := fiddle-debug dir.fiddle-debug := fiddle-debug
dir.tool := $(dir.top)/tool dir.tool := $(dir.top)/tool
CLEAN_FILES += *~ $(dir.jacc)/*~ $(dir.api)/*~ $(dir.common)/*~ $(dir.fiddle)/*~ \ # Maintenance reminder: the names of $(dir.dout) and $(dir.tmp) must
$(dir.fiddle-debug)/* # stay in sync with make-make.sh
########################################################################
# dir.dout = output dir for deliverables.
# #
# MAINTENANCE REMINDER: the output .js and .wasm files of certain emcc
# buildables must be in _this_ dir, rather than a subdir, or else
# parts of the generated code get confused and cannot load
# property. Specifically, when X.js loads X.wasm, whether or not X.js
# uses the correct path for X.wasm depends on how it's loaded: an HTML
# script tag will resolve it intuitively, whereas a Worker's call to
# importScripts() will not. That's a fundamental incompatibility with
# how URL resolution in JS happens between those two contexts. See:
#
# https://zzz.buzz/2017/03/14/relative-uris-in-web-development/
#
# We unfortunately have no way, from Worker-initiated code, to
# automatically resolve the path from X.js to X.wasm.
#
# We have an "only slightly unsightly" solution for our main builds
# but it does not work for the WASMFS builds, so those builds have to
# be built to _this_ directory and can only run when the client app is
# loaded from the same directory.
dir.dout := $(dir.wasm)/jswasm
# dir.tmp = output dir for intermediary build files, as opposed to # dir.tmp = output dir for intermediary build files, as opposed to
# end-user deliverables. # end-user deliverables.
dir.dout := $(dir.wasm)/jswasm
# dir.dout = output dir for deliverables
dir.tmp := $(dir.wasm)/bld dir.tmp := $(dir.wasm)/bld
CLEAN_FILES += $(dir.tmp)/* $(dir.dout)/* CLEAN_FILES += *~ $(dir.jacc)/*~ $(dir.api)/*~ $(dir.common)/*~ $(dir.fiddle)/*~ \
ifeq (,$(wildcard $(dir.dout))) $(dir.fiddle-debug)/* $(dir.dout)/* $(dir.tmp)/*
dir._tmp := $(shell mkdir -p $(dir.dout))
endif
ifeq (,$(wildcard $(dir.tmp)))
dir._tmp := $(shell mkdir -p $(dir.tmp))
endif
######################################################################## ########################################################################
# Set up sqlite3.c and sqlite3.h... # Set up sqlite3.c and sqlite3.h...
@ -197,18 +133,33 @@ endif
sqlite3.canonical.c := $(dir.top)/sqlite3.c sqlite3.canonical.c := $(dir.top)/sqlite3.c
sqlite3.c ?= $(firstword $(wildcard $(dir.top)/sqlite3-see.c) $(sqlite3.canonical.c)) sqlite3.c ?= $(firstword $(wildcard $(dir.top)/sqlite3-see.c) $(sqlite3.canonical.c))
sqlite3.h := $(dir.top)/sqlite3.h sqlite3.h := $(dir.top)/sqlite3.h
ifeq (,$(shell grep sqlite3_activate_see $(sqlite3.c) 2>/dev/null))
SQLITE_C_IS_SEE := 0 ########################################################################@
else # It's important that sqlite3.h be built to completion before any
SQLITE_C_IS_SEE := 1 # other parts of the build run, thus we use .NOTPARALLEL to disable
$(info This is an SEE build.) # parallel build of that file and its dependants.
.NOTPARALLEL: $(sqlite3.h)
$(sqlite3.h):
$(MAKE) -C $(dir.top) sqlite3.c
$(sqlite3.c): $(sqlite3.h)
# .cache.make is generated by a shell script and holds certain parts
# of the makefile, some of which are relatively expensive to calculate
# on each run (that is, they can take a human-visible amount of time).
ifeq (0,$(MAKING_CLEAN))
.cache.make: $(sqlite3.c) $(sqlite3.canonical.c) $(MAKEFILE) make-make.sh
rm -f $@
$(SHELL) make-make.sh "$(sqlite3.c)" > $@
chmod -w $@
-include .cache.make
.cache.make: $(emcc.bin)
endif endif
# Most SQLITE_OPT flags are set in sqlite3-wasm.c but we need them CLEAN_FILES += .cache.make
# made explicit here for building speedtest1.c.
# Common options for building sqlite3-wasm.c and speedtest1.c.
SQLITE_OPT = \ SQLITE_OPT = \
-DSQLITE_ENABLE_FTS5 \ -DSQLITE_ENABLE_FTS5 \
-DSQLITE_ENABLE_RTREE \ -DSQLITE_ENABLE_RTREE \
-DSQLITE_ENABLE_EXPLAIN_COMMENTS \
-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION \ -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION \
-DSQLITE_ENABLE_STMTVTAB \ -DSQLITE_ENABLE_STMTVTAB \
-DSQLITE_ENABLE_DBPAGE_VTAB \ -DSQLITE_ENABLE_DBPAGE_VTAB \
@ -241,15 +192,6 @@ ifeq (1,$(minimal))
SQLITE_OPT += -DSQLITE_WASM_MINIMAL SQLITE_OPT += -DSQLITE_WASM_MINIMAL
endif endif
########################################################################@
# It's important that sqlite3.h be built to completion before any
# other parts of the build run, thus we use .NOTPARALLEL to disable
# parallel build of that file and its dependants.
.NOTPARALLEL: $(sqlite3.h)
$(sqlite3.h):
$(MAKE) -C $(dir.top) sqlite3.c
$(sqlite3.c): $(sqlite3.h)
.PHONY: clean distclean .PHONY: clean distclean
clean: clean:
-rm -f $(CLEAN_FILES) -rm -f $(CLEAN_FILES)
@ -371,7 +313,7 @@ define C-PP.FILTER
# $3 = optional c-pp -D... flags # $3 = optional c-pp -D... flags
$(2): $(1) $$(MAKEFILE) $$(bin.c-pp) $(2): $(1) $$(MAKEFILE) $$(bin.c-pp)
$$(bin.c-pp) -f $(1) -o $$@ $(3) $(C-PP.FILTER.global) $$(bin.c-pp) -f $(1) -o $$@ $(3) $(C-PP.FILTER.global)
CLEAN_FILES += $(2) #CLEAN_FILES += $(2)
endef endef
# /end C-PP.FILTER # /end C-PP.FILTER
######################################################################## ########################################################################
@ -421,17 +363,13 @@ emcc_opt_full := $(emcc_opt) -g3
######################################################################## ########################################################################
# EXPORTED_FUNCTIONS.* = files for use with Emscripten's # EXPORTED_FUNCTIONS.* = files for use with Emscripten's
# -sEXPORTED_FUNCTION flag. # -sEXPORTED_FUNCTION flag.
EXPORTED_FUNCTIONS.api.core := $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core) EXPORTED_FUNCTIONS.api.core := $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core
EXPORTED_FUNCTIONS.api.in := $(EXPORTED_FUNCTIONS.api.core) EXPORTED_FUNCTIONS.api.in := $(EXPORTED_FUNCTIONS.api.core)
ifeq (1,$(SQLITE_C_IS_SEE)) ifeq (1,$(SQLITE_C_IS_SEE))
EXPORTED_FUNCTIONS.api.in += $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-see) EXPORTED_FUNCTIONS.api.in += $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-see
endif endif
ifeq (0,$(minimal)) ifeq (0,$(minimal))
EXPORTED_FUNCTIONS.api.in += \ EXPORTED_FUNCTIONS.api.in += $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-extras
$(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-auth) \
$(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-preupdate) \
$(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-session) \
$(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-vtab)
else else
$(info ========================================) $(info ========================================)
$(info This is a minimal-mode build) $(info This is a minimal-mode build)
@ -906,7 +844,7 @@ $(5): $(4) $$(MAKEFILE) $$(sqlite3-wasm.cfiles) $$(EXPORTED_FUNCTIONS.api) $$(pr
ls -la $$$$dotwasm $$@ ls -la $$$$dotwasm $$@
all: $(5) all: $(5)
#quick: $(5) #quick: $(5)
CLEAN_FILES += $(4) $(5) #CLEAN_FILES += $(4) $(5)
endef endef
# ^^^ /SETUP_LIB_BUILD_MODE # ^^^ /SETUP_LIB_BUILD_MODE
######################################################################## ########################################################################
@ -962,7 +900,7 @@ $(sqlite3.wasm): $(sqlite3.js)
$(sqlite3.mjs): $(sqlite3.js) $(sqlite3.mjs): $(sqlite3.js)
$(sqlite3-bundler-friendly.mjs): $(sqlite3.mjs) $(sqlite3-bundler-friendly.mjs): $(sqlite3.mjs)
$(sqlite3-node.mjs): $(sqlite3.mjs) $(sqlite3-node.mjs): $(sqlite3.mjs)
CLEAN_FILES += $(sqlite3.wasm) #CLEAN_FILES += $(sqlite3.wasm)
######################################################################## ########################################################################
# We need separate copies of certain supplementary JS files for the # We need separate copies of certain supplementary JS files for the
@ -1106,7 +1044,7 @@ $(speedtest1.js): $(MAKEFILE) $(speedtest1.cfiles) \
speedtest1: $(speedtest1.js) speedtest1: $(speedtest1.js)
all: speedtest1 all: speedtest1
CLEAN_FILES += $(speedtest1.js) $(speedtest1.wasm) #CLEAN_FILES += $(speedtest1.js) $(speedtest1.wasm)
# end speedtest1.js # end speedtest1.js
######################################################################## ########################################################################
@ -1174,7 +1112,7 @@ wasmfs.enable ?= 1
else else
# Unconditionally enable wasmfs for [dist]clean so that the wasmfs # Unconditionally enable wasmfs for [dist]clean so that the wasmfs
# sub-make can clean up. # sub-make can clean up.
wasmfs.enable ?= $(if $(filter %clean,$(MAKECMDGOALS)),1,0) wasmfs.enable ?= $(MAKING_CLEAN)
endif endif
ifeq (1,$(wasmfs.enable)) ifeq (1,$(wasmfs.enable))
# wasmfs build disabled 2022-10-19 per /chat discussion. # wasmfs build disabled 2022-10-19 per /chat discussion.

View File

@ -1 +0,0 @@
_sqlite3_set_authorizer

View File

@ -1,3 +1,10 @@
_sqlite3_set_authorizer
_sqlite3_preupdate_blobwrite
_sqlite3_preupdate_count
_sqlite3_preupdate_depth
_sqlite3_preupdate_hook
_sqlite3_preupdate_new
_sqlite3_preupdate_old
_sqlite3changegroup_add _sqlite3changegroup_add
_sqlite3changegroup_add_strm _sqlite3changegroup_add_strm
_sqlite3changegroup_delete _sqlite3changegroup_delete
@ -40,3 +47,14 @@ _sqlite3session_object_config
_sqlite3session_patchset _sqlite3session_patchset
_sqlite3session_patchset_strm _sqlite3session_patchset_strm
_sqlite3session_table_filter _sqlite3session_table_filter
_sqlite3_create_module
_sqlite3_create_module_v2
_sqlite3_declare_vtab
_sqlite3_vtab_collation
_sqlite3_vtab_distinct
_sqlite3_vtab_in
_sqlite3_vtab_in_first
_sqlite3_vtab_in_next
_sqlite3_vtab_nochange
_sqlite3_vtab_on_conflict
_sqlite3_vtab_rhs_value

View File

@ -1,6 +0,0 @@
_sqlite3_preupdate_blobwrite
_sqlite3_preupdate_count
_sqlite3_preupdate_depth
_sqlite3_preupdate_hook
_sqlite3_preupdate_new
_sqlite3_preupdate_old

View File

@ -1,11 +0,0 @@
_sqlite3_create_module
_sqlite3_create_module_v2
_sqlite3_declare_vtab
_sqlite3_vtab_collation
_sqlite3_vtab_distinct
_sqlite3_vtab_in
_sqlite3_vtab_in_first
_sqlite3_vtab_in_next
_sqlite3_vtab_nochange
_sqlite3_vtab_on_conflict
_sqlite3_vtab_rhs_value

View File

@ -336,7 +336,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
}/* sqlite3_set_authorizer() */ }/* sqlite3_set_authorizer() */
if(false && wasm.compileOptionUsed('SQLITE_ENABLE_NORMALIZE')){ if(false && wasm.compileOptionUsed('SQLITE_ENABLE_NORMALIZE')){
/* ^^^ "the problem" is that this is an option feature and the /* ^^^ "the problem" is that this is an optional feature and the
build-time function-export list does not currently take build-time function-export list does not currently take
optional features into account. */ optional features into account. */
wasm.bindingSignatures.push(["sqlite3_normalized_sql", "string", "sqlite3_stmt*"]); wasm.bindingSignatures.push(["sqlite3_normalized_sql", "string", "sqlite3_stmt*"]);

84
ext/wasm/make-make.sh Executable file
View File

@ -0,0 +1,84 @@
#!/usr/bin/bash
########################################################################
# Emits the makefile code for .cache.make. Any makefile bits which are
# potentially expensive to calculate on every build but rarely change
# should be emitted from here.
#
# Arguments:
#
# $1 = path to sqlite3.c. Default: ../../sqlite3.c
#
########################################################################
function die(){
local rc=$1
shift
echo "\$(error $0 failed: $@)"
# ^^^ Ensure that if this output is being redirected, the
# resulting makefile will fail loudly instead of just being
# truncated.
echo "Error: $@" 1>&2
exit $rc
}
SQLITE3_C="${1-../../sqlite3.c}"
echo "# GENERATED makefile code. DO NOT EDIT."
if grep sqlite3_activate_see "$SQLITE3_C" &>/dev/null; then
echo 'SQLITE_C_IS_SEE := 1'
echo '$(info This is an SEE build)'
else
echo 'SQLITE_C_IS_SEE := 0'
fi
########################################################################
# Locate the emcc (Emscripten) binary...
EMCC_BIN=$(which emcc)
if [[ x = "x${EMCC_BIN}" ]]; then
if [[ x != "x${EMSDK_HOME}" ]]; then
EMCC_BIN="${EMSDK_HOME}/upstream/emscripten/emcc"
fi
fi
if [[ x = "x${EMCC_BIN}" ]]; then
die 1 "Cannot find emcc binary in PATH or EMSDK_HOME."
fi
[[ -x "${EMCC_BIN}" ]] || die 1 "emcc is not executable"
echo "emcc.bin := ${EMCC_BIN}"
echo "emcc.version :=" $("${EMCC_BIN}" --version | sed -n 1p \
| sed -e 's/^.* \([3-9][^ ]*\) .*$/\1/;')
echo '$(info using emcc version [$(emcc.version)])'
#########################################################################
# wasm-strip binary...
WASM_STRIP_BIN=$(which wasm-strip 2>/dev/null)
echo "wasm-strip ?= ${WASM_STRIP_BIN}"
if [[ x = "x${WASM_STRIP_BIN}" ]]; then
cat <<EOF
maybe-wasm-strip = echo "not wasm-stripping"
ifeq (,\$(filter clean,\$(MAKECMDGOALS)))'
\$(info WARNING: *******************************************************************)
\$(info WARNING: builds using -O2/-O3/-Os/-Oz will minify WASM-exported names,)
\$(info WARNING: breaking _All The Things_. The workaround for that is to build)
\$(info WARNING: with -g3 (which explodes the file size) and then strip the debug)
\$(info WARNING: info after compilation, using wasm-strip, to shrink the wasm file.)
\$(info WARNING: wasm-strip was not found in the PATH so we cannot strip those.)
\$(info WARNING: If this build uses any optimization level higher than -O1 then)
\$(info WARNING: the ***resulting JS code WILL NOT BE USABLE***.)
\$(info WARNING: wasm-strip is part of the wabt package:)
\$(info WARNING: https://github.com/WebAssembly/wabt)
\$(info WARNING: on Ubuntu-like systems it can be installed with:)
\$(info WARNING: sudo apt install wabt)
\$(info WARNING: *******************************************************************)
endif
EOF
else
echo 'maybe-wasm-strip = $(wasm-strip)'
fi
dir_dout=jswasm
dir_tmp=bld
for d in $dir_dout $dir_tmp; do
[ -d $d ] || mkdir -p $d
done

View File

@ -3300,17 +3300,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
T.g('Bug Reports') T.g('Bug Reports')
.t({ .t({
name: 'Delete via bound parameter in subquery', name: 'Delete via bound parameter in subquery',
predicate: function(sqlite3){ predicate: ()=>wasm.compileOptionUsed('ENABLE_FTS5') || "FTS5 is not available",
const d = new sqlite3.oo1.DB();
try{
d.exec("create virtual table f using fts5(x)");
return true;
}catch(e){
return "FTS5 is not available";
}finally{
d.close();
}
},
test: function(sqlite3){ test: function(sqlite3){
// Testing https://sqlite.org/forum/forumpost/40ce55bdf5 // Testing https://sqlite.org/forum/forumpost/40ce55bdf5
// with the exception that that post uses "external content" // with the exception that that post uses "external content"

View File

@ -14,11 +14,6 @@ sqlite3-wasmfs.js := $(dir.wasmfs)/sqlite3-wasmfs.js
sqlite3-wasmfs.mjs := $(dir.wasmfs)/sqlite3-wasmfs.mjs sqlite3-wasmfs.mjs := $(dir.wasmfs)/sqlite3-wasmfs.mjs
sqlite3-wasmfs.wasm := $(dir.wasmfs)/sqlite3-wasmfs.wasm sqlite3-wasmfs.wasm := $(dir.wasmfs)/sqlite3-wasmfs.wasm
CLEAN_FILES += $(sqlite3-wasmfs.js) $(sqlite3-wasmfs.wasm) \
$(subst .js,.worker.js,$(sqlite3-wasmfs.js)) \
$(sqlite3-wasmfs.mjs) \
$(subst .mjs,.worker.mjs,$(sqlite3-wasmfs.mjs))
######################################################################## ########################################################################
# emcc flags for .c/.o. # emcc flags for .c/.o.
cflags.sqlite3-wasmfs := cflags.sqlite3-wasmfs :=
@ -109,7 +104,5 @@ $(speedtest1-wasmfs.mjs): $(speedtest1.cfiles) $(sqlite3-wasmfs.js) \
ls -la $@ $(speedtest1-wasmfs.wasm) ls -la $@ $(speedtest1-wasmfs.wasm)
wasmfs: $(speedtest1-wasmfs.mjs) wasmfs: $(speedtest1-wasmfs.mjs)
CLEAN_FILES += $(speedtest1-wasmfs.mjs) $(speedtest1-wasmfs.wasm) \
$(subst .js,.worker.js,$(speedtest1-wasmfs.mjs))
# end speedtest1.js # end speedtest1.js
######################################################################## ########################################################################

View File

@ -1,5 +1,5 @@
C wasm\sminimal\sbuild:\sstrip\sauthorizers\sand\sJSON\ssupport\s(saves\sapprox\s35kb).\sStrip\svtab\ssupport\sfrom\sthe\sJS\sbits\sbut\scannot\syet\sstrip\sit\sfrom\sthe\sC\sbits\sbecause\sthat\srequires\sa\scustom-configured\ssqlite3.c. C Start\swork\son\san\soverhaul\sof\sthe\swasm\sbuild\sprocess,\swith\san\seye\stowards\sless\sover-engineering.
D 2024-07-24T23:58:28.415 D 2024-07-25T10:50:45.547
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@ -593,7 +593,7 @@ F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
F ext/userauth/user-auth.txt ca7e9ee82ca4e1c1744295f8184dd70edfae1992865d26c64303f539eb6c084c F ext/userauth/user-auth.txt ca7e9ee82ca4e1c1744295f8184dd70edfae1992865d26c64303f539eb6c084c
F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
F ext/wasm/GNUmakefile d4f6586d9a36ee2869a8c7f77227a8b7f42b6c4623f3be594beafb1554ab20d9 F ext/wasm/GNUmakefile 2037399f1a33f8c0bab52e5aba78d4c6b6d9fb8d905ddf5fc3dd10f2a6fdb494
F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576 F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576
F ext/wasm/README.md a8a2962c3aebdf8d2104a9102e336c5554e78fc6072746e5daf9c61514e7d193 F ext/wasm/README.md a8a2962c3aebdf8d2104a9102e336c5554e78fc6072746e5daf9c61514e7d193
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@ -601,12 +601,9 @@ F ext/wasm/SQLTester/SQLTester.mjs ce765c0ad7d57f93553d12ef4dca574deb00300134a26
F ext/wasm/SQLTester/SQLTester.run.mjs c72b7fe2072d05992f7a3d8c6a1d34e95712513ceabe40849784e24e41c84638 F ext/wasm/SQLTester/SQLTester.run.mjs c72b7fe2072d05992f7a3d8c6a1d34e95712513ceabe40849784e24e41c84638
F ext/wasm/SQLTester/index.html 3f8a016df0776be76605abf20e815ecaafbe055abac0e1fe5ea080e7846b760d F ext/wasm/SQLTester/index.html 3f8a016df0776be76605abf20e815ecaafbe055abac0e1fe5ea080e7846b760d
F ext/wasm/SQLTester/touint8array.c 2d5ece04ec1393a6a60c4bf96385bda5e1a10ad49f3038b96460fc5e5aa7e536 F ext/wasm/SQLTester/touint8array.c 2d5ece04ec1393a6a60c4bf96385bda5e1a10ad49f3038b96460fc5e5aa7e536
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-auth 7ac80cc3b6a6d52e041bb295e85555ce797be78c15ef2008a64ae58815014080
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-core 400213eb52a7e5ad5f448053d375cacf4dac2cf45d134f3edfe485ae4a49a183 F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-core 400213eb52a7e5ad5f448053d375cacf4dac2cf45d134f3edfe485ae4a49a183
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-preupdate d1d62a2212099f2c0782d730beb8cb84a7a52d99c15ead2cb9b1411fff5fd6b1 F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-extras e9a42a86d1e09cfd46fd22438e0cb9449e6eae2eff39597cdc834c183775286a w ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-session
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-session 213b6c04267cb9bd760172db011eb1650732805fb3d01f9395478a8ceec18eb0
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-vtab fd57af1f4502a052be27d8402df74be1dc60fcb6a687d372972abd90e424120a
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287 F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
F ext/wasm/api/README.md 34fe11466f9c1d81b10a0469e1114e5f1c5a6365c73d80a1a6ca639a1a358b73 F ext/wasm/api/README.md 34fe11466f9c1d81b10a0469e1114e5f1c5a6365c73d80a1a6ca639a1a358b73
F ext/wasm/api/extern-post-js.c-pp.js c4154a7f90c2d7e51fd6738273908152036c3457fdc0b6523f1be3ef51105aac F ext/wasm/api/extern-post-js.c-pp.js c4154a7f90c2d7e51fd6738273908152036c3457fdc0b6523f1be3ef51105aac
@ -615,7 +612,7 @@ F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08
F ext/wasm/api/post-js-header.js 04dc12c3edd666b64a1b4ef3b6690c88dcc653f26451fd4734472d8e29c1c122 F ext/wasm/api/post-js-header.js 04dc12c3edd666b64a1b4ef3b6690c88dcc653f26451fd4734472d8e29c1c122
F ext/wasm/api/pre-js.c-pp.js ad906703f7429590f2fbf5e6498513bf727a1a4f0ebfa057afb08161d7511219 F ext/wasm/api/pre-js.c-pp.js ad906703f7429590f2fbf5e6498513bf727a1a4f0ebfa057afb08161d7511219
F ext/wasm/api/sqlite3-api-cleanup.js d235ad237df6954145404305040991c72ef8b1881715d2a650dda7b3c2576d0e F ext/wasm/api/sqlite3-api-cleanup.js d235ad237df6954145404305040991c72ef8b1881715d2a650dda7b3c2576d0e
F ext/wasm/api/sqlite3-api-glue.c-pp.js 54b32b5321105a72d6f3d3e8b77f28f162d0367b08c63184263d3f85f3d7dbed F ext/wasm/api/sqlite3-api-glue.c-pp.js 30abfbb9ed4b6732e2fd78dbfedee5f8d7a395a6d38f140f8df19bd9c30b4191
F ext/wasm/api/sqlite3-api-oo1.c-pp.js f3a8e2004c6625d17946c11f2fb32008be78bc5207bf746fc77d59848813225f F ext/wasm/api/sqlite3-api-oo1.c-pp.js f3a8e2004c6625d17946c11f2fb32008be78bc5207bf746fc77d59848813225f
F ext/wasm/api/sqlite3-api-prologue.js 6f1257e04885632ed9f44d43aba200b86e0bc16709ffdba29abbbeb1bc8e8b76 F ext/wasm/api/sqlite3-api-prologue.js 6f1257e04885632ed9f44d43aba200b86e0bc16709ffdba29abbbeb1bc8e8b76
F ext/wasm/api/sqlite3-api-worker1.c-pp.js 5cc22a3c0d52828cb32aad8691488719f47d27567e63e8bc8b832d74371c352d F ext/wasm/api/sqlite3-api-worker1.c-pp.js 5cc22a3c0d52828cb32aad8691488719f47d27567e63e8bc8b832d74371c352d
@ -656,6 +653,7 @@ F ext/wasm/index-dist.html 564b5ec5669676482c5a25dea9e721d8eafed426ecb155f93d29a
F ext/wasm/index.html 4337f495416756802669f69f9f9f3df9f87ee4c1918e6718719b4b5718e4713a F ext/wasm/index.html 4337f495416756802669f69f9f9f3df9f87ee4c1918e6718719b4b5718e4713a
F ext/wasm/jaccwabyt/jaccwabyt.js 1264710db3cfbcb6887d95665b7aeba60c1126eaef789ca4cf1a4a17d5bc7f54 F ext/wasm/jaccwabyt/jaccwabyt.js 1264710db3cfbcb6887d95665b7aeba60c1126eaef789ca4cf1a4a17d5bc7f54
F ext/wasm/jaccwabyt/jaccwabyt.md 59a20df389abcc3606eb4eaea7fb7ba14504beb3e345dbea9b99a0618ba3bec8 F ext/wasm/jaccwabyt/jaccwabyt.md 59a20df389abcc3606eb4eaea7fb7ba14504beb3e345dbea9b99a0618ba3bec8
F ext/wasm/make-make.sh 93fa6d00f0ffa3481badd068b8da8ed5825cf74999d5e54b2a0c9b90579a3056 x
F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337 F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96 F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63 F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
@ -671,11 +669,11 @@ F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555
F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c
F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c
F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2 F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2
F ext/wasm/tester1.c-pp.js a88b9c669715adc1c5e76750ca8c0994ae33d04572e3bf295b6f4f5870f3bdf3 F ext/wasm/tester1.c-pp.js b5a126b7ae3f3b5628e74ca806f65394f309326dd518831b2186f88850439be2
F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e
F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88 F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88
F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2 F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
F ext/wasm/wasmfs.make 8a4955882aaa0783b3f60a9484a1f0f3d8b6f775c0fcd17c082f31966f1bc16a F ext/wasm/wasmfs.make e508db7fb82653a9c9d3c7f4e2c75010abfdefa5c413a9603a2c59547bec8709
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
@ -2199,8 +2197,11 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P ee2191f7302210100fa0b29ace8156531ad995bf61aa2642e526e0901d0c6862 P eb64d106551718467e0f6c6b53695410bf4c566901008e4cda8580d0f7efa7b0
R 72e8c79f1e4399a95154f130ea5870d2 R 5dcb0158c3e9e326c7d4eacaa8552ecf
T *branch * wasm-build-rework
T *sym-wasm-build-rework *
T -sym-trunk * Cancelled\sby\sbranch.
U stephan U stephan
Z 427f56307156eafbb2685aac023af7a2 Z 6b2b2a8483fc393f764799aae3eb47aa
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
eb64d106551718467e0f6c6b53695410bf4c566901008e4cda8580d0f7efa7b0 ed746b3dd3248b68cb91de50ac5ba5fd3a7c2fcbde76324e86b88edbfecd896b