# /wasmfs
########################################################################
-########################################################################
-# We need separate copies of certain supplementary JS files for the
-# bundler-friendly build. Concretely, any supplemental JS files which
-# themselves use importScripts() or Workers or URL() constructors
-# which refer to other in-tree (m)JS files require a bundler-friendly
-# copy. Bundler-friendly builds replace certain references to string
-# vars/expressions with string literals, as bundler tools are static
-# code analyzers and cannot cope with the former.
-#
-# Most of what follows is the generation of those copies.
-
-$(eval $(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1.c-pp.js,\
- $(dir.dout)/sqlite3-worker1.js))
-sqlite3-api.ext.jses += $(dir.dout)/sqlite3-worker1.js
-
-$(eval $(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1-promiser.c-pp.js,\
- $(dir.dout)/sqlite3-worker1-promiser.mjs,\
- -Dtarget=es6-module -Dtarget=es6-bundler-friendly))
-sqlite3-api.ext.jses += $(dir.dout)/sqlite3-worker1-promiser.mjs
-
-$(eval $(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1-promiser.c-pp.js,\
- $(dir.dout)/sqlite3-worker1-promiser.js))
-sqlite3-api.ext.jses += $(dir.dout)/sqlite3-worker1-promiser.js
-
-$(eval $(call b.eval.c-pp,filter,demo-worker1-promiser.c-pp.js,demo-worker1-promiser.js))
-$(eval $(call b.eval.c-pp,filter,demo-worker1-promiser.c-pp.js,demo-worker1-promiser.mjs,\
- -Dtarget=es6-module))
-$(eval $(call b.eval.c-pp,filter,demo-worker1-promiser.c-pp.html,demo-worker1-promiser.html))
-$(eval $(call b.eval.c-pp,filter,demo-worker1-promiser.c-pp.html,demo-worker1-promiser-esm.html,\
- -Dtarget=es6-module))
-demo-worker1-promiser.html: $(dir.dout)/sqlite3-worker1-promiser.js demo-worker1-promiser.js
-demo-worker1-promiser-esm.html: $(sqlite3-worker1-promiser.mjs) demo-worker1-promiser.mjs
-all: demo-worker1-promiser.html demo-worker1-promiser-esm.html
-
-ifeq (0,1)
-$(eval $(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1.c-pp.js,\
- $(dir.dout)/sqlite3-worker1-bundler-friendly.mjs,\
- $(c-pp.D.sqlite3-bundler-friendly)))
-sqlite3-api.ext.jses += $(dir.dout)/sqlite3-worker1-bundler-friendly.mjs
-
-$(eval $(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1-promiser.c-pp.js,\
- $(dir.dout)/sqlite3-worker1-promiser-bundler-friendly.js,\
- $(c-pp.D.sqlite3-bundler-friendly)))
-sqlite3-api.ext.jses += $(dir.dout)/sqlite3-promiser-bundler-friendly.js
-
-$(dir.dout)/sqlite3-bundler-friendly.mjs: \
- $(dir.dout)/sqlite3-worker1-bundler-friendly.mjs \
- $(dir.dout)/sqlite3-worker1-promiser-bundler-friendly.js
-
-endif
-
########################################################################
# bin.mkwb is used for generating much of the makefile code for the
# various wasm builds. It used to be generated in this makefile via a
q: quick
64bit: # populated by $(bin.mkwb)
+
+########################################################################
+# We need separate copies of certain supplementary JS files for the
+# bundler-friendly build. Concretely, any supplemental JS files which
+# themselves use importScripts() or Workers or URL() constructors
+# which refer to other in-tree (m)JS files require a bundler-friendly
+# copy. Bundler-friendly builds replace certain references to string
+# vars/expressions with string literals, as bundler tools are static
+# code analyzers and cannot cope with the former.
+#
+# Most of what follows is the generation of those copies.
+
+#
+# sqlite3-worker1*.*
+# TODO: 64-bit
+#
+define gen-worker1
+# $1 = X.ext part of sqlite3-worker1X.ext
+# $2 = $(c-pp.D.NAME)
+$(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1.c-pp.js,\
+ $(dir.dout)/sqlite3-worker1$(1),$(2))
+sqlite3-api.ext.jses += $(dir.dout)/sqlite3-worker1$(1)
+all: $(dir.dout)/sqlite3-worker1$(1)
+endef
+
+$(eval $(call gen-worker1,.js,$(c-pp.D.vanilla)))
+$(eval $(call gen-worker1,.mjs,$(c-pp.D.esm)))
+$(eval $(call gen-worker1,-bundler-friendly.mjs,$(c-pp.D.bundler)))
+
+#
+# sqlite3-worker1-promiser*.*
+# TODO: 64-bit
+#
+define gen-promiser
+# $1 = X.ext part of sqlite3-worker1-promiserX.ext
+# $2 = $(c-pp.D.NAME)
+$(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1-promiser.c-pp.js,\
+ $(dir.dout)/sqlite3-worker1-promiser$(1),$(2))
+sqlite3-api.ext.jses += $(dir.dout)/sqlite3-worker1-promiser$(1)
+all: $(dir.dout)/sqlite3-worker1-promiser$(1)
+endef
+
+$(eval $(call gen-promiser,.js,$(c-pp.D.vanilla)))
+$(eval $(call gen-promiser,.mjs,$(c-pp.D.esm)))
+$(eval $(call gen-promiser,-bundler-friendly.mjs,$(c-pp.D.bundler)))
+
+#
+# demo1-worker-*.*:
+# $1 = .js or .mjs
+# $2 = .html or -esm.html
+# $3 = -D... flags for $(bin.c-pp)
+#
+define gen-dwp
+$(call b.eval.c-pp,filter,demo-worker1-promiser.c-pp.js,demo-worker1-promiser$(1),$(3))
+$(call b.eval.c-pp,filter,demo-worker1-promiser.c-pp.html,demo-worker1-promiser$(2),$(3))
+all: demo-worker1-promiser$(1) demo-worker1-promiser$(2)
+endef
+$(eval $(call gen-dwp,.js,.html,$(c-pp.D.vanilla)))
+$(eval $(call gen-dwp,.mjs,-esm.html,$(c-pp.D.esm)))
+
+
########################################################################
# batch-runner.js is part of one of the test apps which reads in SQL
# dumps generated by $(speedtest1) and executes them.
#
# To create those, we filter tester1.c-pp.js with $(bin.c-pp)...
c-pp.D.64bit = -D64bit
+
+# tester1.js variants:
$(eval $(call b.eval.c-pp,test,tester1.c-pp.js,tester1.js,$(c-pp.D.vanilla)))
$(eval $(call b.eval.c-pp,test,tester1.c-pp.js,tester1-64bit.js,$(c-pp.D.vanilla64) $(c-pp.D.64bit)))
$(eval $(call b.eval.c-pp,test,tester1.c-pp.js,tester1.mjs,$(c-pp.D.esm)))
$(eval $(call b.eval.c-pp,test,tester1.c-pp.js,tester1-64bit.mjs,$(c-pp.D.esm64) $(c-pp.D.64bit)))
+
+# tester1.html variants:
$(eval $(call b.eval.c-pp,test,tester1.c-pp.html,tester1.html,$(c-pp.D.vanilla)))
$(eval $(call b.eval.c-pp,test,tester1.c-pp.html,tester1-64bit.html,$(c-pp.D.vanilla64) $(c-pp.D.64bit)))
$(eval $(call b.eval.c-pp,test,tester1.c-pp.html,tester1-esm.html,$(c-pp.D.esm)))
$(eval $(call b.eval.c-pp,test,tester1.c-pp.html,tester1-esm-64bit.html,$(c-pp.D.esm64) $(c-pp.D.64bit)))
+
+# tester1-worker.html variants:
+# There is no ESM variant. Instead, that page accepts a ?esm URL flag to switch
+# to ESM mode.
+$(eval $(call b.eval.c-pp,test,tester1-worker.c-pp.html,tester1-worker.html))
+$(eval $(call b.eval.c-pp,test,tester1-worker.c-pp.html,tester1-worker-64bit.html,$(c-pp.D.64bit)))
+
tester1.js: $(out.vanilla.wasm)
tester1.mjs: $(out.esm.wasm)
tester1-64bit.js: $(out.vanilla64.wasm)
tester1-64bit.mjs: $(out.esm64.wasm)
tester1: tester1.js tester1.mjs tester1.html tester1-esm.html
tester1: tester1-64bit.js tester1-64bit.mjs tester1-64bit.html tester1-esm-64bit.html
+tester1: tester1-worker.html tester1-worker-64bit.html
# We do not include $(dir.dout)/sqlite3-bundler-friendly.mjs in this
# because bundlers are client-specific. We don't use any of them.
all quick: tester1
globalThis.sqlite3Worker1Promiser.defaultConfig = {
worker: function(){
-//#if target=es6-module
+//#if target=es6-bundler-friendly
return new Worker(new URL("sqlite3-worker1-bundler-friendly.mjs", import.meta.url),{
type: 'module'
});
+//#elif target=es6-module
+ return new Worker(new URL("sqlite3-worker1.js", import.meta.url));
//#else
let theJs = "sqlite3-worker1.js";
if(this.currentScript){
*/
//#if target=es6-bundler-friendly
import {default as sqlite3InitModule} from './sqlite3-bundler-friendly.mjs';
+//#elif target=es6-module
+ return new Worker(new URL("sqlite3.js", import.meta.url));
//#else
"use strict";
{
an ES6 module.
</li>
<li>tester1-worker (<a href='tester1-worker.html'>32-bit</a>
- <!--a href='tester1-worker-64bit.html'>64-bit</a-->): same thing
+ <a href='tester1-worker-64bit.html'>64-bit</a>): same thing
but running in a Worker.</li>
<li>tester1-worker ESM (<a href='tester1-worker.html?esm'>32-bit</a>
- <!--a href='tester1-worker.html?esm'>64-bit</a-->): same as
+ <a href='tester1-worker-64bit.html?esm'>64-bit</a>): same as
tester1-worker but loads a Worker Module which then
loads the sqlite3 API via an ES6 module. Not all
browsers permit loading modules in Worker threads.
#define C_PP_D_CUSTOM_INSTANTIATE
#endif
-/* List of distinct library builds. Each one has to be set up in
-** oBuildDefs. See the next comment block. */
+/*
+** List of distinct library builds. Each one has to be set up in
+** oBuildDefs. See the next comment block.
+**
+** Many makefile vars use these identifiers for naming stuff, e.g.:
+**
+** out.NAME.js = output file NAME.js or NAME.mjs
+** out.NAME.wasm = output file NAME.wasm
+** logtag.NAME = Used for decorating log output
+**
+** etc.
+***/
#define BuildDefs_map(E) \
E(vanilla) E(vanilla64) \
E(esm) E(esm64) \
.zEmcc = 0,
.zEnv = 0,
.zIfCond = 0,
- .flags = CP_JS | F_BUNDLER_FRIENDLY | F_ESM | F_NOT_IN_ALL
+ .flags = CP_JS | F_BUNDLER_FRIENDLY | F_ESM
+ //| F_NOT_IN_ALL
},
/* 64-bit bundler-friendly. */
.zEmcc = "-sMEMORY64=1",
.zEnv = 0,
.zIfCond = 0,
- .flags = CP_JS | F_ESM | F_BUNDLER_FRIENDLY | F_64BIT | F_NOT_IN_ALL
+ .flags = CP_JS | F_ESM | F_BUNDLER_FRIENDLY | F_64BIT
+ //| F_NOT_IN_ALL
},
/*
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
<link rel="stylesheet" href="common/emscripten.css"/>
<link rel="stylesheet" href="common/testing.css"/>
- <title>sqlite3 tester #1: Worker thread</title>
+ <title>sqlite3 tester #1: Worker thread
+//#if 64bit
+ (64-bit WASM)
+//#else
+ (32-bit WASM)
+//#endif
+ </title>
<style></style>
</head>
<body>
- <h1 id='color-target'>sqlite3 tester #1: Worker thread</h1>
+ <h1 id='color-target'>sqlite3 tester #1: Worker thread
+//#if 64bit
+ (64-bit WASM)
+//#else
+ (32-bit WASM)
+//#endif
+ </h1>
<div>Variants:
<a href='tester1.html' target='tester1.html'>conventional UI thread</a>,
<a href='tester1-worker.html' target='tester1-worker.html'>conventional worker</a>,
cbReverseIt();
const urlParams = new URL(self.location.href).searchParams;
const workerArgs = [];
- if(urlParams.has('esm')){
- logHtml('warning',"Attempting to run an ES6 Worker Module, "+
- "which is not supported by all browsers!.");
- workerArgs.push("tester1.mjs",{type:"module"});
+ const baseName =
+//#if 64bit
+ 'tester1-64bit'
+//#else
+ 'tester1'
+//#endif
+ ;
+ if(urlParams.has('esm')){
+ logHtml('warning',"Attempting to run an ES6 Worker Module, "+
+ "which is not supported by all browsers!.");
+ workerArgs.push(baseName+'.mjs', {type:"module"});
+ const bitness =
+//#if 64bit
+ 64
+//#else
+ 32
+//#endif
+ ;
document.querySelectorAll('title,#color-target').forEach((e)=>{
- e.innerText = "sqlite3 tester #1: ES6 Worker Module";
+ e.innerText =
+ "sqlite3 tester #1: ES6 Worker Module ("+bitness+"-bit WASM)";
});
}else{
- workerArgs.push("tester1.js?sqlite3.dir=jswasm");
+ workerArgs.push(baseName+'.js?sqlite3.dir=jswasm');
}
const w = new Worker(...workerArgs);
w.onmessage = function({data}){
}else{
postMessage({type:'test-result', payload:{pass}});
}
+ TestUtil.checkHeapSize(true);
};
const log = (...args)=>{
//console.log(...args);
logClass(['faded','one-test-summary'],
TestUtil.counter - tc, 'assertion(s) in',
roundMs(then-now),'ms');
+ TestUtil.checkHeapSize();
}
logClass(['green','group-end'],
"#"+this.number+":",
reportFinalTestStatus(false);
}
}.bind(this));
+ },
+
+ checkHeapSize: function(force=false){
+ const heapSize = SQLite3.wasm.heap8().byteLength;
+ if( force || heapSize !== TestUtil.lastHeapSize ){
+ TestUtil.lastHeapSize = heapSize;
+ log('WASM heap size:', heapSize,'bytes');
+ }
}
}/*TestUtil*/;
const T = TestUtil;
}else{
logClass('warning',"BigInt/int64 support is disabled.");
}
- log("WASM pointer size:",wasm.ptr.size,"bytes");
if(haveWasmCTests()){
log("sqlite3__wasm_test_...() APIs are available.");
}else{
}
log("registered vfs list =",capi.sqlite3_js_vfs_list().join(', '));
SQLite3 = sqlite3;
+ log("WASM pointer size:",wasm.ptr.size,"bytes.");
+ TestUtil.checkHeapSize();
TestUtil.runTests(sqlite3);
});
})(self);
#
-# Common vars and utilities for the SQLite WASM build.
+# Common vars and $(call)able utilities for the SQLite WASM build.
#
# The "b." prefix on some APIs is for "build". It was initially used
-# only for build-specific features, but that's no longer the came, but
-# the naming convention has stuck.
+# only for build-specific features. That's no longer the case, but the
+# naming convention has stuck.
#
#
emo.fire = 🔥
emo.folder = 📁
emo.garbage =🗑
+emo.lock =🔒
emo.megaphone = 📣
emo.mute = 🔇
emo.stop =🛑
ifeq (1,$(loud))
$(info $(emo.megaphone) Emitting loud build info. Pass loud=0 to disable it.)
b.cmd@ =
+ loud.if = 1
else
$(info $(emo.mute) Eliding loud build info. Pass loud=1 to enable it.)
b.cmd@ = @
+ loud.if =
endif
#
#
b.call.mkdir@ = if [ ! -d $(dir $@) ]; then \
echo '[$(emo.folder)+] $(if $(1),$(logtag.$(1)),[$(dir $@)])'; \
- mkdir -p $(dir $@) || exit $$?; fi
+ mkdir -p $(dir $@) || exit; fi
#
# $(call b.call.cp,@,src,dest)
# $1 = build name, $2 = src file(s). $3 = dest dir
b.call.cp = $(call b.call.mkdir@); \
echo '$(logtag.$(1)) $(emo.disk) $(2) ==> $3'; \
- cp -p $(2) $(3) || exit $$$$?
+ cp -p $(2) $(3) || exit
#
# $(eval $(call b.eval.c-pp,@,src,dest,-Dx=y...))
define b.eval.c-pp
$(3): $$(MAKEFILE_LIST) $$(bin.c-pp) $(2)
@$$(call b.call.mkdir@); \
- echo '$$(logtag.$(1)) $$(emo.disk) $$(bin.c-pp) $(4) $(2)'; \
- $$(bin.c-pp) -o $(3) $(4) $(2) $$(SQLITE.CALL.C-PP.FILTER.global) \
- || exit $$$$?\n
+ $$(call b.echo,$(1),$$(emo.disk)$$(emo.lock) $$(bin.c-pp) $(4) $(if $(loud.if),$(2))); \
+ rm -f $(3); \
+ $$(bin.c-pp) -o $(3) $(4) $(2) $$(SQLITE.CALL.C-PP.FILTER.global) || exit; \
+ chmod -w $(3)
CLEAN_FILES += $(3)
endef
-C Generate\s64-bit\svariants\sof\stester1.js/html.\sEnhance\sc-pp\sto\saccept\smultiple\sinput\sfiles.
-D 2025-09-24T17:46:08.817
+C Get\sthe\stester1\sworker1/promiser\sdemos\sbuilding\sagain.\sShow\sWASM\sheap\susage\sin\stester1\sif.
+D 2025-09-24T20:39:08.984
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 7366ae3d1d48a85db107c8ec213fef407e8ca02a1e5ed4553bff99ba22fb13bd
+F ext/wasm/GNUmakefile 4661857a0216839c7d26bac67d48c5217b90f8c0125156dd9d1bf56fb5affa90
F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js f8e762aeb568e0fd050ab991c5f3420dca9c14630386e4e18d42c0624b8ff7cd
F ext/wasm/api/sqlite3-vtab-helper.c-pp.js 9097074724172e31e56ce20ccd7482259cf72a76124213cbc9469d757676da86
F ext/wasm/api/sqlite3-wasm.c ff2dc011e17b06186b8b35e408626d7ace69a362b92c197a34d78bef25c7105a
-F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 4ad256b4ff7f839ad18931ed35d46cced544207bd2209665ec552e193f7f4544
-F ext/wasm/api/sqlite3-worker1.c-pp.js 5e8706c2c4af2a57fbcdc02f4e7ef79869971bc21bb8ede777687786ce1c92d5
+F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 8fb6adfbae6270344f43f2652e63780df3f86521755bde8f92cf6b809ba7891d
+F ext/wasm/api/sqlite3-worker1.c-pp.js 69483df1df2d0988e708390f7b1feda769c16e9e9efd4683557f8e7197099cc0
F ext/wasm/batch-runner-sahpool.html e9a38fdeb36a13eac7b50241dfe7ae066fe3f51f5c0b0151e7baee5fce0d07a7
F ext/wasm/batch-runner-sahpool.js 54a3ac228e6c4703fe72fb65c897e19156263a51fe9b7e21d2834a45e876aabd
F ext/wasm/batch-runner.html 4deeed44fe41496dc6898d9fb17938ea3291f40f4bfb977e29d0cef96fbbe4c8
F ext/wasm/fiddle/fiddle.js 84fd75967e0af8b69d3dd849818342227d0f81d13db92e0dcbc63649b31a4893
F ext/wasm/fiddle/index.html a27b8127ef9ecf19612da93b2a6a73bdb3777b5c56b5450bb7200a94bc108ff9
F ext/wasm/index-dist.html 56132399702b15d70c474c3f1952541e25cb0922942868f70daf188f024b3730
-F ext/wasm/index.html 39aa19924d69052ee0f97e550b9780037dd643a900d3074067bd87400fdb762c
+F ext/wasm/index.html cf1f8d15ab3168560610460eea8c7639284e05cd128dfb9fd003781917ce3763
F ext/wasm/jaccwabyt/jaccwabyt.js bbac67bc7a79dca34afe6215fd16b27768d84e22273507206f888c117e2ede7d
F ext/wasm/jaccwabyt/jaccwabyt.md 167fc0b624c9bc2c477846e336de9403842d81b1a24fc4d3b24317cb9eba734f
-F ext/wasm/mkwasmbuilds.c 8737ff705bd060a088609edd4cbc908e0bc89dcfc1fa48605bd339aa51dcc709
+F ext/wasm/mkwasmbuilds.c 7f0c4e9ae88647c2c5f2dd4e42a3eae412984c267fa7102d30efaef3c241e4fa
F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555e685bce3da8c3f
F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c
-F ext/wasm/tester1-worker.html c80d7f1da2d093f7b30c0a30ddd659dcaf48e675d371182cfae4142c7196fbc9
+F ext/wasm/tester1-worker.c-pp.html b240b59cd313427434190d5795f57986b9add1a08df53921311fc0b8221b672a w ext/wasm/tester1-worker.html
F ext/wasm/tester1.c-pp.html 93fbedb6b15eaad9b03df0524c702a81896e358785655ae2c751e30ef8202e54
-F ext/wasm/tester1.c-pp.js 240ae898c1d5d74a3026f2e1a64bcdce2a0609283f30c743625928c1d8354cd6
+F ext/wasm/tester1.c-pp.js 2b2aea6d9938fcfad0e3fd8ae094bced45212b807812b60a0dbe970f7f143f82
F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e
F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88
F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
F ext/wasm/tests/opfs/sahpool/index.html be736567fd92d3ecb9754c145755037cbbd2bca01385e2732294b53f4c842328
F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36e0f6991460fff0cb7c15079454679a4e2
F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
-F ext/wasm/util.make eecfa29dc31a7e079d2a7f9eb9db15a8a8bddeea8122fd18ff6e1f60b39180ef
+F ext/wasm/util.make aa1169e05bb3be1bb440fc860b065d77a128fb63ebc0143920fa0c95205aaa87
F ext/wasm/wasmfs.make 5de02751b3e9e79b81a52ab4fe0ed6aa6a23311a90db58fea98c1c4e2845e562
F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
F main.mk 20fe7a151708fc6b1f8cd0fdcc73622701cff5959131cfb73e1f75d33e687bf8
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P a2bd965e103026ff5c722357ed9e3432172bbc19d267e718ebd4a876eca41742
-R a6a0613c3e728d1dc0726cd5ad0591a1
+P ef6c55e4499957fb46b213540786e5d3928ec096eae1fe759066ed011518e7a2
+R 8d663716737afefc46d68b09eba43844
U stephan
-Z fe169e404eafaeea5b6a8d98baecd900
+Z 25cb298d18786c1d601e1c3f681c3bd4
# Remove this line to create a well-formed Fossil manifest.
-ef6c55e4499957fb46b213540786e5d3928ec096eae1fe759066ed011518e7a2
+6691a84872f823c95b0bdc3db8e12d21c9561aa1e1ce1d787a977f2c5ef8225a