]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add JS infrastructure to ostensibly allow us to customize the wasm imports, which...
authorstephan <stephan@noemail.net>
Thu, 29 Sep 2022 22:08:22 +0000 (22:08 +0000)
committerstephan <stephan@noemail.net>
Thu, 29 Sep 2022 22:08:22 +0000 (22:08 +0000)
FossilOrigin-Name: 88d9253b0db5494bf1c9b6d24f22524eeec856b89e64a66ffb30d945f0df21d3

ext/wasm/GNUmakefile
ext/wasm/README.md
ext/wasm/api/extern-post-js.js
ext/wasm/api/extern-pre-js.js [new file with mode: 0644]
ext/wasm/api/pre-js.js [new file with mode: 0644]
ext/wasm/common/whwasmutil.js
ext/wasm/demo-123.js
ext/wasm/fiddle.make
ext/wasm/wasmfs.make
manifest
manifest.uuid

index ab687d1e46b8c30f0cc69a927b342bf93263c149..94cb17a72397643620f8bdc4afb1a79b84e1415b 100644 (file)
@@ -153,6 +153,10 @@ $(sqlite3-api.js): $(sqlite3-api.jses) $(MAKEFILE)
                echo "/* END FILE: $$i */"; \
        done > $@
 
+########################################################################
+# --post-js and --pre-js are emcc flags we use to append/prepend JS to
+# the generated emscripten module file.
+pre-js.js := $(dir.api)/pre-js.js
 post-js.js := post-js.js
 CLEAN_FILES += $(post-js.js)
 post-jses := \
@@ -167,8 +171,28 @@ $(post-js.js): $(post-jses) $(MAKEFILE)
                echo "/* END FILE: $$i */"; \
        done > $@
 extern-post-js.js := $(dir.api)/extern-post-js.js
-sqlite3.js.flags.--post-js := --post-js=$(post-js.js) --extern-post-js=$(extern-post-js.js)
-post-jses.deps := $(post-js.js) $(extern-post-js.js)
+extern-pre-js.js := $(dir.api)/extern-pre-js.js
+pre-post-common.flags := \
+  --post-js=$(post-js.js) \
+  --extern-post-js=$(extern-post-js.js) \
+  --extern-pre-js=$(extern-pre-js.js)
+pre-post-jses.deps := $(post-js.js) \
+  $(extern-post-js.js) $(extern-pre-js.js)
+########################################################################
+# call-make-pre-js creates rules for pre-js-$(1).js. $1 = the base
+# name of the JS file on whose behalf this pre-js is for.
+define call-make-pre-js
+pre-post-$(1).flags ?=
+pre-js-$(1).js: $$(pre-js.js) $$(MAKEFILE)
+       cp $$(pre-js.js) $$@
+       echo "Module[xInstantiateWasm].uri = '$(1).wasm';" >> $$@
+CLEAN_FILES += pre-js-$(1).js
+pre-post-$(1).deps := $$(pre-post-jses.deps) pre-js-$(1).js
+pre-post-$(1).flags += --pre-js=pre-js-$(1).js
+endef
+#$(error $(call call-make-pre-js,sqlite3-wasmfs))
+# /post-js and pre-js
+########################################################################
 
 ########################################################################
 # emcc flags for .c/.o/.wasm/.js.
@@ -202,7 +226,7 @@ emcc.exportedRuntimeMethods := \
 emcc.jsflags += $(emcc.exportedRuntimeMethods)
 emcc.jsflags += -sUSE_CLOSURE_COMPILER=0
 emcc.jsflags += -sIMPORTED_MEMORY
-emcc.environment := -sENVIRONMENT=web
+emcc.environment := -sENVIRONMENT=web,worker
 emcc.jsflags += -sALLOW_MEMORY_GROWTH
 # emcc: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code
 #       slowly, see https://github.com/WebAssembly/design/issues/1271
@@ -264,7 +288,6 @@ emcc.jsflags += -sWASM_BIGINT=$(emcc_enable_bigint)
 # code get confused and cannot load property (namely, the
 # sqlite3.worker.js generated in conjunction with -sWASMFS).
 sqlite3.js := sqlite3.js
-emcc.jsflags += $(sqlite3.js.flags.--post-js)
 sqlite3.wasm := sqlite3.wasm
 sqlite3-wasm.o := $(dir.api)/sqlite3-wasm.o
 $(sqlite3-wasm.o): emcc.cflags += $(SQLITE_OPT)
