]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Considerable wasm/js build cleanups and reworking. Remove wasmfs builds from the...
authorstephan <stephan@noemail.net>
Wed, 19 Oct 2022 01:07:30 +0000 (01:07 +0000)
committerstephan <stephan@noemail.net>
Wed, 19 Oct 2022 01:07:30 +0000 (01:07 +0000)
FossilOrigin-Name: 5b23e0675efdd2f1ea7b4f5836a579e8d6aa8a25b3f1a6a950520ad845ff01bb

14 files changed:
ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle [deleted file]
ext/wasm/GNUmakefile
ext/wasm/README-dist.txt
ext/wasm/api/extern-post-js.js
ext/wasm/api/sqlite3-api-prologue.js
ext/wasm/api/sqlite3-wasm.c
ext/wasm/dist.make
ext/wasm/fiddle.make
ext/wasm/index.html
ext/wasm/sqlite3-worker1.js
ext/wasm/testing1.html [deleted file]
ext/wasm/wasmfs.make
manifest
manifest.uuid

diff --git a/ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle b/ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle
deleted file mode 100644 (file)
index 5e80f70..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-FS
-addFunction
-allocateUTF8OnStack
-ccall
-cwrap
-getValue
-intArrayFromString
-lengthBytesUTF8
-removeFunction
-setValue
-stackAlloc
-stackRestore
-stackSave
-stringToUTF8Array
-wasmMemory
index 881eabfac9fabea712c8dff6f45bfc0bc2e31424..f461f8b46adae4ff9ba2697ace7cad46a2a73ede 100644 (file)
@@ -1,4 +1,4 @@
-########################################################################
+#######################################################################
 # This GNU makefile drives the build of the sqlite3 WASM
 # components. It is not part of the canonical build process.
 #
 ########################################################################
 SHELL := $(shell which bash 2>/dev/null)
 MAKEFILE := $(lastword $(MAKEFILE_LIST))
+CLEAN_FILES :=
+DISTCLEAN_FILES := ./--dummy--
 default: all
-release: default
+release: oz
 
 # Emscripten SDK home dir and related binaries...
 EMSDK_HOME ?= $(word 1,$(wildcard $(HOME)/src/emsdk $(HOME)/emsdk))
@@ -58,15 +60,50 @@ else
 endif
 
 dir.top := ../..
-# Reminder: some Emscripten flags require absolute paths
-dir.wasm := $(patsubst %/,%,$(dir $(abspath $(MAKEFILE))))
+# Reminder: some Emscripten flags require absolute paths but we want
+# relative paths for most stuff simply to reduce noise. The
+# $(abspath...) GNU make function can transform relative paths to
+# absolute.
+dir.wasm := $(patsubst %/,%,$(dir $(MAKEFILE)))
 dir.api := api
 dir.jacc := jaccwabyt
 dir.common := common
 dir.fiddle := fiddle
 dir.tool := $(dir.top)/tool
-CLEAN_FILES := *~ $(dir.jacc)/*~ $(dir.api)/*~ $(dir.common)/*~
-DISTCLEAN_FILES := ./-dummy
+########################################################################
+# MAINTENANCE REMINDER: the output .js and .wasm files of emcc 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.
+#
+# In case we ever find a solution to that which does not require
+# duplicating the X.js files only to swap out the path to X.wasm for
+# the loading-from-worker case...
+#
+# dir.dout = output dir for deliverables.
+dir.dout := $(dir.wasm)
+# dir.tmp = output dir for intermediary build files, as opposed to
+# end-user deliverables.
+dir.tmp := $(dir.wasm)/bld
+#CLEAN_FILES += $(wildcard $(dir.dout)/*) $(wildcard $(dir.tmp)/*)
+ifeq (,$(wildcard $(dir.dout)))
+  dir._tmp := $(shell mkdir -p $(dir.dout))
+endif
+ifeq (,$(wildcard $(dir.tmp)))
+  dir._tmp := $(shell mkdir -p $(dir.tmp))
+endif
+
+cflags.common :=  -I. -I.. -I$(dir.top)
+CLEAN_FILES += *~ $(dir.jacc)/*~ $(dir.api)/*~ $(dir.common)/*~
 emcc_enable_bigint ?= 1
 sqlite3.c := $(dir.top)/sqlite3.c
 sqlite3.h := $(dir.top)/sqlite3.h
@@ -149,6 +186,8 @@ else
 endif
 
 version-info := $(dir.wasm)/version-info
+# ^^^^ NOT in $(dir.tmp) because we need it to survive the cleanup
+# process for the dist build to work properly.
 $(version-info): $(dir.wasm)/version-info.c $(sqlite3.h) $(MAKEFILE)
        $(CC) -O0 -I$(dir.top) -o $@ $<
 DISTCLEAN_FILES += $(version-info)
@@ -158,15 +197,16 @@ $(stripccomments): $(stripccomments).c $(MAKEFILE)
        $(CC) -o $@ $<
 DISTCLEAN_FILES += $(stripccomments)
 
-EXPORTED_FUNCTIONS.api.in := $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api
-
-EXPORTED_FUNCTIONS.api: $(EXPORTED_FUNCTIONS.api.in) $(MAKEFILE)
+EXPORTED_FUNCTIONS.api.in := $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api)
+EXPORTED_FUNCTIONS.api := $(dir.tmp)/EXPORTED_FUNCTIONS.api
+$(EXPORTED_FUNCTIONS.api): $(EXPORTED_FUNCTIONS.api.in) $(MAKEFILE)
        cat $(EXPORTED_FUNCTIONS.api.in) > $@
-CLEAN_FILES += EXPORTED_FUNCTIONS.api
 
-sqlite3-license-version.js := sqlite3-license-version.js
+sqlite3-license-version.js := $(dir.tmp)/sqlite3-license-version.js
 sqlite3-license-version-header.js := $(dir.api)/sqlite3-license-version-header.js
-sqlite3-api-build-version.js := $(dir.api)/sqlite3-api-build-version.js
+sqlite3-api-build-version.js := $(dir.tmp)/sqlite3-api-build-version.js
+# sqlite3-api.jses = the list of JS files which make up $(sqlite3-api.js), in
+# the order they need to be assembled.
 sqlite3-api.jses := $(sqlite3-license-version.js)
 sqlite3-api.jses += $(dir.api)/sqlite3-api-prologue.js
 sqlite3-api.jses += $(dir.common)/whwasmutil.js
@@ -178,10 +218,7 @@ sqlite3-api.jses += $(dir.api)/sqlite3-api-worker1.js
 sqlite3-api.jses += $(dir.api)/sqlite3-api-opfs.js
 sqlite3-api.jses += $(dir.api)/sqlite3-api-cleanup.js
 
-sqlite3-api.js := sqlite3-api.js
-CLEAN_FILES += $(sqlite3-api.js)
-CLEAN_FILES += $(sqlite3-license-version.js)
-CLEAN_FILES += $(sqlite3-api-build-version.js)
+sqlite3-api.js := $(dir.tmp)/sqlite3-api.js
 $(sqlite3-api.js): $(sqlite3-api.jses) $(MAKEFILE)
        @echo "Making $@..."
        @for i in $(sqlite3-api.jses); do \
@@ -190,7 +227,7 @@ $(sqlite3-api.js): $(sqlite3-api.jses) $(MAKEFILE)
                echo "/* END FILE: $$i */"; \
        done > $@
 
