1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Split wasmfs-enabled build of sqlite3.js/wasm into sqlite3-wasmfs.js/wasm, as enabling wasmfs breaks all tests/demos which run from a Worker thread.

FossilOrigin-Name: 08476f3c218d45846e7496bdae0b06e2122466111fdf2aa2aabb1805b15ef982
This commit is contained in:
stephan
2022-09-15 03:09:00 +00:00
parent 409505c743
commit 0117693f62
10 changed files with 143 additions and 49 deletions

View File

@ -199,22 +199,13 @@ emcc.jsflags += -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
emcc.jsflags += -sUSE_CLOSURE_COMPILER=0 emcc.jsflags += -sUSE_CLOSURE_COMPILER=0
emcc.jsflags += -sIMPORTED_MEMORY emcc.jsflags += -sIMPORTED_MEMORY
emcc.environment := -sENVIRONMENT=web emcc.environment := -sENVIRONMENT=web
ENABLE_WASMFS ?= 0 emcc.jsflags += -sALLOW_MEMORY_GROWTH
ifneq (0,$(ENABLE_WASMFS)) # emcc: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code
emcc.cflags += -pthread # slowly, see https://github.com/WebAssembly/design/issues/1271
emcc.jsflags += -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2 # [-Wpthreads-mem-growth]
emcc.cflags += '-DSQLITE_DEFAULT_UNIX_VFS="unix-none"' emcc.jsflags += -sINITIAL_MEMORY=13107200
emcc.environment := $(emcc.environment),worker #emcc.jsflags += -sINITIAL_MEMORY=64225280
emcc.jsflags += -sINITIAL_MEMORY=128450560 # ^^^^ 64MB is not enough for WASMFS/OPFS test runs using batch-runner.js
else
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
# [-Wpthreads-mem-growth]
emcc.jsflags += -sINITIAL_MEMORY=13107200
#emcc.jsflags += -sINITIAL_MEMORY=64225280
# ^^^^ 64MB is not enough for WASMFS/OPFS test runs using batch-runner.js
endif
emcc.jsflags += $(emcc.environment) emcc.jsflags += $(emcc.environment)
#emcc.jsflags += -sTOTAL_STACK=4194304 #emcc.jsflags += -sTOTAL_STACK=4194304
emcc.jsflags += -sEXPORT_NAME=sqlite3InitModule emcc.jsflags += -sEXPORT_NAME=sqlite3InitModule
@ -274,7 +265,6 @@ sqlite3.wasm := sqlite3.wasm
sqlite3-wasm.o := $(dir.api)/sqlite3-wasm.o sqlite3-wasm.o := $(dir.api)/sqlite3-wasm.o
$(sqlite3-wasm.o): emcc.cflags += $(SQLITE_OPT) $(sqlite3-wasm.o): emcc.cflags += $(SQLITE_OPT)
$(sqlite3-wasm.o): $(dir.top)/sqlite3.c $(sqlite3-wasm.o): $(dir.top)/sqlite3.c
$(dir.api)/wasm_util.o: emcc.cflags += $(SQLITE_OPT)
sqlite3-wasm.c := $(dir.api)/sqlite3-wasm.c sqlite3-wasm.c := $(dir.api)/sqlite3-wasm.c
jaccwabyt_test.c := $(dir.jacc)/jaccwabyt_test.c jaccwabyt_test.c := $(dir.jacc)/jaccwabyt_test.c
# ^^^ FIXME (how?): jaccwabyt_test.c is only needed for the test apps, # ^^^ FIXME (how?): jaccwabyt_test.c is only needed for the test apps,
@ -282,9 +272,6 @@ jaccwabyt_test.c := $(dir.jacc)/jaccwabyt_test.c
# want to test the release builds with those apps, so we cannot simply # 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 # elide that file in release builds. That component is critical to the
# VFS bindings so needs to be tested along with the core APIs. # VFS bindings so needs to be tested along with the core APIs.
ifneq (,$(filter -sWASMFS,$(emcc.jsflags)))
$(sqlite3-wasm.o): emcc.cflags+=-DSQLITE_WASM_OPFS
endif
define WASM_C_COMPILE define WASM_C_COMPILE
$(1).o := $$(subst .c,.o,$(1)) $(1).o := $$(subst .c,.o,$(1))
sqlite3.wasm.obj += $$($(1).o) sqlite3.wasm.obj += $$($(1).o)
@ -293,10 +280,10 @@ $$($(1).o): $$(MAKEFILE) $(1)
CLEAN_FILES += $$($(1).o) CLEAN_FILES += $$($(1).o)
endef 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 WASM_C_COMPILE,$(c))))
$(sqlite3.js):
$(sqlite3.js): $(MAKEFILE) $(sqlite3.wasm.obj) \ $(sqlite3.js): $(MAKEFILE) $(sqlite3.wasm.obj) \
EXPORTED_FUNCTIONS.api \ EXPORTED_FUNCTIONS.api \
$(post-js.js) $(post-js.js)
@echo "Building $@ ..."
$(emcc.bin) -o $(sqlite3.js) $(emcc_opt) $(emcc.flags) $(emcc.jsflags) $(sqlite3.wasm.obj) $(emcc.bin) -o $(sqlite3.js) $(emcc_opt) $(emcc.flags) $(emcc.jsflags) $(sqlite3.wasm.obj)
chmod -x $(sqlite3.wasm) chmod -x $(sqlite3.wasm)
ifneq (,$(wasm-strip)) ifneq (,$(wasm-strip))
@ -335,10 +322,6 @@ all: batch
######################################################################## ########################################################################
# speedtest1.js... # speedtest1.js...
emcc.speedtest1-flags := -g $(emcc_opt) emcc.speedtest1-flags := -g $(emcc_opt)
ifneq (0,$(ENABLE_WASMFS))
emcc.speedtest1-flags += -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2
emcc.speedtest1-flags += -DSQLITE_WASM_OPFS
endif
emcc.speedtest1-flags += -sINVOKE_RUN=0 emcc.speedtest1-flags += -sINVOKE_RUN=0
#emcc.speedtest1-flags += --no-entry #emcc.speedtest1-flags += --no-entry
emcc.speedtest1-flags += -flto emcc.speedtest1-flags += -flto
@ -365,6 +348,7 @@ $(speedtest1.js): emcc.cflags+=
# close enough to the target speed requirements that the 500ms makes a # close enough to the target speed requirements that the 500ms makes a
# difference. # difference.
$(speedtest1.js): $(speedtest1.c) $(sqlite3-wasm.c) $(MAKEFILE) $(sqlite3.c) $(speedtest1.js): $(speedtest1.c) $(sqlite3-wasm.c) $(MAKEFILE) $(sqlite3.c)
@echo "Building $@ ..."
$(emcc.bin) \ $(emcc.bin) \
$(emcc.speedtest1-flags) $(speedtest1.cflags) \ $(emcc.speedtest1-flags) $(speedtest1.cflags) \
$(SQLITE_OPT) \ $(SQLITE_OPT) \
@ -405,3 +389,4 @@ push-fiddle: $(fiddle_files)
######################################################################## ########################################################################
include kvvfs.make include kvvfs.make
include wasmfs.make