@@ -276,19 +299,25 @@ jaccwabyt_test.c := $(dir.jacc)/jaccwabyt_test.c
 # want to test the release builds with those apps, so we cannot simply
 # elide that file in release builds. That component is critical to the
 # VFS bindings so needs to be tested along with the core APIs.
-define WASM_C_COMPILE
+########################################################################
+# call-wasm-c-compile sets up build rules
+# for $1.o. $1 must be the name of a C file (with extension).
+define call-wasm-c-compile
 $(1).o := $$(subst .c,.o,$(1))
 sqlite3.wasm.obj += $$($(1).o)
 $$($(1).o): $$(MAKEFILE) $(1)
        $$(emcc.bin) $$(emcc_opt_full) $$(emcc.flags) $$(emcc.cflags) -c $(1) -o $$@
 CLEAN_FILES += $$($(1).o)
 endef
-$(foreach c,$(sqlite3-wasm.c) $(jaccwabyt_test.c),$(eval $(call WASM_C_COMPILE,$(c))))
+$(foreach c,$(sqlite3-wasm.c) $(jaccwabyt_test.c),$(eval $(call call-wasm-c-compile,$(c))))
+$(eval $(call call-make-pre-js,sqlite3))
 $(sqlite3.js): $(MAKEFILE) $(sqlite3.wasm.obj) \
     EXPORTED_FUNCTIONS.api \
-    $(post-jses.deps)
+    $(pre-post-sqlite3.deps)
        @echo "Building $@ ..."
-       $(emcc.bin) -o $@ $(emcc_opt_full) $(emcc.flags) $(emcc.jsflags) $(sqlite3.wasm.obj)
+       $(emcc.bin) -o $@ $(emcc_opt_full) $(emcc.flags) \
+    $(emcc.jsflags) $(pre-post-common.flags) $(pre-post-sqlite3.flags) \
+    $(sqlite3.wasm.obj)
        chmod -x $(sqlite3.wasm)
        $(maybe-wasm-strip) $(sqlite3.wasm)
        @ls -la $@ $(sqlite3.wasm)
@@ -342,8 +371,8 @@ speedtest1-common.eflags += -sALLOW_TABLE_GROWTH
 speedtest1-common.eflags += -sDYNAMIC_EXECUTION=0
 speedtest1-common.eflags += --minify 0
 speedtest1-common.eflags += -sEXPORT_NAME=$(sqlite3.js.init-func)
-speedtest1-common.eflags += $(sqlite3.js.flags.--post-js)
 speedtest1-common.eflags += -sWASM_BIGINT=$(emcc_enable_bigint)
+speedtest1-common.eflags += $(pre-post-common.flags) 
 speedtest1.exit-runtime0 := -sEXIT_RUNTIME=0
 speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
 # Re -sEXIT_RUNTIME=1 vs 0: if it's 1 and speedtest1 crashes, we get
@@ -377,11 +406,14 @@ $(speedtest1.js): emcc.cflags+=
 # the latter (predictably) results in a slightly faster binary, but we're
 # close enough to the target speed requirements that the 500ms makes a
 # difference.
-$(speedtest1.js): $(MAKEFILE) $(speedtest1.cs) $(post-jses.deps) \
+$(eval $(call call-make-pre-js,speedtest1))
+$(speedtest1.js): $(MAKEFILE) $(speedtest1.cs) \
+    $(pre-post-speedtest1.deps) \
     EXPORTED_FUNCTIONS.speedtest1
        @echo "Building $@ ..."
        $(emcc.bin) \
         $(speedtest1.eflags) $(speedtest1-common.eflags) $(speedtest1.cflags) \
+        $(pre-post-speedtest1.flags) \
         $(SQLITE_OPT) \
         $(speedtest1.exit-runtime0) \
         -o $@ $(speedtest1.cs) -lm
index f9500135970e8a78cc4418448d5a54db5efb8fa0..103295384ba5fa94741f7ef0cbe5c2fc85d4cda7 100644 (file)
@@ -25,6 +25,7 @@ Those parts only need to be run once, but the SDK can be updated using:
 
 ```
 $ git pull
+$ ./emsdk install latest
 $ ./emsdk activate latest
 ```
 