-$(sqlite3-api-build-version.js): $(version-info)
+$(sqlite3-api-build-version.js): $(version-info) $(MAKEFILE)
        @echo "Making $@..."
        @{ \
   echo 'self.sqlite3ApiBootstrap.initializers.push(function(sqlite3){'; \
@@ -204,8 +241,7 @@ $(sqlite3-api-build-version.js): $(version-info)
 # --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-js.js := $(dir.tmp)/post-js.js
 post-jses := \
   $(dir.api)/post-js-header.js \
   $(sqlite3-api.js) \
@@ -222,7 +258,7 @@ 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=$(dir.wasm)/$(sqlite3-license-version.js)
+  --extern-pre-js=$(sqlite3-license-version.js)
 pre-post-jses.deps := $(post-js.js) \
   $(extern-post-js.js) $(extern-pre-js.js) $(sqlite3-license-version.js)
 $(sqlite3-license-version.js): $(sqlite3.h) $(sqlite3-license-version-header.js) $(MAKEFILE)
@@ -275,12 +311,11 @@ emcc.jsflags += -sMODULARIZE
 emcc.jsflags += -sSTRICT_JS
 emcc.jsflags += -sDYNAMIC_EXECUTION=0
 emcc.jsflags += -sNO_POLYFILL
-emcc.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.api
+emcc.jsflags += -sEXPORTED_FUNCTIONS=@$(EXPORTED_FUNCTIONS.api)
 emcc.exportedRuntimeMethods := \
-    -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
+    -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory
     # FS ==> stdio/POSIX I/O proxies
     # wasmMemory ==> required by our code for use with -sIMPORTED_MEMORY
-    # allocateUTF8OnStack => for kvvfs internals
 emcc.jsflags += $(emcc.exportedRuntimeMethods)
 emcc.jsflags += -sUSE_CLOSURE_COMPILER=0
 emcc.jsflags += -sIMPORTED_MEMORY
@@ -312,7 +347,7 @@ emcc.jsflags += -Wno-limited-postlink-optimizations
 emcc.jsflags += -sERROR_ON_UNDEFINED_SYMBOLS=0
 emcc.jsflags += -sLLD_REPORT_UNDEFINED
 #emcc.jsflags += --allow-undefined
-emcc.jsflags += --import-undefined
+#emcc.jsflags += --import-undefined
 #emcc.jsflags += --unresolved-symbols=import-dynamic --experimental-pic
 #emcc.jsflags += --experimental-pic --unresolved-symbols=ingore-all --import-undefined
 #emcc.jsflags += --unresolved-symbols=ignore-all
@@ -340,36 +375,22 @@ emcc.jsflags += -sWASM_BIGINT=$(emcc_enable_bigint)
 # debugging info, _huge_.
 ########################################################################
 
-########################################################################
-# Maintenance reminder: the output .js and .wasm files of emcc must be
-# in _this_ dir, rather than a subdir, or else parts of the generated
-# code get confused and cannot load property (namely, the
-# sqlite3.worker.js generated in conjunction with -sWASMFS).
-sqlite3.js := sqlite3.js
-sqlite3.wasm := sqlite3.wasm
-sqlite3-wasm.o := $(dir.api)/sqlite3-wasm.o
-$(sqlite3-wasm.o): emcc.cflags += $(SQLITE_OPT)
-$(sqlite3-wasm.o): $(dir.top)/sqlite3.c
+sqlite3.js := $(dir.dout)/sqlite3.js
+sqlite3.wasm := $(dir.dout)/sqlite3.wasm
 sqlite3-wasm.c := $(dir.api)/sqlite3-wasm.c
-########################################################################
-# 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),$(eval $(call call-wasm-c-compile,$(c))))
+# sqlite3-wasm.o vs sqlite3-wasm.c: building against 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. Thus we build all binaries against sqlite3-wasm.c
+# instead of building a shared copy of sqlite3-wasm.o.
 $(eval $(call call-make-pre-js,sqlite3))
 $(sqlite3.js): $(MAKEFILE) $(sqlite3.wasm.obj) \
-    EXPORTED_FUNCTIONS.api \
+    $(EXPORTED_FUNCTIONS.api) \
     $(pre-post-sqlite3.deps)
        @echo "Building $@ ..."
        $(emcc.bin) -o $@ $(emcc_opt_full) $(emcc.flags) \
     $(emcc.jsflags) $(pre-post-common.flags) $(pre-post-sqlite3.flags) \
-    $(sqlite3.wasm.obj)
+    $(cflags.common) $(SQLITE_OPT) $(sqlite3-wasm.c)
        chmod -x $(sqlite3.wasm)
        $(maybe-wasm-strip) $(sqlite3.wasm)
        @ls -la $@ $(sqlite3.wasm)
@@ -417,7 +438,8 @@ speedtest1-common.eflags += -sINITIAL_MEMORY=128450560
 speedtest1-common.eflags += -sSTRICT_JS
 speedtest1-common.eflags += -sMODULARIZE
 speedtest1-common.eflags += -Wno-limited-postlink-optimizations
-speedtest1-common.eflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.speedtest1
+EXPORTED_FUNCTIONS.speedtest1 := $(abspath $(dir.tmp)/EXPORTED_FUNCTIONS.speedtest1)
+speedtest1-common.eflags += -sEXPORTED_FUNCTIONS=@$(EXPORTED_FUNCTIONS.speedtest1)
 speedtest1-common.eflags += $(emcc.exportedRuntimeMethods)
 speedtest1-common.eflags += -sALLOW_TABLE_GROWTH
 speedtest1-common.eflags += -sDYNAMIC_EXECUTION=0
@@ -444,31 +466,24 @@ speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
 # -sEXIT_RUNTIME=1 but we need EXIT_RUNTIME=0 for the worker-based app
 # which runs speedtest1 multiple times.
 
-EXPORTED_FUNCTIONS.speedtest1: EXPORTED_FUNCTIONS.api
-       { echo _wasm_main; cat EXPORTED_FUNCTIONS.api; } > $@
-CLEAN_FILES += EXPORTED_FUNCTIONS.speedtest1
-speedtest1.js := speedtest1.js
+$(EXPORTED_FUNCTIONS.speedtest1): $(EXPORTED_FUNCTIONS.api)
+       @echo "Making $@ ..."
+       @{ echo _wasm_main; cat $(EXPORTED_FUNCTIONS.api); } > $@
+speedtest1.js := $(dir.dout)/speedtest1.js
 speedtest1.wasm := $(subst .js,.wasm,$(speedtest1.js))
-speedtest1.cflags := \
-  -I. -I.. -I$(dir.top) \
-  -DSQLITE_SPEEDTEST1_WASM
-speedtest1.cs := $(speedtest1.c) $(sqlite3-wasm.c)
-$(speedtest1.js): emcc.cflags+=
-# speedtest1 notes re. sqlite3-wasm.o vs sqlite3-wasm.c: building against
-# 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.cflags := $(cflags.common) -DSQLITE_SPEEDTEST1_WASM
+speedtest1.cses := $(speedtest1.c) $(sqlite3-wasm.c)
 $(eval $(call call-make-pre-js,speedtest1))
-$(speedtest1.js): $(MAKEFILE) $(speedtest1.cs) \
+$(speedtest1.js): $(MAKEFILE) $(speedtest1.cses) \
     $(pre-post-speedtest1.deps) \
-    EXPORTED_FUNCTIONS.speedtest1
+    $(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
+        -o $@ $(speedtest1.cses) -lm
        $(maybe-wasm-strip) $(speedtest1.wasm)
        ls -la $@ $(speedtest1.wasm)
 
@@ -531,6 +546,13 @@ oz: clean
 
 include fiddle.make
 
+ifneq (,$(filter wasmfs,$(MAKECMDGOALS)))
+# wasmfs build disabled 2022-10-19 per /chat
+# discussion. OPFS-over-wasmfs was initially a stopgap measure and a
+# convenient point of comparison for the OPFS sqlite3_vfs's
+# performance, but it currently doubles our deliverables for very
+# little, if any, benefit.
+#
 ########################################################################
 # Some platforms do not support the WASMFS build. Raspberry Pi OS is one
 # of them. As such platforms are discovered, add their (uname -m) name
@@ -544,9 +566,12 @@ else
 HAVE_WASMFS := 1
 include wasmfs.make
 endif
+endif
+# /wasmfs
+########################################################################
 
 ########################################################################
-# Create deliverables: TODO
+# Create deliverables:
 ifneq (,$(filter dist,$(MAKECMDGOALS)))
 include dist.make
 endif
index bbc82a1df891550650b02b141933d1f14b137ad7..422f3f1e0c5822530f2ebb3fdb45e62fbe1762ee 100644 (file)
@@ -4,23 +4,21 @@ Main project page: https://sqlite.org
 
 TODO: link to main WASM/JS docs, once they are online
 
-This archive contains two related deliverables:
+This archive contains the sqlite3.js and sqlite3.wasm file which make
+up the sqlite3 WASM/JS build.
 
-- ./main contains the sqlite3.js and sqlite3.wasm file which make up
-  the standard sqlite3 WASM/JS build.
-
-- ./wasmfs contains a build of those files which includes the
-  Emscripten WASMFS[^1]. It offers an alternative approach
-  to accessing the browser-side Origin-Private FileSystem
-  but is less portable than the main build, so is provided
-  as a separate binary.
-
-Both directories contain small demonstration and test apps. Browsers
-will not serve WASM files from file:// URLs, so the demo/test apps
-require a web server and that server must include the following
-headers in its response when serving the files:
+The jswasm directory contains both the main deliverables and small
+demonstration and test apps. Browsers will not serve WASM files from
+file:// URLs, so the demo/test apps require a web server and that
+server must include the following headers in its response when serving
+the files:
 
     Cross-Origin-Opener-Policy: same-origin
     Cross-Origin-Embedder-Policy: require-corp
 
-[^1]: https://emscripten.org
+The files named sqlite3*.js and sqlite3.wasm belong to the core
+sqlite3 deliverables and the others are soley for demonstration and
+may be discarded. They are not in separate directories from the main
+deliverables because a quirk of URI resolution in JS code would then
+require that sqlite3.js be duplicated and edited for Worker-loaded
+operation.
index 51e8d12b2bd552be519adfef5e50f8e01a30cb3e..7dba03b3a729749fc4f7a6494f5d3e5a3fba10e7 100644 (file)
   self.sqlite3InitModule.ready = originalInit.ready;
   //console.warn("Replaced sqlite3InitModule()");
 })();