View File

@ -42,6 +42,10 @@
<li><a href='speedtest1-kvvfs.html'>speedtest1-kvvfs</a>: a variant of speedtest1 built solely for the kv-vfs feature.</li> <li><a href='speedtest1-kvvfs.html'>speedtest1-kvvfs</a>: a variant of speedtest1 built solely for the kv-vfs feature.</li>
<li><a href='kvvfs1.html'>kvvfs1</a>: very basic demo of using the key-value vfs for storing <li><a href='kvvfs1.html'>kvvfs1</a>: very basic demo of using the key-value vfs for storing
a persistent db in JS localStorage or sessionStorage.</li> a persistent db in JS localStorage or sessionStorage.</li>
<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>
<!--li><a href='x.html'></a></li--> <!--li><a href='x.html'></a></li-->
</ul> </ul>
</div> </div>

View File

@ -83,9 +83,10 @@ endif
$(kvvfs.js): $(kvvfs.wasm.c) $(sqlite3.c) $(kvvfs.extra.c) \ $(kvvfs.js): $(kvvfs.wasm.c) $(sqlite3.c) $(kvvfs.extra.c) \
EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.kvvfs) \ EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.kvvfs) \
$(post-js.js) $(post-js.js)
@echo "Building $@ ..."
$(emcc.bin) -o $@ $(emcc_opt) $(emcc.flags) \ $(emcc.bin) -o $@ $(emcc_opt) $(emcc.flags) \
$(SQLITE_OPT) \ $(SQLITE_OPT) \
$(kvvfs.cflags) $(kvvfs.jsflags) $(kvvfs.wasm.c) $(kvvfs.extra.c) $(kvvfs.cflags) $(kvvfs.jsflags) $(kvvfs.wasm.c) $(kvvfs.extra.c)
chmod -x $(kvvfs.wasm) chmod -x $(kvvfs.wasm)
ifneq (,$(wasm-strip)) ifneq (,$(wasm-strip))
$(wasm-strip) $(kvvfs.wasm) $(wasm-strip) $(kvvfs.wasm)
@ -102,11 +103,11 @@ speedtest1-kvvfs.wasm := speedtest1-kvvfs.wasm
CLEAN_FILES += $(speedtest1-kvvfs.js) $(speedtest1-kvvfs.wasm) CLEAN_FILES += $(speedtest1-kvvfs.js) $(speedtest1-kvvfs.wasm)
$(speedtest1-kvvfs.js): $(speedtest1.c) $(sqlite3-wasm.c) $(sqlite3.c) $(MAKEFILE.kvvfs) $(speedtest1-kvvfs.js): $(speedtest1.c) $(sqlite3-wasm.c) $(sqlite3.c) $(MAKEFILE.kvvfs)
$(emcc.bin) \ $(emcc.bin) \
$(emcc.speedtest1-flags) $(speedtest1.cflags) \ $(emcc.speedtest1-flags) $(speedtest1.cflags) \
$(SQLITE_OPT) \ $(SQLITE_OPT) \
-sEXIT_RUNTIME=1 \ -sEXIT_RUNTIME=1 \
$(kvvfs.cflags) \ $(kvvfs.cflags) \
-o $@ $(speedtest1.c) $(sqlite3-wasm.c) -lm -o $@ $(speedtest1.c) $(sqlite3-wasm.c) -lm
ifneq (,$(wasm-strip)) ifneq (,$(wasm-strip))
$(wasm-strip) $(speedtest1-kvvfs.wasm) $(wasm-strip) $(speedtest1-kvvfs.wasm)
endif endif