index acb54c3c9a1b530c3a49f8b7af3ab26cdbe2fb48..25d2d1b32803fd2840f4ce3b18ffe52049303f65 100644 (file)
@@ -1,4 +1,4 @@
-/* emscripten-js-addenda.js must be appended to the resulting sqlite3.js
+/* extern-post-js.js must be appended to the resulting sqlite3.js
    file. */
 (function(){
   /**
diff --git a/ext/wasm/api/extern-pre-js.js b/ext/wasm/api/extern-pre-js.js
new file mode 100644 (file)
index 0000000..26d066d
--- /dev/null
@@ -0,0 +1,4 @@
+/* extern-pre-js.js must be prepended to the resulting sqlite3.js
+   file. This file is currently only used for holding snippets during
+   test and development.
+*/
diff --git a/ext/wasm/api/pre-js.js b/ext/wasm/api/pre-js.js
new file mode 100644 (file)
index 0000000..f373fec
--- /dev/null
@@ -0,0 +1,40 @@
+Module['locateFile'] = function(path, prefix) {
+  return prefix + path;
+};
+
+/**
+   Bug warning: this xInstantiateWasm bit must remain disabled
+   until this bug is resolved or wasmfs won't work:
+
+   https://github.com/emscripten-core/emscripten/issues/17951
+*/
+const xInstantiateWasm = 1
+      ? 'emscripten-bug-17951'
+      : 'instantiateWasm';
+Module[xInstantiateWasm] = function callee(imports,onSuccess){
+  imports.foo = function(){};
+  console.warn("instantiateWasm() uri =",callee.uri, self.location.href);
+  const wfetch = ()=>fetch(callee.uri, {credentials: 'same-origin'});
+  const loadWasm = WebAssembly.instantiateStreaming
+        ? function loadWasmStreaming(){
+          return WebAssembly.instantiateStreaming(wfetch(), imports)
+            .then((arg)=>onSuccess(arg.instance, arg.module));
+        }
+        : function loadWasmOldSchool(){ // Safari < v15
+          return wfetch()
+            .then(response => response.arrayBuffer())
+            .then(bytes => WebAssembly.instantiate(bytes, imports))
+            .then((arg)=>onSuccess(arg.instance, arg.module));
+        };
+  loadWasm();
+  return {};
+};
+/*
+  It is literally impossible to get the name of a Worker's own script,
+  so impossible to derive X.wasm from script name X.js. Thus we need,
+  at build-time, to redifine Module['instantiateWasm'].uri by
+  appending it to a build-specific copy of this file with the name of
+  the wasm file. This is apparently why Emscripten hard-codes the name of
+  the wasm file into their glue scripts.
+*/
+Module[xInstantiateWasm].uri = 'sqlite3.wasm';
index 662978b20bd967fd7997d3ee6e8169cb9d1f88bd..8b6dbdd83dec93af697cafd8827268f7a4308805 100644 (file)
@@ -1538,7 +1538,7 @@ self.WhWasmUtilInstaller = function(target){
 
    - `onload(loadResult,config)`: optional callback. The first
      argument is the result object from
-     WebAssembly.instanitate[Streaming](). The 2nd is the config
+     WebAssembly.instantiate[Streaming](). The 2nd is the config
      object passed to this function. Described in more detail below.
 
    - `imports`: optional imports object for
index 00ea1f5bc0cddd65c5e498a71bcf1233408777b8..37dc7a7af1980bb480f8dd7c1ef848039a5411df 100644 (file)
@@ -21,6 +21,7 @@
   */
   let logHtml;
   if(self.window === self /* UI thread */){
+    console.log("Running demo from main UI thread.");
     logHtml = function(cssClass,...args){
       const ln = document.createElement('div');
       if(cssClass) ln.classList.add(cssClass);
@@ -28,6 +29,7 @@
       document.body.append(ln);
     };
   }else{ /* Worker thread */
+    console.log("Running demo from Worker thread.");
     logHtml = function(cssClass,...args){
       postMessage({
         type:'log',
index c3892263a7d469de4e96df0b98a55f42e0339b24..6ccf8e0294840bcd69b866296b639a945782a44e 100644 (file)
@@ -57,10 +57,13 @@ SOAP.js := sqlite3-opfs-async-proxy.js
 $(dir.fiddle)/$(SOAP.js): $(SOAP.js)
        cp $< $@
 
+$(eval $(call call-make-pre-js,fiddle-module))
 $(fiddle-module.js): $(MAKEFILE) $(MAKEFILE.fiddle) \
     EXPORTED_FUNCTIONS.fiddle EXPORTED_RUNTIME_METHODS.fiddle \
-    $(fiddle.cs) $(post-jses.deps) $(dir.fiddle)/$(SOAP.js)
-       $(emcc.bin) -o $@ $(fiddle.emcc-flags) $(fiddle.cs)
+    $(fiddle.cs) $(pre-post-fiddle.deps) $(dir.fiddle)/$(SOAP.js)
+       $(emcc.bin) -o $@ $(fiddle.emcc-flags) \
+    $(pre-post-common.flags) $(pre-post-fiddle.flags) \
+    $(fiddle.cs)
        $(maybe-wasm-strip) $(fiddle-module.wasm)
        gzip < $@ > $@.gz
        gzip < $(fiddle-module.wasm) > $(fiddle-module.wasm).gz
index b93f2ab0c854a58cb168f2da83b437827e0a8570..fa8320e585c1a62c64af3ca173feff3f4af916ca 100644 (file)
@@ -22,7 +22,7 @@ sqlite3-wasmfs.flags =
 ########################################################################
 # emcc flags for .c/.o.
 sqlite3-wasmfs.cflags :=
-sqlite3-wasmfs.cflags += -std=c99 -fPIC -g
+sqlite3-wasmfs.cflags += -std=c99 -fPIC
 sqlite3-wasmfs.cflags += -pthread
 sqlite3-wasmfs.cflags += -I. -I.. -I$(dir.top)
 sqlite3-wasmfs.cflags += $(SQLITE_OPT) -DSQLITE_WASM_WASMFS
@@ -57,7 +57,6 @@ sqlite3-wasmfs.jsflags += -sIMPORTED_MEMORY
 #sqlite3-wasmfs.jsflags += -sTOTAL_STACK=4194304
 sqlite3-wasmfs.jsflags += -sEXPORT_NAME=$(sqlite3.js.init-func)
 sqlite3-wasmfs.jsflags += -sGLOBAL_BASE=4096 # HYPOTHETICALLY keep func table indexes from overlapping w/ heap addr.
-sqlite3-wasmfs.jsflags += $(sqlite3.js.flags.--post-js)
 #sqlite3-wasmfs.jsflags += -sFILESYSTEM=0 # only for experimentation. sqlite3 needs the FS API
 #                                Perhaps the wasmfs build doesn't?
 #sqlite3-wasmfs.jsflags += -sABORTING_MALLOC
@@ -70,20 +69,22 @@ sqlite3-wasmfs.jsflags += -sLLD_REPORT_UNDEFINED
 sqlite3-wasmfs.jsflags += -sMEMORY64=0
 sqlite3-wasmfs.jsflags += -sINITIAL_MEMORY=128450560
 sqlite3-wasmfs.fsflags := -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2 -sENVIRONMENT=web,worker
+# -sPTHREAD_POOL_SIZE values of 2 or higher trigger that bug.
 sqlite3-wasmfs.jsflags += $(sqlite3-wasmfs.fsflags)
-speedtest1-common.eflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.speedtest1
 #sqlite3-wasmfs.jsflags += -sALLOW_MEMORY_GROWTH
 #^^^ using ALLOW_MEMORY_GROWTH produces a warning from emcc:
 #   USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly,
 #   see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]
 sqlite3-wasmfs.jsflags += -sWASM_BIGINT=$(emcc_enable_bigint)
-
+$(eval $(call call-make-pre-js,sqlite3-wasmfs))
+sqlite3-wasmfs.jsflags += $(pre-post-common.flags) $(pre-post-sqlite3-wasmfs.flags)
 $(sqlite3-wasmfs.js): $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasm.c) $(sqlite3-wasmfs.extra.c) \
-    EXPORTED_FUNCTIONS.api $(sqlite3-wasm.js) $(MAKEFILE) $(MAKEFILE.wasmfs) \
-    $(post-jses.deps)
+    EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.wasmfs) \
+    $(pre-post-sqlite3-wasmfs.deps)
        @echo "Building $@ ..."
        $(emcc.bin) -o $@ $(emcc_opt_full) $(emcc.flags) \
-      $(sqlite3-wasmfs.cflags) $(sqlite3-wasmfs.jsflags) $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasmfs.extra.c)
+      $(sqlite3-wasmfs.cflags) $(sqlite3-wasmfs.jsflags) \
+     $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasmfs.extra.c)
        chmod -x $(sqlite3-wasmfs.wasm)
        $(maybe-wasm-strip) $(sqlite3-wasmfs.wasm)
        @ls -la $@ $(sqlite3-wasmfs.wasm)
@@ -99,13 +100,15 @@ speedtest1-wasmfs.js := speedtest1-wasmfs.js
 speedtest1-wasmfs.wasm := $(subst .js,.wasm,$(speedtest1-wasmfs.js))
 speedtest1-wasmfs.eflags := $(sqlite3-wasmfs.fsflags)
 speedtest1-wasmfs.eflags += $(SQLITE_OPT) -DSQLITE_WASM_WASMFS
-$(speedtest1-wasmfs.js): $(MAKEFILE) $(MAKEFILE.wasmfs)
-#$(speedtest1-wasmfs.js): $(sqlite3-wasmfs.js)
+$(eval $(call call-make-pre-js,speedtest1-wasmfs))
 $(speedtest1-wasmfs.js): $(speedtest1.cs) $(sqlite3-wasmfs.js) \
+  $(MAKEFILE) $(MAKEFILE.wasmfs) \
+  $(pre-post-speedtest1-wasmfs.deps) \
   EXPORTED_FUNCTIONS.speedtest1
        @echo "Building $@ ..."
        $(emcc.bin) \
         $(speedtest1-wasmfs.eflags) $(speedtest1-common.eflags) \
+        $(pre-post-speedtest1-wasmfs.flags) \
         $(speedtest1.cflags) \
         $(sqlite3-wasmfs.cflags) \
         -o $@ $(speedtest1.cs) -lm
index cf04cf881bbb8e03d4fba4cc737089cef7879b61..603810bdefb1203b31e917ed39ed1b53f4e0dca2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Ensure\sthat\sthe\swasm\sbuilds\salways,\seven\swhen\spassing\s-Ox\sflags\sfrom\sthe\sCLI,\suse\s-g3\sto\savoid\sproblems\scaused\sby\ssymbol\sminification\swith\soptimization\slevels\s-O2\sand\shigher.
-D 2022-09-29T17:35:25.209
+C Add\sJS\sinfrastructure\sto\sostensibly\sallow\sus\sto\scustomize\sthe\swasm\simports,\swhich\swill\shypothetically\sallow\sus\sto\seliminate\sthe\sdependency\son\sEM_JS(),\sbut\sthe\scorresponding\sEmscripten\sglue-level\sfeature\scurrently\sbreaks\sfatally\swith\sWASMFS\sbuilds\sso\sit's\sdisabled.
+D 2022-09-29T22:08:22.784
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -474,14 +474,16 @@ F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
 F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
 F ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle 0e88c8cfc3719e4b7e74980d9da664c709e68acf863e48386cda376edfd3bfb0
-F ext/wasm/GNUmakefile 4446cf935dcf2eee505b142cc754f5e191cf1fdaebace8934551e38502616cc4
-F ext/wasm/README.md e1ee1e7c321c6a250bf78a84ca6f5882890a237a450ba5a0649c7a8399194c52
+F ext/wasm/GNUmakefile b313a82060c733c990b91afa981e10f5e21a0b33a483f33b739ce932ed6bc725
+F ext/wasm/README.md 1e5b28158b74ab3ffc9d54fcbc020f0bbeb82c2ff8bbd904214c86c70e8a3066
 F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 77a5ee8bd209b5e75dd0e822bc3f6e7319dc9b36431463d4175c775170f92126
 F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
 F ext/wasm/api/README.md f54102d74cfde01ebe242fa1411e126a9cda8f19b3ac378afd1103b21abfad05
-F ext/wasm/api/extern-post-js.js d29d5f615c887b356ff80a77a09a346339644c66d4fea79230d8378e2e2f4914
+F ext/wasm/api/extern-post-js.js b0df294159c290bec06cd67cce1a882d61944959ffe66a2f4ccbcb337e357781
+F ext/wasm/api/extern-pre-js.js 20143b16b672d0a576fbf768a786d12ee1f84e222126477072389b992542a5b2
 F ext/wasm/api/post-js-footer.js b64319261d920211b8700004d08b956a6c285f3b0bba81456260a713ed04900c
 F ext/wasm/api/post-js-header.js 2e5c886398013ba2af88028ecbced1e4b22dc96a86467f1ecc5ba9e64ef90a8b
+F ext/wasm/api/pre-js.js 04cb47eeeb421b7c41481f131bfa395ce9afa7f05c680f697269ea9d9f582518
 F ext/wasm/api/sqlite3-api-cleanup.js 98905936119a555659b5cf43844211809ab9f436c52a569004e5585d2842b5c2
 F ext/wasm/api/sqlite3-api-glue.js 3b164f0ef690a838da8613a2aaec4fc49d29ad5e8fe39c8cdc0f5281f08f9d0b
 F ext/wasm/api/sqlite3-api-oo1.js 97a786b366fcac442e1557c3eedef3afa96877411bd6239094d4db5fd5b3c353
@@ -495,13 +497,13 @@ F ext/wasm/batch-runner.js a94dd0005b34cb4e654a799fbe6357a66070510bbbe5d116cf1a8
 F ext/wasm/common/SqliteTestUtil.js 647bf014bd30bdd870a7e9001e251d12fc1c9ec9ce176a1004b838a4b33c5c05
 F ext/wasm/common/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
 F ext/wasm/common/testing.css 3a5143699c2b73a85b962271e1a9b3241b30d90e30d895e4f55665e648572962
-F ext/wasm/common/whwasmutil.js 20291bbf4955358d0b5ead58db4c575be269b4976e39c43a93331547e3b86363
+F ext/wasm/common/whwasmutil.js fe7f0622cf06fb7df1158d6ca317e399c23a12aaac14870ddf7742efbbd60bda
 F ext/wasm/demo-123-worker.html e419b66495d209b5211ec64903b4cfb3ca7df20d652b41fcd28bf018a773234f
 F ext/wasm/demo-123.html aa281d33b7eefa755f3122b7b5a18f39a42dc5fb69c8879171bf14b4c37c4ec4
-F ext/wasm/demo-123.js 35de7c544b9190759fcbf4ca125a674d3f6db03614b9a2175efaa1fbf363ef6f
+F ext/wasm/demo-123.js 536579fd587974c2511c5bf82034b253d4fdeceabb726927ad7599ef6b7578e8
 F ext/wasm/demo-kvvfs1.html 7d4f28873de67f51ac18c584b7d920825139866a96049a49c424d6f5a0ea5e7f
 F ext/wasm/demo-kvvfs1.js d1126c3b08099dc1279f353b298ee90f6d374ab6ca2b4cf412031fc992e51d35
-F ext/wasm/fiddle.make ef1d58c3d349d92a64e74908eceb2b2084e67b4aef0f3b0e46c9d89a04461041
+F ext/wasm/fiddle.make d343d44c58bca06ac0ec0296207f6441560bff89f1e587bbaf843b73c2ca5d76
 F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
 F ext/wasm/fiddle/fiddle-worker.js 2a7107b06e5be3b9b063c340ec952f687e37ba6e0aa736b58c280dfb5e16625a
 F ext/wasm/fiddle/fiddle.html 5daf54e8f3d7777cbb1ca4f93affe28858dbfff25841cb4ab81d694efed28ec2
@@ -531,7 +533,7 @@ F ext/wasm/testing1.html 50575755e43232dbe4c2f97c9086b3118eb91ec2ee1fae931e6d766
 F ext/wasm/testing1.js 06b9a439ada636c5478c581c86b2b968f799e0468eae54dc5a4565dfd7afbb88
 F ext/wasm/testing2.html a66951c38137ff1d687df79466351f3c734fa9c6d9cce71d3cf97c291b2167e3
 F ext/wasm/testing2.js 34737da985c4cbd4812b2e7f200942662cae991c5a58ffa5d0350be089d0d410
-F ext/wasm/wasmfs.make d8f44636517c3af1317c8bd8c37522810af89476a552695fc17c93fbbb7f0070
+F ext/wasm/wasmfs.make 3cce1820006196de140f90f2da4b4ea657083fb5bfee7d125be43f7a85748c8f
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
@@ -2027,8 +2029,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 7be78dd4efc410f13ff1ceda1fad82b309cc24de2d5106c8bd6b2adeaa13b106
-R 2804880c8426c1f64b82815d3b92b5d3
+P 27d24d5d270e272af07d96cf07bdbe79ba07a9c69ba3c70beb76ebf4f90fc97a
+R e715779808f61e9926a53ef0cba366ca
 U stephan
-Z 18007cf5e3a926a3d20573198e330337
+Z ef9d6a37e9ad2048fe7dc4931182a2c4
 # Remove this line to create a well-formed Fossil manifest.
index c0f2a9817157ebd2d75bc13c7c328f98470e41e7..351fdb16a868e40979f633c07140b4a6ae7821ff 100644 (file)
@@ -1 +1 @@
-27d24d5d270e272af07d96cf07bdbe79ba07a9c69ba3c70beb76ebf4f90fc97a
\ No newline at end of file
+88d9253b0db5494bf1c9b6d24f22524eeec856b89e64a66ffb30d945f0df21d3
\ No newline at end of file