+
+if(0){
+  console.warn("self.location.href =",self.location.href);
+  if('undefined' !== typeof document){
+    console.warn("document.currentScript.src =",
+                 document?.currentScript?.src);
+  }
+}
index 7d9ae969143a6c0d5d3d552c1a188c66c017b52d..f8c0f024e64d3b972df52884f4e5b597da80f580 100644 (file)
@@ -1158,7 +1158,6 @@ self.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
   */
   capi.sqlite3_web_db_export = function(pDb){
     if(!pDb) toss('Invalid sqlite3* argument.');
-    const wasm = wasm;
     if(!wasm.bigIntEnabled) toss('BigInt64 support is not enabled.');
     const stack = wasm.pstack.pointer;
     let pOut;
index 26771d5c9ae4a87e86f7707ccce0103db5a7dbcd..cda4e7ae2fc030384a02f410ae742fee0f1af182 100644 (file)
@@ -1007,7 +1007,7 @@ int sqlite3_wasm_init_wasmfs(const char *zMountPoint){
        hypothetically suffice for the transient wasm-based virtual
        filesystem we're currently running in. */
     const int rc = wasmfs_create_directory(zMountPoint, 0777, pOpfs);
-    emscripten_console_logf("OPFS mkdir(%s) rc=%d", zMountPoint, rc);
+    /*emscripten_console_logf("OPFS mkdir(%s) rc=%d", zMountPoint, rc);*/
     if(rc) return SQLITE_IOERR;
   }
   return pOpfs ? 0 : SQLITE_NOMEM;
index cb13b0bd9291ce10ddb1a7f9018b26209afe4db9..e19b361b197996e47871d464c19f95826bf48ba2 100644 (file)
@@ -9,10 +9,6 @@
 #######################################################################
 MAKEFILE.dist := $(lastword $(MAKEFILE_LIST))
 
-ifeq (0,$(HAVE_WASMFS))
-$(error The 'dist' target needs to be run on a WASMFS-capable platform.)
-endif
-
 ########################################################################
 # Chicken/egg situation: we need $(version-info) to get the version
 # info for the archive name, but that binary may not yet be built, and
@@ -33,7 +29,7 @@ CLEAN_FILES += $(wildcard sqlite-wasm-*.zip)
 #endif
 
 ########################################################################
-# dist-opt must be the name of a target which triggers the
+# dist-build must be the name of a target which triggers the
 # build of the files to be packed into the dist archive.  The
 # intention is that it be one of (o0, o1, o2, o3, os, oz), each of
 # which uses like-named -Ox optimization level flags. The o2 target
@@ -42,7 +38,7 @@ CLEAN_FILES += $(wildcard sqlite-wasm-*.zip)
 # file sizes. Note that -O2 (the o2 target) results in faster binaries
 # than both -O3 and -Os (the o3 and os targets) in all tests run to
 # date.
-dist-opt ?= oz
+dist-build ?= oz
 
 demo-123.html := $(dir.wasm)/demo-123.html
 demo-123-worker.html := $(dir.wasm)/demo-123-worker.html
@@ -50,36 +46,33 @@ demo-123.js := $(dir.wasm)/demo-123.js
 demo-files := $(demo-123.js) $(demo-123.html) $(demo-123-worker.html) \
               tester1.html tester1.js tester1-worker.html
 README-dist := $(dir.wasm)/README-dist.txt
-dist-dir-main := $(dist-name)/main
-dist-dir-wasmfs := $(dist-name)/wasmfs
+dist-dir-main := $(dist-name)/jswasm
+dist.main.extras := \
+    sqlite3-opfs-async-proxy.js \
+    sqlite3-worker1.js \
+    sqlite3-worker1-promiser.js
+
 ########################################################################
 # $(dist-archive): create the end-user deliverable archive.
 #
 # Maintenance reminder: because $(dist-archive) depends on
-# $(dist-opt), and $(dist-opt) will depend on clean, having any deps
+# $(dist-build), and $(dist-build) will depend on clean, having any deps
 # on $(dist-archive) which themselves may be cleaned up by the clean
 # target will lead to grief in parallel builds (-j #). Thus
 # $(dist-target)'s deps must be trimmed to non-generated files or
 # files which are _not_ cleaned up by the clean target.
 $(dist-archive): \
     $(stripccomments) $(version-info) \
-    $(dist-opt) \
+    $(dist-build) \
     $(MAKEFILE) $(MAKEFILE.dist)
        @echo "Making end-user deliverables..."
        @rm -fr $(dist-name)
-       @mkdir -p $(dist-dir-main) $(dist-dir-wasmfs)
+       @mkdir -p $(dist-dir-main)
        @cp -p $(README-dist) $(dist-name)/README.txt
-       @cp -p $(sqlite3.wasm) $(dist-dir-main)
+       @cp -p $(sqlite3.wasm) $(dist.main.extras) $(dist-dir-main)
        @$(stripccomments) -k -k < $(sqlite3.js) \
                > $(dist-dir-main)/$(notdir $(sqlite3.js))
        @cp -p $(demo-files) $(dist-dir-main)
-       @cp -p $(sqlite3-wasmfs.wasm) sqlite3-wasmfs.worker.js $(dist-dir-wasmfs)
-       @$(stripccomments) -k -k < $(sqlite3-wasmfs.js) \
-               > $(dist-dir-wasmfs)/$(notdir $(sqlite3-wasmfs.js))
-       @for i in $(demo-123.js) $(demo-123.html); do \
-    sed -e 's/\bsqlite3\.js\b/sqlite3-wasmfs.js/' $$i \
-      > $(dist-dir-wasmfs)/$${i##*/} || exit; \
-  done
        @vnum=$$($(version-info) --version-number); \
        vdir=sqlite-wasm-$$vnum; \
        arc=$$vdir.zip; \
index 6f900248111b6da24265c16b309ed32035453071..84cc6b298a48b5ca74327845bc450b557ee9806f 100644 (file)
@@ -23,6 +23,7 @@ $(dir.top)/shell.c: $(SHELL_SRC) $(dir.top)/tool/mkshellc.tcl
 # /shell.c
 ########################################################################
 
+EXPORTED_FUNCTIONS.fiddle := $(dir.tmp)/EXPORTED_FUNCTIONS.fiddle
 fiddle.emcc-flags = \
   $(emcc.cflags) $(emcc_opt_full) \
   --minify 0 \
@@ -35,17 +36,17 @@ fiddle.emcc-flags = \
   -sWASM_BIGINT=$(emcc_enable_bigint) \
   -sEXPORT_NAME=$(sqlite3.js.init-func) \
   $(sqlite3.js.flags.--post-js) \
-  -sEXPORTED_RUNTIME_METHODS=@$(dir.wasm)/EXPORTED_RUNTIME_METHODS.fiddle \
-  -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.fiddle \
+  $(emcc.exportedRuntimeMethods) \
+  -sEXPORTED_FUNCTIONS=@$(abspath $(EXPORTED_FUNCTIONS.fiddle)) \
   $(SQLITE_OPT) $(SHELL_OPT) \
   -DSQLITE_SHELL_FIDDLE
 # -D_POSIX_C_SOURCE is needed for strdup() with emcc
 
 fiddle.EXPORTED_FUNCTIONS.in := \
     EXPORTED_FUNCTIONS.fiddle.in \
-    EXPORTED_FUNCTIONS.api
+    $(EXPORTED_FUNCTIONS.api)
 
-EXPORTED_FUNCTIONS.fiddle: $(fiddle.EXPORTED_FUNCTIONS.in) $(MAKEFILE.fiddle)
+$(EXPORTED_FUNCTIONS.fiddle): $(fiddle.EXPORTED_FUNCTIONS.in) $(MAKEFILE.fiddle)
        sort -u $(fiddle.EXPORTED_FUNCTIONS.in) > $@
 
 fiddle-module.js := $(dir.fiddle)/fiddle-module.js
@@ -58,7 +59,7 @@ $(dir.fiddle)/$(SOAP.js): $(SOAP.js)
 
 $(eval $(call call-make-pre-js,fiddle-module))
 $(fiddle-module.js): $(MAKEFILE) $(MAKEFILE.fiddle) \
-    EXPORTED_FUNCTIONS.fiddle EXPORTED_RUNTIME_METHODS.fiddle \
+    $(EXPORTED_FUNCTIONS.fiddle) \
     $(fiddle.cses) $(pre-post-fiddle-module.deps) $(dir.fiddle)/$(SOAP.js)
        $(emcc.bin) -o $@ $(fiddle.emcc-flags) \
     $(pre-post-common.flags) $(pre-post-fiddle-module.flags) \
index 663d4c92401bcfd8cb2dc72e231556d92c222f79..9fc475f1edb7f89c1b6770797cce0c485d0b21f7 100644 (file)
@@ -34,8 +34,7 @@
         </li>
         <li>Whether or not WASMFS/OPFS support is enabled on any given
           page may depend on build-time options which are <em>off by
-          default</em> because they currently (as of 2022-09-08) break
-          with Worker-based pages.
+          default</em>.
         </li>
       </ul>
     </div>
@@ -68,7 +67,8 @@
         <li>speedtest1 ports (sqlite3's primary benchmarking tool)...
           <ul>
             <li><a href='speedtest1.html'>speedtest1</a>: a main-thread WASM build of speedtest1.</li>
-            <li><a href='speedtest1-wasmfs.html?flags=--size,25'>speedtest1-wasmfs</a>: a variant of speedtest1 built solely for the wasmfs/opfs feature.</li>
+            <!--li><a href='speedtest1-wasmfs.html?flags=--size,25'>speedtest1-wasmfs</a>: a variant of speedtest1 built solely for the wasmfs/opfs feature.
+                </li-->
             <li><a href='speedtest1.html?vfs=kvvfs'>speedtest1-kvvfs</a>: speedtest1 with the kvvfs.</li>
             <li><a href='speedtest1-worker.html?size=25'>speedtest1-worker</a>: an interactive Worker-thread variant of speedtest1.</li>
             <li><a href='speedtest1-worker.html?vfs=opfs&size=25'>speedtest1-worker-opfs</a>: speedtest1-worker with the
             <li><a href='testing-worker1-promiser.html'>testing-worker1-promiser</a>:
               tests for the Promise-based wrapper of the Worker-based API.</li>
             <li><a href='batch-runner.html'>batch-runner</a>: runs batches of SQL exported from speedtest1.</li>
-            <li><a href='scratchpad-wasmfs-main.html'>scratchpad-wasmfs-main</a>:
+            <!--li><a href='scratchpad-wasmfs-main.html'>scratchpad-wasmfs-main</a>:
               experimenting with WASMFS/OPFS-based persistence. Maintenance
               reminder: we cannot currently (2022-09-15) load WASMFS in a
-              worker due to an Emscripten limitation.</li>
+              worker due to an Emscripten limitation.</li-->
             <li><a href='test-opfs-vfs.html'>test-opfs-vfs</a>
               (<a href='test-opfs-vfs.html?opfs-sanity-check&opfs-verbose'>same
               with verbose output and sanity-checking tests</a>) is an
index 167c6a5c79d5b61683a9f69d7ed22c482d11737a..fef155e1f840e6cf35b0f47da8467b86f79ae45f 100644 (file)
   Worker-specific API needs to pass _this_ file (or equivalent) to the
   Worker constructor and then listen for an event in the form shown
   above in order to know when the module has completed initialization.
+
+  This file accepts a couple of URL arguments to adjust how it loads
+  sqlite3.js:
+
+  - `sqlite3.dir`, if set, treats the given directory name as the
+    directory from which `sqlite3.js` will be loaded.
+  - `sqlite3.js`, if set, is used as the URI to `sqlite3.js` and it
+    may contain path elements, e.g. `sqlite3.js=foo/bar/my-sqlite3.js`.
+
+  By default is loads 'sqlite3.js'.
 */
 "use strict";
 (()=>{
   const urlParams = new URL(self.location.href).searchParams;
-  importScripts(urlParams.has('wasmfs')
-                ? 'sqlite3-wasmfs.js'
-                : 'sqlite3.js');
+  let theJs;
+  if(urlParams.has('sqlite3.js')){
+    theJs = urlParams.get('sqlite3.js');
+  }else if(urlParams.has('sqlite3.dir')){
+    theJs = urlParams.get('sqlite3.dir')+'/sqlite3.js';
+  }else{
+    theJs = 'sqlite3.js';
+  }
+  importScripts(theJs);
   sqlite3InitModule().then((sqlite3)=>{
     sqlite3.capi.sqlite3_wasmfs_opfs_dir();
     sqlite3.initWorker1API();
diff --git a/ext/wasm/testing1.html b/ext/wasm/testing1.html
deleted file mode 100644 (file)
index bf73974..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<!doctype html>
-<html lang="en-us">
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <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-api.js tests</title>
-  </head>
-  <body>
-    <header id='titlebar'><span>sqlite3-api.js tests</span></header>
-    <!-- emscripten bits -->
-    <figure id="module-spinner">
-      <div class="spinner"></div>
-      <div class='center'><strong>Initializing app...</strong></div>
-      <div class='center'>
-        On a slow internet connection this may take a moment.  If this
-        message displays for "a long time", intialization may have
-        failed and the JavaScript console may contain clues as to why.
-      </div>
-    </figure>
-    <div class="emscripten" id="module-status">Downloading...</div>
-    <div class="emscripten">
-      <progress value="0" max="100" id="module-progress" hidden='1'></progress>  
-    </div><!-- /emscripten bits -->
-    <div>Most stuff on this page happens in the dev console.</div>
-    <hr>
-    <div id='test-output'></div>
-    <!-- testing1.js "should" work with both sqlite3.js and sqlite3-kvvfs.js -->
-    <!--script src="sqlite3-kvvfs.js"></script-->
-    <script src="sqlite3.js"></script>
-    <script src="common/SqliteTestUtil.js"></script>
-    <script src="testing1.js"></script>
-  </body>
-</html>
index ee7b9f12bccc11a919fc6f85bc82511fa52079c9..f27c9d631ded07e4ecf7f5094fa891d2b36ca796 100644 (file)
@@ -7,23 +7,24 @@
 ########################################################################
 MAKEFILE.wasmfs := $(lastword $(MAKEFILE_LIST))
 
-sqlite3-wasmfs.js     := sqlite3-wasmfs.js
-sqlite3-wasmfs.wasm   := sqlite3-wasmfs.wasm
+# Maintenance reminder: these particular files cannot be built into a
+# subdirectory because loading of the auxiliary
+# sqlite3-wasmfs.worker.js file it creates fails if sqlite3-wasmfs.js
+# is loaded from any directory other than the one in which the
+# containing HTML lives.
+dir.wasmfs := $(dir.wasm)
+sqlite3-wasmfs.js     := $(dir.wasmfs)/sqlite3-wasmfs.js
+sqlite3-wasmfs.wasm   := $(dir.wasmfs)/sqlite3-wasmfs.wasm
 
 CLEAN_FILES += $(sqlite3-wasmfs.js) $(sqlite3-wasmfs.wasm) \
     $(subst .js,.worker.js,$(sqlite3-wasmfs.js))
 
-########################################################################
-# emcc flags for .c/.o/.wasm.
-sqlite3-wasmfs.flags =
-#sqlite3-wasmfs.flags += -v # _very_ loud but also informative about what it's doing
-
 ########################################################################
 # emcc flags for .c/.o.
 sqlite3-wasmfs.cflags :=
 sqlite3-wasmfs.cflags += -std=c99 -fPIC
 sqlite3-wasmfs.cflags += -pthread
-sqlite3-wasmfs.cflags += -I. -I.. -I$(dir.top)
+sqlite3-wasmfs.cflags += $(cflags.common)
 sqlite3-wasmfs.cflags += $(SQLITE_OPT) -DSQLITE_WASM_WASMFS
 
 ########################################################################
@@ -35,7 +36,7 @@ sqlite3-wasmfs.jsflags += -sMODULARIZE
 sqlite3-wasmfs.jsflags += -sSTRICT_JS
 sqlite3-wasmfs.jsflags += -sDYNAMIC_EXECUTION=0
 sqlite3-wasmfs.jsflags += -sNO_POLYFILL
-sqlite3-wasmfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api
+sqlite3-wasmfs.jsflags += -sEXPORTED_FUNCTIONS=@$(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api)
 sqlite3-wasmfs.jsflags += -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
                                             # wasmMemory ==> for -sIMPORTED_MEMORY
                                             # allocateUTF8OnStack ==> wasmfs internals
@@ -67,7 +68,7 @@ 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-wasm.c) \
-    EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.wasmfs) \
+    $(EXPORTED_FUNCTIONS.api) $(MAKEFILE) $(MAKEFILE.wasmfs) \
     $(pre-post-sqlite3-wasmfs.deps)
        @echo "Building $@ ..."
        $(emcc.bin) -o $@ $(emcc_opt_full) $(emcc.flags) \
@@ -84,22 +85,22 @@ all: wasmfs
 # speedtest1 for wasmfs. Re. sqlite3-wasm.o vs sqlite3-wasm.c:
 # building against the latter (predictably) results in a slightly
 # faster binary.
-speedtest1-wasmfs.js := speedtest1-wasmfs.js
+speedtest1-wasmfs.js := $(dir.wasmfs)/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
 $(eval $(call call-make-pre-js,speedtest1-wasmfs))
-$(speedtest1-wasmfs.js): $(speedtest1.cs) $(sqlite3-wasmfs.js) \
+$(speedtest1-wasmfs.js): $(speedtest1.cses) $(sqlite3-wasmfs.js) \
   $(MAKEFILE) $(MAKEFILE.wasmfs) \
   $(pre-post-speedtest1-wasmfs.deps) \
-  EXPORTED_FUNCTIONS.speedtest1
+  $(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
+        -o $@ $(speedtest1.cses) -lm
        $(maybe-wasm-strip) $(speedtest1-wasmfs.wasm)
        ls -la $@ $(speedtest1-wasmfs.wasm)
 
index 40f33190d9c8e926b8c58eebb218b90ffe8b6d16..f50dd6aef72a342f5a8e9886fd8407f22c7e641b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C More\swork\son\sthe\sJS\send-user\sdeliverables.\sAdd\stool/stripccomments.c\sto\ssupport\sthat.
-D 2022-10-18T20:36:50.562
+C Considerable\swasm/js\sbuild\scleanups\sand\sreworking.\sRemove\swasmfs\sbuilds\sfrom\sthe\send-user\sdeliverables\sand\sdisable\sthe\swasmfs\sbuild\sby\sdefault,\sper\s/chat\sdiscussion,\sas\sit\sdoubles\sour\sdeliverable\scount\sfor\sonly\smarginal\sgain.\sAttempt\sto\smove\sthe\ssqlite3.js/wasm\sfiles\sinto\ssubdirectories\sbut\srediscovered\sthat\sthat\sbreaks\sloading\sin\sWorker\smode\sbecause\sURI\sresolution\sof\sthe\swasm\sfiles\sdiffers\sdepending\son\swhether\sthe\smain\sscript\sis\sloaded\sfrom\sa\sscript\stag\sor\sa\sWorker.
+D 2022-10-19T01:07:30.150
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -472,14 +472,13 @@ F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
 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 279fd4589ba602e24d8e66ca795ec5a2275a0e329405e4e984e8ea0579339bae
-F ext/wasm/README-dist.txt 170be2d47b4b52504ef09088ca2f143aab657de0f9ac04d3a68e366f40929c3d
+F ext/wasm/GNUmakefile d5a39121aeb316562895889c6b27f9ec11e9cae2f844b23d5c7d04479a3bec2a
+F ext/wasm/README-dist.txt 13438bafe5fab1eca223be91459e757e6e67248fc959b9ae0ffb5808fd0a1610
 F ext/wasm/README.md 1e5b28158b74ab3ffc9d54fcbc020f0bbeb82c2ff8bbd904214c86c70e8a3066
 F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 89983a8d122c35a90c65ec667844b95a78bcd04f3198a99c1e0c8368c1a0b03a
 F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
 F ext/wasm/api/README.md 946398dd80bfd673f098b9d6ca3564e1fc77b03e660274d132f267c407b8703c
-F ext/wasm/api/extern-post-js.js dfae3a5f621ae94f1fae671f8013ed6464355f11e2adda38ed8b10bf1929f337
+F ext/wasm/api/extern-post-js.js b3d14b7d5880e70caec2feae2ab2f31ccb3af67d200e4a9fd58dcc0c4b401bf1
 F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41
 F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08902f15c34720ee4a1
 F ext/wasm/api/post-js-header.js 2e5c886398013ba2af88028ecbced1e4b22dc96a86467f1ecc5ba9e64ef90a8b
@@ -488,11 +487,11 @@ F ext/wasm/api/sqlite3-api-cleanup.js 4d07a7524dc9b7b050acfde57163e839243ad2383b
 F ext/wasm/api/sqlite3-api-glue.js 05eb701460bb72edbe3bf923bd51262551614612c37802fc597eabb4c6b83232
 F ext/wasm/api/sqlite3-api-oo1.js 9a5f0c00d476c504f16dcd456e1743dbc2826ca3d10645dfa62663a39e3ed0d8
 F ext/wasm/api/sqlite3-api-opfs.js 5a8ab3b76880c8ada8710ca9ba1ca5b160872edfd8bd5322e4f179a7f41cc616
-F ext/wasm/api/sqlite3-api-prologue.js a17b35814c6399a2e69c7836e5fd2eaa71f755ee51f96cb69d68cbf99985d45b
+F ext/wasm/api/sqlite3-api-prologue.js f6ae0da8de61f8d550b0bb8e486e5edd38129005c2bb2a448f6bf30dbf8b723b
 F ext/wasm/api/sqlite3-api-worker1.js 7f4f46cb6b512a48572d7567233896e6a9c46570c44bdc3d13419730c7c221c8
 F ext/wasm/api/sqlite3-license-version-header.js a661182fc93fc2cf212dfd0b987f8e138a3ac98f850b1112e29b5fbdaecc87c3
 F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9
-F ext/wasm/api/sqlite3-wasm.c 4c131945ced4b08a694d287abcdb066b896d961ef79ee5241805ecc37e83d63a
+F ext/wasm/api/sqlite3-wasm.c 84d410a2b9defdac85e6a421736307ff3a3eed3c1b0ae3b7b140edbc6ad81a8f
 F ext/wasm/batch-runner.html cf1a410c92bad50fcec2ddc71390b4e9df63a6ea1bef12a5163a66a0af4d78d9
 F ext/wasm/batch-runner.js 5bae81684728b6be157d1f92b39824153f0fd019345b39f2ab8930f7ee2a57d8
 F ext/wasm/common/SqliteTestUtil.js 647bf014bd30bdd870a7e9001e251d12fc1c9ec9ce176a1004b838a4b33c5c05
@@ -504,13 +503,13 @@ F ext/wasm/demo-123.html 7c239c9951d1b113f9f532969ac039294cf1dcfee2b3ae0a2c1ed2b
 F ext/wasm/demo-123.js e0cbeb3495e14103763d5c49794a24d67cf3d78e0ed5b82843be70c0c2ee4b3b
 F ext/wasm/demo-kvvfs1.html 7d4f28873de67f51ac18c584b7d920825139866a96049a49c424d6f5a0ea5e7f
 F ext/wasm/demo-kvvfs1.js 105596bd2ccd0b1deb5fde8e99b536e8242d4bb5932fac0c8403ff3a6bc547e8
-F ext/wasm/dist.make 1d59fafdfcf6fc5ee0f3351b21199585dba21afcf0518241789fd5d37a1c011d
-F ext/wasm/fiddle.make b609dfde299b4523d7123b7e0cecaa1a0aff0dd984e62cea653aae91f5063c90
+F ext/wasm/dist.make 2015746f6cd37ed17fadb14dba45d41ac6db727917d04f9b9aa431a816c5e54d
+F ext/wasm/fiddle.make a87250f6f973d9632818b9d2396c59e6542da180f8f10b164665a6fc04d239bc
 F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
 F ext/wasm/fiddle/fiddle-worker.js 531859a471924a0ea48afa218e6877f0c164ca324d51e15843ed6ecc1c65c7ee
 F ext/wasm/fiddle/fiddle.html 5daf54e8f3d7777cbb1ca4f93affe28858dbfff25841cb4ab81d694efed28ec2
 F ext/wasm/fiddle/fiddle.js 974b995119ac443685d7d94d3b3c58c6a36540e9eb3fed7069d5653284071715
-F ext/wasm/index.html d75b516236c6869568ff691b9b7ff61307d6436e059b5657dadc473b6f41e581
+F ext/wasm/index.html 47fd8be5f76b7e1123edb301b604bc751ba387498a597d8dc48bce24d1007c57
 F ext/wasm/jaccwabyt/jaccwabyt.js 0d7f32817456a0f3937fcfd934afeb32154ca33580ab264dab6c285e6dbbd215
 F ext/wasm/jaccwabyt/jaccwabyt.md 9aa6951b529a8b29f578ec8f0355713c39584c92cf1708f63ba0cf917cb5b68e
 F ext/wasm/scratchpad-wasmfs-main.html 20cf6f1a8f368e70d01e8c17200e3eaa90f1c8e1029186d836d14b83845fbe06
@@ -524,7 +523,7 @@ F ext/wasm/sql/000-mandelbrot.sql 775337a4b80938ac8146aedf88808282f04d02d983d826
 F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
 F ext/wasm/sqlite3-opfs-async-proxy.js 206ce6bbc3c30ad51a37d9c25e3a2712e70b586e0f9a2cf8cb0b9619017c2671
 F ext/wasm/sqlite3-worker1-promiser.js 307d7837420ca6a9d3780dfc81194f1c0715637e6d9540e935514086b96913d8
-F ext/wasm/sqlite3-worker1.js 466e9bd39409ab03f3e00999887aaffc11e95b416e2689596e3d7f1516673fdf
+F ext/wasm/sqlite3-worker1.js 25b29ff23958883e0a772bc835f4f4eb7e1714d7310385ed27106525930c2530
 F ext/wasm/test-opfs-vfs.html eb69dda21eb414b8f5e3f7c1cc0f774103cc9c0f87b2d28a33419e778abfbab5
 F ext/wasm/test-opfs-vfs.js 56c3d725044c668fa7910451e96c1195d25ad95825f9ac79f747a7759d1973d0
 F ext/wasm/tester1-worker.html 0af7a22025ff1da72a84765d64f8f221844a57c6e6e314acf3a30f176101fd3f
@@ -532,11 +531,10 @@ F ext/wasm/tester1.html fde0e0bdeaaa2c39877c749dc86a8c1c306f771c3d75b89a6289a5ed
 F ext/wasm/tester1.js 8161dcc4b21902dadec2d3a5dc5700cab9c1641db0603e2ea56ea2a8de6cbab3
 F ext/wasm/testing-worker1-promiser.html 6eaec6e04a56cf24cf4fa8ef49d78ce8905dde1354235c9125dca6885f7ce893
 F ext/wasm/testing-worker1-promiser.js bd788e33c1807e0a6dda9c9a9d784bd3350ca49c9dd8ae2cc8719b506b6e013e
-F ext/wasm/testing1.html 50575755e43232dbe4c2f97c9086b3118eb91ec2ee1fae931e6d7669fb17fcae
 F ext/wasm/testing2.html a66951c38137ff1d687df79466351f3c734fa9c6d9cce71d3cf97c291b2167e3
 F ext/wasm/testing2.js 88f40ef3cd8201bdadd120a711c36bbf0ce56cc0eab1d5e7debb71fed7822494
 F ext/wasm/version-info.c 5fa356d38859d71a0369b5c37e1935def7413fcc8a4e349a39d9052c1d0479f4
-F ext/wasm/wasmfs.make 9a51480d0a5ef33dd1c06c305379775302b735cb27737c2490ea449575ca5e25
+F ext/wasm/wasmfs.make ee0004813e16c283ff633e08b482008d56adf9b7d42f6c5612f7ab002b924f69
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
@@ -2037,8 +2035,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 740a2eb0928d54fdf735a8e573c6a61a34dbd295b46e5b6ef39e957fd2623293
-R f3423b9e5fdd1b3c8749326c161b8bbf
+P 2156f0744acfe425457430a0f6a7e02de907de85edba81a6d4eef40293e561c8
+R ee0ece99cec342c109cdb62c53280a5b
 U stephan
-Z 8ed4b03e8c6243f1d25f4dc2d31715c7
+Z 86621ae22c81858679965e272da6ace1
 # Remove this line to create a well-formed Fossil manifest.
index 965ccd2dac0e40e1a06265dcd3ae386bfaa37019..38a86ebeb05a88624a3eae673f76d7c8afcca219 100644 (file)
@@ -1 +1 @@
-2156f0744acfe425457430a0f6a7e02de907de85edba81a6d4eef40293e561c8
\ No newline at end of file
+5b23e0675efdd2f1ea7b4f5836a579e8d6aa8a25b3f1a6a950520ad845ff01bb
\ No newline at end of file