View File

@ -18,7 +18,7 @@
'use strict'; 'use strict';
(function(){ (function(){
const toss = function(...args){throw new Error(args.join(' '))}; const toss = function(...args){throw new Error(args.join(' '))};
importScripts('sqlite3.js'); importScripts('sqlite3-wasmfs.js');
/** /**
Posts a message in the form {type,data} unless passed more than 2 Posts a message in the form {type,data} unless passed more than 2

View File

@ -33,8 +33,8 @@
<p>All stuff on this page happens in the dev console.</p> <p>All stuff on this page happens in the dev console.</p>
<hr> <hr>
<div id='test-output'></div> <div id='test-output'></div>
<script src="sqlite3.js"></script> <script src="sqlite3-wasmfs.js"></script>
<script src="common/SqliteTestUtil.js"></script> <script src="common/SqliteTestUtil.js"></script>
<script src="scratchpad-opfs-main.js"></script> <script src="scratchpad-wasmfs-main.js"></script>
</body> </body>
</html> </html>

View File

@ -150,7 +150,6 @@
await wtest('exec',{ await wtest('exec',{
sql:'select 1 union all select 3', sql:'select 1 union all select 3',
resultRows: [], resultRows: [],
//rowMode: 'array', // array is the default in the Worker interface
}, function(ev){ }, function(ev){
ev = ev.result; ev = ev.result;
T.assert(2 === ev.resultRows.length) T.assert(2 === ev.resultRows.length)

104
ext/wasm/wasmfs.make Normal file
View File

@ -0,0 +1,104 @@
#!/usr/bin/make
#^^^^ help emacs select makefile mode
#
# This is a sub-make for building a standalone wasmfs-based
# sqlite3.wasm. It is intended to be "include"d from the main
# GNUMakefile.
#
# Notable potential TODOs:
#
# - Trim down a custom sqlite3-api.js for this build. We can elimate
# the jaccwabyt dependency, for example, because this build won't
# make use of the VFS bits. Similarly, we can eliminate or replace
# parts of the OO1 API, or provide a related API which manages
# singletons of the localStorage/sessionStorage instances.
#
########################################################################
MAKEFILE.wasmfs := $(lastword $(MAKEFILE_LIST))
wasmfs.js := sqlite3-wasmfs.js
wasmfs.wasm := sqlite3-wasmfs.wasm
wasmfs.wasm.c := $(dir.api)/sqlite3-wasm.c
CLEAN_FILES += $(wasmfs.js) $(wasmfs.wasm)
########################################################################
# emcc flags for .c/.o/.wasm.
wasmfs.flags =
#wasmfs.flags += -v # _very_ loud but also informative about what it's doing
########################################################################
# emcc flags for .c/.o.
wasmfs.cflags :=
wasmfs.cflags += -std=c99 -fPIC -g
wasmfs.cflags += -pthread
wasmfs.cflags += -I. -I$(dir.top)
wasmfs.cflags += $(SQLITE_OPT) -DSQLITE_WASM_OPFS
wasmfs.cflags += '-DSQLITE_DEFAULT_UNIX_VFS="unix-none"'
wasmfs.extra.c :=
ifeq (1,1)
# To get testing1.js to run with $(wasmfs.js) we need...
wasmfs.extra.c += $(jaccwabyt_test.c)
endif
########################################################################
# emcc flags specific to building the final .js/.wasm file...
wasmfs.jsflags := -fPIC
wasmfs.jsflags += --no-entry
wasmfs.jsflags += --minify 0
wasmfs.jsflags += -sENVIRONMENT=web,worker
wasmfs.jsflags += -sMODULARIZE
wasmfs.jsflags += -sSTRICT_JS
wasmfs.jsflags += -sDYNAMIC_EXECUTION=0
wasmfs.jsflags += -sNO_POLYFILL
ifeq (,$(wasmfs.extra.c))
wasmfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api
else
# need more exports for jaccwabyt test code...
wasmfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.api
endif
wasmfs.jsflags += -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
# wasmMemory ==> for -sIMPORTED_MEMORY
# allocateUTF8OnStack ==> wasmfs internals
wasmfs.jsflags += -sUSE_CLOSURE_COMPILER=0
wasmfs.jsflags += -sIMPORTED_MEMORY
#wasmfs.jsflags += -sINITIAL_MEMORY=13107200
#wasmfs.jsflags += -sTOTAL_STACK=4194304
wasmfs.jsflags += -sEXPORT_NAME=sqlite3InitModule
wasmfs.jsflags += -sGLOBAL_BASE=4096 # HYPOTHETICALLY keep func table indexes from overlapping w/ heap addr.
wasmfs.jsflags += --post-js=$(post-js.js)
#wasmfs.jsflags += -sFILESYSTEM=0 # only for experimentation. sqlite3 needs the FS API
# Perhaps the wasmfs build doesn't?
#wasmfs.jsflags += -sABORTING_MALLOC
wasmfs.jsflags += -sALLOW_TABLE_GROWTH
wasmfs.jsflags += -Wno-limited-postlink-optimizations
# ^^^^^ it likes to warn when we have "limited optimizations" via the -g3 flag.
wasmfs.jsflags += -sERROR_ON_UNDEFINED_SYMBOLS=0
wasmfs.jsflags += -sLLD_REPORT_UNDEFINED
#wasmfs.jsflags += --import-undefined
wasmfs.jsflags += -sMEMORY64=0
wasmfs.jsflags += -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2
wasmfs.jsflags += -sINITIAL_MEMORY=128450560
#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]
ifneq (0,$(enable_bigint))
wasmfs.jsflags += -sWASM_BIGINT
endif
$(wasmfs.js): $(wasmfs.wasm.c) $(sqlite3.c) $(wasmfs.extra.c) \
EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.wasmfs) \
$(post-js.js)
@echo "Building $@ ..."
$(emcc.bin) -o $@ $(emcc_opt) $(emcc.flags) \
$(wasmfs.cflags) $(wasmfs.jsflags) $(wasmfs.wasm.c) $(wasmfs.extra.c)
chmod -x $(wasmfs.wasm)
ifneq (,$(wasm-strip))
$(wasm-strip) $(wasmfs.wasm)
endif
@ls -la $@ $(wasmfs.wasm)
wasmfs: $(wasmfs.js)
all: wasmfs

View File

@ -1,5 +1,5 @@
C Clean\sup\ssome\sJS\sdocumentation. C Split\swasmfs-enabled\sbuild\sof\ssqlite3.js/wasm\sinto\ssqlite3-wasmfs.js/wasm,\sas\senabling\swasmfs\sbreaks\sall\stests/demos\swhich\srun\sfrom\sa\sWorker\sthread.
D 2022-09-15T02:27:48.888 D 2022-09-15T03:09:00.109
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
@ -474,7 +474,7 @@ F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
F ext/wasm/EXPORTED_FUNCTIONS.fiddle db7a4602f043cf4a5e4135be3609a487f9f1c83f05778bfbdf93766be4541b96 F ext/wasm/EXPORTED_FUNCTIONS.fiddle db7a4602f043cf4a5e4135be3609a487f9f1c83f05778bfbdf93766be4541b96
F ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle a004bd5eeeda6d3b28d16779b7f1a80305bfe009dfc7f0721b042967f0d39d02 F ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle a004bd5eeeda6d3b28d16779b7f1a80305bfe009dfc7f0721b042967f0d39d02
F ext/wasm/GNUmakefile b175a00599c976fe9e7bc02bbc1337b5e3b81d042320c3a0be1621d2c7a21b21 F ext/wasm/GNUmakefile f06963ecf1a8275755a568f84ad66e1c6a093e190cffd84f1414d8e75d3c5277
F ext/wasm/README.md e1ee1e7c321c6a250bf78a84ca6f5882890a237a450ba5a0649c7a8399194c52 F ext/wasm/README.md e1ee1e7c321c6a250bf78a84ca6f5882890a237a450ba5a0649c7a8399194c52
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 150a793a47205b8009ac934f3b6d6ebf67b965c072339aaa25ce808a19e116cc F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 150a793a47205b8009ac934f3b6d6ebf67b965c072339aaa25ce808a19e116cc
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287 F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
@ -501,19 +501,19 @@ F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d695
F ext/wasm/fiddle/fiddle-worker.js bccf46045be8824752876f3eec01c223be0616ccac184bffd0024cfe7a3262b8 F ext/wasm/fiddle/fiddle-worker.js bccf46045be8824752876f3eec01c223be0616ccac184bffd0024cfe7a3262b8
F ext/wasm/fiddle/fiddle.html 550c5aafce40bd218de9bf26192749f69f9b10bc379423ecd2e162bcef885c08 F ext/wasm/fiddle/fiddle.html 550c5aafce40bd218de9bf26192749f69f9b10bc379423ecd2e162bcef885c08
F ext/wasm/fiddle/fiddle.js 4ffcfc9a235beebaddec689a549e9e0dfad6dca5c1f0b41f03468d7e76480686 F ext/wasm/fiddle/fiddle.js 4ffcfc9a235beebaddec689a549e9e0dfad6dca5c1f0b41f03468d7e76480686
F ext/wasm/index.html f4b04f866ac420e7037b3818e9cb73ccc059675e0f24482932a2f7a121b814e3 F ext/wasm/index.html 97968cdfa957c9ede7c81df55c9a2276b1a9784dc41a9802d3d94ad9c30ba2ed
F ext/wasm/jaccwabyt/jaccwabyt.js 0d7f32817456a0f3937fcfd934afeb32154ca33580ab264dab6c285e6dbbd215 F ext/wasm/jaccwabyt/jaccwabyt.js 0d7f32817456a0f3937fcfd934afeb32154ca33580ab264dab6c285e6dbbd215
F ext/wasm/jaccwabyt/jaccwabyt.md 447cc02b598f7792edaa8ae6853a7847b8178a18ed356afacbdbf312b2588106 F ext/wasm/jaccwabyt/jaccwabyt.md 447cc02b598f7792edaa8ae6853a7847b8178a18ed356afacbdbf312b2588106
F ext/wasm/jaccwabyt/jaccwabyt_test.c 39e4b865a33548f943e2eb9dd0dc8d619a80de05d5300668e9960fff30d0d36f F ext/wasm/jaccwabyt/jaccwabyt_test.c 39e4b865a33548f943e2eb9dd0dc8d619a80de05d5300668e9960fff30d0d36f
F ext/wasm/jaccwabyt/jaccwabyt_test.exports 5ff001ef975c426ffe88d7d8a6e96ec725e568d2c2307c416902059339c06f19 F ext/wasm/jaccwabyt/jaccwabyt_test.exports 5ff001ef975c426ffe88d7d8a6e96ec725e568d2c2307c416902059339c06f19
F ext/wasm/kvvfs.make bfa0aaac384d9f200d2c8e31efb3536b40d139667b88e6eba9c0a71e23da6a5c F ext/wasm/kvvfs.make 99d61a438232d03f7a39fff05a5738d00d5af629e54b3f03caf87f041c194d51
F ext/wasm/kvvfs1.html 13bb24190bfb276a57b228499519badcc1bf39ed07e4b37bc2a425ce6418fed1 F ext/wasm/kvvfs1.html 13bb24190bfb276a57b228499519badcc1bf39ed07e4b37bc2a425ce6418fed1
F ext/wasm/kvvfs1.js ec1c1d071bb055711f9151df05616111432cf3e6bf7ac7f8dcbcfb56c9d9ed48 F ext/wasm/kvvfs1.js ec1c1d071bb055711f9151df05616111432cf3e6bf7ac7f8dcbcfb56c9d9ed48
F ext/wasm/scratchpad-opfs-main.html 4565cf194e66188190d35f70e82553e2e2d72b9809b73c94ab67b8cfd14d2e0c
F ext/wasm/scratchpad-opfs-main.js 69e960e9161f6412fd0c30f355d4112f1894d6609eb431e2d16d207d1380518e
F ext/wasm/scratchpad-opfs-worker.html 66c1d15d678f3bd306373d76b61c6c8aef988f61f4a8dd40185d452f9c6d2bf5 F ext/wasm/scratchpad-opfs-worker.html 66c1d15d678f3bd306373d76b61c6c8aef988f61f4a8dd40185d452f9c6d2bf5
F ext/wasm/scratchpad-opfs-worker.js 3ec2868c669713145c76eb5877c64a1b20741f741817b87c907a154b676283a9 F ext/wasm/scratchpad-opfs-worker.js 3ec2868c669713145c76eb5877c64a1b20741f741817b87c907a154b676283a9
F ext/wasm/scratchpad-opfs-worker2.js 5f2237427ac537b8580b1c659ff14ad2621d1694043eaaf41ae18dbfef2e48c0 F ext/wasm/scratchpad-opfs-worker2.js 779500d97140812509c04ba182de5bf76727052bdcbc09b3cedfb71a8574e07b
F ext/wasm/scratchpad-wasmfs-main.html 20cf6f1a8f368e70d01e8c17200e3eaa90f1c8e1029186d836d14b83845fbe06 w ext/wasm/scratchpad-opfs-main.html
F ext/wasm/scratchpad-wasmfs-main.js 69e960e9161f6412fd0c30f355d4112f1894d6609eb431e2d16d207d1380518e w ext/wasm/scratchpad-opfs-main.js
F ext/wasm/speedtest1-kvvfs.html fe7d314343b275f8b241af83267ca56274ea995535c6abca4d6e568a98fa31e3 F ext/wasm/speedtest1-kvvfs.html fe7d314343b275f8b241af83267ca56274ea995535c6abca4d6e568a98fa31e3
F ext/wasm/speedtest1-worker.html 6b5fda04d0b69e8c2651689356cb0c28fd33aa1a82b03dcbc8b0d68fbd7ed57f F ext/wasm/speedtest1-worker.html 6b5fda04d0b69e8c2651689356cb0c28fd33aa1a82b03dcbc8b0d68fbd7ed57f
F ext/wasm/speedtest1-worker.js 356b9953add4449acf199793db9b76b11ee016021918d8daffd19f08ec68d305 F ext/wasm/speedtest1-worker.js 356b9953add4449acf199793db9b76b11ee016021918d8daffd19f08ec68d305
@ -524,11 +524,12 @@ F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f
F ext/wasm/sqlite3-worker1-promiser.js 92b8da5f38439ffec459a8215775d30fa498bc0f1ab929ff341fc3dd479660b9 F ext/wasm/sqlite3-worker1-promiser.js 92b8da5f38439ffec459a8215775d30fa498bc0f1ab929ff341fc3dd479660b9
F ext/wasm/sqlite3-worker1.js 0c1e7626304543969c3846573e080c082bf43bcaa47e87d416458af84f340a9e F ext/wasm/sqlite3-worker1.js 0c1e7626304543969c3846573e080c082bf43bcaa47e87d416458af84f340a9e
F ext/wasm/testing-worker1-promiser.html 6eaec6e04a56cf24cf4fa8ef49d78ce8905dde1354235c9125dca6885f7ce893 F ext/wasm/testing-worker1-promiser.html 6eaec6e04a56cf24cf4fa8ef49d78ce8905dde1354235c9125dca6885f7ce893
F ext/wasm/testing-worker1-promiser.js e281c6a58dfe5b455e26997dd2985227588d1b583dc55e1f4f6253bf32f154f5 F ext/wasm/testing-worker1-promiser.js 63448fddfd3b8c89ff667d17c8b31c6c2259dd4647ebbbd28f3a921c48e924da
F ext/wasm/testing1.html 50575755e43232dbe4c2f97c9086b3118eb91ec2ee1fae931e6d7669fb17fcae F ext/wasm/testing1.html 50575755e43232dbe4c2f97c9086b3118eb91ec2ee1fae931e6d7669fb17fcae
F ext/wasm/testing1.js 7cd8ab255c238b030d928755ae8e91e7d90a12f2ae601b1b8f7827aaa4fb258e F ext/wasm/testing1.js 7cd8ab255c238b030d928755ae8e91e7d90a12f2ae601b1b8f7827aaa4fb258e
F ext/wasm/testing2.html a66951c38137ff1d687df79466351f3c734fa9c6d9cce71d3cf97c291b2167e3 F ext/wasm/testing2.html a66951c38137ff1d687df79466351f3c734fa9c6d9cce71d3cf97c291b2167e3
F ext/wasm/testing2.js 25584bcc30f19673ce13a6f301f89f8820a59dfe044e0c4f2913941f4097fe3c F ext/wasm/testing2.js 25584bcc30f19673ce13a6f301f89f8820a59dfe044e0c4f2913941f4097fe3c
F ext/wasm/wasmfs.make 86ce03d75a462ef4431e0c2d851f707156975bca5347daa8d8a1cb430ba83a62
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
@ -2024,8 +2025,8 @@ 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 0d78961870ee9f22f1ba16d423377d28dcc36e04b1e31ffd57f3e2fd51f8f0f2 P 925fdbfc6c1f9f06951346bc0d4fb81ffb5797d5f1123728931973f6cb1a0efa
R bf00de6cf3febea830f05611ed6027b0 R a69df33d531c68d33c70b5a00ef5df51
U stephan U stephan
Z 4c6a69dd322d5934ed4c1741f188a00d Z bd73fd5e630d2b9c280c487da7e4705d
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
925fdbfc6c1f9f06951346bc0d4fb81ffb5797d5f1123728931973f6cb1a0efa 08476f3c218d45846e7496bdae0b06e2122466111fdf2aa2aabb1805b15ef982