mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Merge kv-vfs branch into fiddle-opfs. Adjust various JS APIs and apps to deal with the new method of handling kvvfs. Adjust speedtest1 JS build to include sqlite3-api.js so that it can use kvvfs and opfs VFSes. Permit passing of the vfs as a URL parameter to certain demo/test apps. Milestone: speedtest-worker.html?vfs=opfs runs with the standalone OPFS impl.
FossilOrigin-Name: ec09f32f7ae2249aaf27388ad2062982afa8bbbb5f88d236d6d9068bf33ad93d
This commit is contained in:
@ -53,7 +53,8 @@ SQLITE_OPT = \
|
|||||||
-DSQLITE_OMIT_UTF16 \
|
-DSQLITE_OMIT_UTF16 \
|
||||||
-DSQLITE_OMIT_SHARED_CACHE \
|
-DSQLITE_OMIT_SHARED_CACHE \
|
||||||
-DSQLITE_THREADSAFE=0 \
|
-DSQLITE_THREADSAFE=0 \
|
||||||
-DSQLITE_TEMP_STORE=3
|
-DSQLITE_TEMP_STORE=3 \
|
||||||
|
-DSQLITE_OS_KV_OPTIONAL=1
|
||||||
#SQLITE_OPT += -DSQLITE_ENABLE_MEMSYS5
|
#SQLITE_OPT += -DSQLITE_ENABLE_MEMSYS5
|
||||||
# ^^^ MEMSYS5 is hypothetically useful for non-Emscripten builds but
|
# ^^^ MEMSYS5 is hypothetically useful for non-Emscripten builds but
|
||||||
# requires adding more infrastructure and fixing one spot in the
|
# requires adding more infrastructure and fixing one spot in the
|
||||||
@ -192,16 +193,19 @@ emcc.cflags += -I. -I$(dir.top) # $(SQLITE_OPT)
|
|||||||
########################################################################
|
########################################################################
|
||||||
# emcc flags specific to building the final .js/.wasm file...
|
# emcc flags specific to building the final .js/.wasm file...
|
||||||
emcc.jsflags := -fPIC
|
emcc.jsflags := -fPIC
|
||||||
emcc.jsflags := --minify 0
|
emcc.jsflags += --minify 0
|
||||||
emcc.jsflags += --no-entry
|
emcc.jsflags += --no-entry
|
||||||
emcc.jsflags += -sMODULARIZE
|
emcc.jsflags += -sMODULARIZE
|
||||||
emcc.jsflags += -sSTRICT_JS
|
emcc.jsflags += -sSTRICT_JS
|
||||||
emcc.jsflags += -sDYNAMIC_EXECUTION=0
|
emcc.jsflags += -sDYNAMIC_EXECUTION=0
|
||||||
emcc.jsflags += -sNO_POLYFILL
|
emcc.jsflags += -sNO_POLYFILL
|
||||||
emcc.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.api
|
emcc.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.api
|
||||||
emcc.jsflags += -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
|
emcc.exportedRuntimeMethods := \
|
||||||
|
-sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
|
||||||
|
# FS ==> stdio/POSIX I/O proxies
|
||||||
# wasmMemory ==> required by our code for use with -sIMPORTED_MEMORY
|
# wasmMemory ==> required by our code for use with -sIMPORTED_MEMORY
|
||||||
# allocateUTF8OnStack => for kvvp internals
|
# allocateUTF8OnStack => for kvvfs internals
|
||||||
|
emcc.jsflags += $(emcc.exportedRuntimeMethods)
|
||||||
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
|
||||||
@ -332,17 +336,23 @@ speedtest1-common.eflags := -g $(emcc_opt)
|
|||||||
speedtest1.eflags :=
|
speedtest1.eflags :=
|
||||||
speedtest1.eflags += -sENVIRONMENT=web
|
speedtest1.eflags += -sENVIRONMENT=web
|
||||||
speedtest1-common.eflags += -sINVOKE_RUN=0
|
speedtest1-common.eflags += -sINVOKE_RUN=0
|
||||||
#speedtest1-common.eflags += --no-entry
|
speedtest1-common.eflags += --no-entry
|
||||||
speedtest1-common.eflags += -flto
|
#speedtest1-common.eflags += -flto
|
||||||
speedtest1-common.eflags += -sABORTING_MALLOC
|
speedtest1-common.eflags += -sABORTING_MALLOC
|
||||||
speedtest1-common.eflags += -sINITIAL_MEMORY=128450560
|
speedtest1-common.eflags += -sINITIAL_MEMORY=128450560
|
||||||
speedtest1-common.eflags += -sSTRICT_JS
|
speedtest1-common.eflags += -sSTRICT_JS
|
||||||
speedtest1-common.eflags += -sMODULARIZE
|
speedtest1-common.eflags += -sMODULARIZE
|
||||||
speedtest1-common.eflags += -Wno-limited-postlink-optimizations
|
speedtest1-common.eflags += -Wno-limited-postlink-optimizations
|
||||||
speedtest1-common.eflags += -sEXPORTED_FUNCTIONS=_main,_malloc,_free
|
speedtest1-common.eflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.speedtest1
|
||||||
|
speedtest1-common.eflags += $(emcc.exportedRuntimeMethods)
|
||||||
|
speedtest1-common.eflags += -sALLOW_TABLE_GROWTH
|
||||||
speedtest1-common.eflags += -sDYNAMIC_EXECUTION=0
|
speedtest1-common.eflags += -sDYNAMIC_EXECUTION=0
|
||||||
speedtest1-common.eflags += --minify 0
|
speedtest1-common.eflags += --minify 0
|
||||||
speedtest1-common.eflags += -sEXPORT_NAME=sqlite3Speedtest1InitModule
|
speedtest1-common.eflags += -sEXPORT_NAME=sqlite3Speedtest1InitModule
|
||||||
|
speedtest1-common.eflags += --post-js=$(post-js.js)
|
||||||
|
ifneq (0,$(enable_bigint))
|
||||||
|
speedtest1-common.eflags += -sWASM_BIGINT
|
||||||
|
endif
|
||||||
speedtest1.exit-runtime0 := -sEXIT_RUNTIME=0
|
speedtest1.exit-runtime0 := -sEXIT_RUNTIME=0
|
||||||
speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
|
speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
|
||||||
# Re -sEXIT_RUNTIME=1 vs 0: if it's 1 and speedtest1 crashes, we get
|
# Re -sEXIT_RUNTIME=1 vs 0: if it's 1 and speedtest1 crashes, we get
|
||||||
@ -362,25 +372,29 @@ speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
|
|||||||
# -sEXIT_RUNTIME=1 but we need EXIT_RUNTIME=0 for the worker-based app
|
# -sEXIT_RUNTIME=1 but we need EXIT_RUNTIME=0 for the worker-based app
|
||||||
# which runs speedtest1 multiple times.
|
# 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
|
speedtest1.js := speedtest1.js
|
||||||
speedtest1.wasm := $(subst .js,.wasm,$(speedtest1.js))
|
speedtest1.wasm := $(subst .js,.wasm,$(speedtest1.js))
|
||||||
speedtest1.cflags := \
|
speedtest1.cflags := \
|
||||||
-I. -I.. -I$(dir.top) \
|
-I. -I.. -I$(dir.top) \
|
||||||
-DSQLITE_SPEEDTEST1_WASM
|
-DSQLITE_SPEEDTEST1_WASM
|
||||||
|
speedtest1.cs := $(speedtest1.c) $(sqlite3-wasm.c) $(jaccwabyt_test.c)
|
||||||
$(speedtest1.js): emcc.cflags+=
|
$(speedtest1.js): emcc.cflags+=
|
||||||
# speedtest1 notes re. sqlite3-wasm.o vs sqlite3-wasm.c: building against
|
# speedtest1 notes re. sqlite3-wasm.o vs sqlite3-wasm.c: building against
|
||||||
# the latter (predictably) results in a slightly faster binary, but we're
|
# the latter (predictably) results in a slightly faster binary, but we're
|
||||||
# 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): $(MAKEFILE) $(speedtest1.cs) $(post-js.js) \
|
||||||
|
EXPORTED_FUNCTIONS.speedtest1
|
||||||
@echo "Building $@ ..."
|
@echo "Building $@ ..."
|
||||||
$(emcc.bin) \
|
$(emcc.bin) \
|
||||||
$(speedtest1.eflags) $(speedtest1-common.eflags) $(speedtest1.cflags) \
|
$(speedtest1.eflags) $(speedtest1-common.eflags) $(speedtest1.cflags) \
|
||||||
$(SQLITE_OPT) \
|
$(SQLITE_OPT) \
|
||||||
$(speedtest1.exit-runtime0) \
|
$(speedtest1.exit-runtime0) \
|
||||||
'-DSQLITE_DEFAULT_UNIX_VFS="unix-none"' \
|
'-DSQLITE_DEFAULT_UNIX_VFS="unix-none"' \
|
||||||
-o $@ $(speedtest1.c) $(sqlite3-wasm.c) -lm
|
-o $@ $(speedtest1.cs) -lm
|
||||||
$(maybe-wasm-strip) $(speedtest1.wasm)
|
$(maybe-wasm-strip) $(speedtest1.wasm)
|
||||||
ls -la $@ $(speedtest1.wasm)
|
ls -la $@ $(speedtest1.wasm)
|
||||||
|
|
||||||
@ -434,7 +448,6 @@ oz:
|
|||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# Sub-makes...
|
# Sub-makes...
|
||||||
include kvvfs.make
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# Some platforms do not support the WASMFS build. Raspberry Pi OS is one
|
# Some platforms do not support the WASMFS build. Raspberry Pi OS is one
|
||||||
|
@ -749,6 +749,8 @@ self.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Experimental and subject to change or removal.
|
||||||
|
|
||||||
Returns true if sqlite3.capi.sqlite3_web_persistent_dir() is a
|
Returns true if sqlite3.capi.sqlite3_web_persistent_dir() is a
|
||||||
non-empty string and the given name starts with (that string +
|
non-empty string and the given name starts with (that string +
|
||||||
'/'), else returns false.
|
'/'), else returns false.
|
||||||
|
@ -42,8 +42,8 @@
|
|||||||
.toolbar > * { margin: 0.25em; }
|
.toolbar > * { margin: 0.25em; }
|
||||||
fieldset { border-radius: 0.5em; }
|
fieldset { border-radius: 0.5em; }
|
||||||
</style>
|
</style>
|
||||||
<script src="sqlite3-kvvfs.js"></script>
|
<script src="sqlite3.js"></script>
|
||||||
<script src="common/SqliteTestUtil.js"></script>
|
<script src="common/SqliteTestUtil.js"></script>
|
||||||
<script src="kvvfs1.js"></script>
|
<script src="demo-kvvfs1.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -10,8 +10,9 @@
|
|||||||
|
|
||||||
***********************************************************************
|
***********************************************************************
|
||||||
|
|
||||||
A basic test script for sqlite3-kvvfs.wasm. This file must be run in
|
A basic test script for sqlite3.wasm with kvvfs support. This file
|
||||||
main JS thread and sqlite3-kvvfs.js must have been loaded before it.
|
must be run in main JS thread and sqlite3.js must have been loaded
|
||||||
|
before it.
|
||||||
*/
|
*/
|
||||||
'use strict';
|
'use strict';
|
||||||
(function(){
|
(function(){
|
||||||
@ -49,7 +50,7 @@
|
|||||||
log("Loaded module:",capi.sqlite3_libversion(), capi.sqlite3_sourceid());
|
log("Loaded module:",capi.sqlite3_libversion(), capi.sqlite3_sourceid());
|
||||||
T.assert( 0 !== capi.sqlite3_vfs_find(null) );
|
T.assert( 0 !== capi.sqlite3_vfs_find(null) );
|
||||||
if(!capi.sqlite3_vfs_find('kvvfs')){
|
if(!capi.sqlite3_vfs_find('kvvfs')){
|
||||||
warn("This build is not kvvfs-capable.");
|
error("This build is not kvvfs-capable.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -51,9 +51,10 @@
|
|||||||
<li><a href='speedtest1.html'>speedtest1</a>: a main-thread WASM build of speedtest1.</li>
|
<li><a href='speedtest1.html'>speedtest1</a>: a main-thread WASM build of speedtest1.</li>
|
||||||
<li><a href='speedtest1-worker.html'>speedtest1-worker</a>: an interactive Worker-thread variant of speedtest1.</li>
|
<li><a href='speedtest1-worker.html'>speedtest1-worker</a>: an interactive Worker-thread variant of speedtest1.</li>
|
||||||
<li><a href='speedtest1-wasmfs.html'>speedtest1-wasmfs</a>: a variant of speedtest1 built solely for the wasmfs/opfs feature.</li>
|
<li><a href='speedtest1-wasmfs.html'>speedtest1-wasmfs</a>: a variant of speedtest1 built solely for the wasmfs/opfs 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='speedtest1.html?vfs=kvvfs'>speedtest1-kvvfs</a>: speedtest1 with the kvvfs.</li>
|
||||||
<li><a href='kvvfs1.html'>kvvfs1</a>: very basic demo of using the key-value vfs for storing
|
<li><a href='demo-kvvfs1.html'>demo-kvvfs1</a>: very basic
|
||||||
a persistent db in JS localStorage or sessionStorage.</li>
|
demo of using the key-value vfs for storing a persistent db
|
||||||
|
in JS localStorage or sessionStorage.</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
|
experimenting with WASMFS/OPFS-based persistence. Maintenance
|
||||||
reminder: we cannot currently (2022-09-15) load WASMFS in a
|
reminder: we cannot currently (2022-09-15) load WASMFS in a
|
||||||
|
@ -1,112 +0,0 @@
|
|||||||
#!/usr/bin/make
|
|
||||||
#^^^^ help emacs select makefile mode
|
|
||||||
#
|
|
||||||
# This is a sub-make for building a standalone kvvfs-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.kvvfs := $(lastword $(MAKEFILE_LIST))
|
|
||||||
|
|
||||||
kvvfs.js := sqlite3-kvvfs.js
|
|
||||||
kvvfs.wasm := sqlite3-kvvfs.wasm
|
|
||||||
kvvfs.wasm.c := $(dir.api)/sqlite3-wasm.c
|
|
||||||
|
|
||||||
CLEAN_FILES += $(kvvfs.js) $(kvvfs.wasm)
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# emcc flags for .c/.o/.wasm.
|
|
||||||
kvvfs.flags =
|
|
||||||
#kvvfs.flags += -v # _very_ loud but also informative about what it's doing
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# emcc flags for .c/.o.
|
|
||||||
kvvfs.cflags :=
|
|
||||||
kvvfs.cflags += -std=c99 -fPIC -g
|
|
||||||
kvvfs.cflags += -I. -I$(dir.top)
|
|
||||||
kvvfs.cflags += -DSQLITE_OS_KV=1 $(SQLITE_OPT)
|
|
||||||
|
|
||||||
kvvfs.extra.c :=
|
|
||||||
ifeq (1,1)
|
|
||||||
# To get testing1.js to run with $(kvvfs.js) we need...
|
|
||||||
kvvfs.extra.c += $(jaccwabyt_test.c)
|
|
||||||
endif
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# emcc flags specific to building the final .js/.wasm file...
|
|
||||||
kvvfs.jsflags := -fPIC
|
|
||||||
kvvfs.jsflags += --no-entry
|
|
||||||
kvvfs.jsflags += --minify 0
|
|
||||||
kvvfs.jsflags += -sENVIRONMENT=web
|
|
||||||
kvvfs.jsflags += -sMODULARIZE
|
|
||||||
kvvfs.jsflags += -sSTRICT_JS
|
|
||||||
kvvfs.jsflags += -sDYNAMIC_EXECUTION=0
|
|
||||||
kvvfs.jsflags += -sNO_POLYFILL
|
|
||||||
ifeq (,$(kvvfs.extra.c))
|
|
||||||
kvvfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api
|
|
||||||
else
|
|
||||||
# need more exports for jaccwabyt test code...
|
|
||||||
kvvfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.api
|
|
||||||
endif
|
|
||||||
kvvfs.jsflags += -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
|
|
||||||
# wasmMemory ==> for -sIMPORTED_MEMORY
|
|
||||||
# allocateUTF8OnStack ==> kvvfs internals
|
|
||||||
kvvfs.jsflags += -sUSE_CLOSURE_COMPILER=0
|
|
||||||
kvvfs.jsflags += -sIMPORTED_MEMORY
|
|
||||||
#kvvfs.jsflags += -sINITIAL_MEMORY=13107200
|
|
||||||
#kvvfs.jsflags += -sTOTAL_STACK=4194304
|
|
||||||
kvvfs.jsflags += -sEXPORT_NAME=sqlite3InitModule
|
|
||||||
kvvfs.jsflags += -sGLOBAL_BASE=4096 # HYPOTHETICALLY keep func table indexes from overlapping w/ heap addr.
|
|
||||||
kvvfs.jsflags += --post-js=$(post-js.js)
|
|
||||||
#kvvfs.jsflags += -sFILESYSTEM=0 # only for experimentation. sqlite3 needs the FS API
|
|
||||||
# Perhaps the kvvfs build doesn't?
|
|
||||||
#kvvfs.jsflags += -sABORTING_MALLOC
|
|
||||||
kvvfs.jsflags += -sALLOW_MEMORY_GROWTH
|
|
||||||
kvvfs.jsflags += -sALLOW_TABLE_GROWTH
|
|
||||||
kvvfs.jsflags += -Wno-limited-postlink-optimizations
|
|
||||||
# ^^^^^ it likes to warn when we have "limited optimizations" via the -g3 flag.
|
|
||||||
kvvfs.jsflags += -sERROR_ON_UNDEFINED_SYMBOLS=0
|
|
||||||
kvvfs.jsflags += -sLLD_REPORT_UNDEFINED
|
|
||||||
#kvvfs.jsflags += --import-undefined
|
|
||||||
kvvfs.jsflags += -sMEMORY64=0
|
|
||||||
ifneq (0,$(enable_bigint))
|
|
||||||
kvvfs.jsflags += -sWASM_BIGINT
|
|
||||||
endif
|
|
||||||
$(kvvfs.js): $(kvvfs.wasm.c) $(sqlite3.c) $(kvvfs.extra.c) \
|
|
||||||
EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.kvvfs) \
|
|
||||||
$(post-js.js)
|
|
||||||
@echo "Building $@ ..."
|
|
||||||
$(emcc.bin) -o $@ $(emcc_opt) $(emcc.flags) \
|
|
||||||
$(SQLITE_OPT) \
|
|
||||||
$(kvvfs.cflags) $(kvvfs.jsflags) $(kvvfs.wasm.c) $(kvvfs.extra.c)
|
|
||||||
chmod -x $(kvvfs.wasm)
|
|
||||||
$(maybe-wasm-strip) $(kvvfs.wasm)
|
|
||||||
@ls -la $@ $(kvvfs.wasm)
|
|
||||||
|
|
||||||
kvvfs: $(kvvfs.js)
|
|
||||||
all: kvvfs
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# speedtest1-kvvfs
|
|
||||||
speedtest1-kvvfs.js := speedtest1-kvvfs.js
|
|
||||||
speedtest1-kvvfs.wasm := speedtest1-kvvfs.wasm
|
|
||||||
CLEAN_FILES += $(speedtest1-kvvfs.js) $(speedtest1-kvvfs.wasm)
|
|
||||||
$(speedtest1-kvvfs.js): $(speedtest1.c) $(sqlite3-wasm.c) $(sqlite3.c) $(MAKEFILE.kvvfs)
|
|
||||||
$(emcc.bin) \
|
|
||||||
$(speedtest1.eflags) $(speedtest1-common.eflags) $(speedtest1.cflags) \
|
|
||||||
$(SQLITE_OPT) \
|
|
||||||
$(speedtest1.exit-runtime1) \
|
|
||||||
$(kvvfs.cflags) \
|
|
||||||
-o $@ $(speedtest1.c) $(sqlite3-wasm.c) -lm
|
|
||||||
$(maybe-wasm-strip) $(speedtest1-kvvfs.wasm)
|
|
||||||
ls -la $@ $(speedtest1-kvvfs.wasm)
|
|
||||||
|
|
||||||
speedtest1: $(speedtest1-kvvfs.js)
|
|
@ -139,7 +139,7 @@
|
|||||||
"Give it time...");
|
"Give it time...");
|
||||||
logList.length = 0;
|
logList.length = 0;
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
wasm.xCall('__main_argc_argv', argv.length,
|
wasm.xCall('wasm_main', argv.length,
|
||||||
wasm.scopedAllocMainArgv(argv));
|
wasm.scopedAllocMainArgv(argv));
|
||||||
wasm.scopedAllocPop(scope);
|
wasm.scopedAllocPop(scope);
|
||||||
if(pDir) unlink(dbFile);
|
if(pDir) unlink(dbFile);
|
||||||
|
@ -30,7 +30,9 @@
|
|||||||
<div id='toolbar'>
|
<div id='toolbar'>
|
||||||
<div id='toolbar-select'>
|
<div id='toolbar-select'>
|
||||||
<select id='select-flags' size='10' multiple></select>
|
<select id='select-flags' size='10' multiple></select>
|
||||||
<div>TODO? Options which require values are not represented here.</div>
|
<div>The following flags can be passed as URL parameters:
|
||||||
|
vfs=NAME, size=N
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='toolbar-inner-vertical'>
|
<div class='toolbar-inner-vertical'>
|
||||||
<div id='toolbar-selected-flags'></div>
|
<div id='toolbar-selected-flags'></div>
|
||||||
@ -124,6 +126,7 @@
|
|||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<script src="common/SqliteTestUtil.js"></script>
|
||||||
<script>(function(){
|
<script>(function(){
|
||||||
'use strict';
|
'use strict';
|
||||||
const E = (sel)=>document.querySelector(sel);
|
const E = (sel)=>document.querySelector(sel);
|
||||||
@ -167,7 +170,7 @@
|
|||||||
return str+a.join(' ');
|
return str+a.join(' ');
|
||||||
};
|
};
|
||||||
|
|
||||||
const W = new Worker("speedtest1-worker.js");
|
const W = new Worker("speedtest1-worker.js"+self.location.search);
|
||||||
const mPost = function(msgType,payload){
|
const mPost = function(msgType,payload){
|
||||||
W.postMessage({type: msgType, data: payload});
|
W.postMessage({type: msgType, data: payload});
|
||||||
};
|
};
|
||||||
@ -177,7 +180,16 @@
|
|||||||
const eLinkMainThread = E('#link-main-thread');
|
const eLinkMainThread = E('#link-main-thread');
|
||||||
const eLinkWasmfs = E('#link-wasmfs');
|
const eLinkWasmfs = E('#link-wasmfs');
|
||||||
const eLinkKvvfs = E('#link-kvvfs');
|
const eLinkKvvfs = E('#link-kvvfs');
|
||||||
const getSelectedFlags = ()=>Array.prototype.map.call(eFlags.selectedOptions, (v)=>v.value);
|
const urlParams = new URL(self.location.href).searchParams;
|
||||||
|
const getSelectedFlags = ()=>{
|
||||||
|
const f = Array.prototype.map.call(eFlags.selectedOptions, (v)=>v.value);
|
||||||
|
[
|
||||||
|
'size', 'vfs'
|
||||||
|
].forEach(function(k){
|
||||||
|
if(urlParams.has(k)) f.push('--'+k, urlParams.get(k));
|
||||||
|
});
|
||||||
|
return f;
|
||||||
|
};
|
||||||
const updateSelectedFlags = function(){
|
const updateSelectedFlags = function(){
|
||||||
eSelectedFlags.innerText = '';
|
eSelectedFlags.innerText = '';
|
||||||
const flags = getSelectedFlags();
|
const flags = getSelectedFlags();
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
returns the name of the dir on which OPFS is mounted, else it returns
|
returns the name of the dir on which OPFS is mounted, else it returns
|
||||||
an empty string.
|
an empty string.
|
||||||
*/
|
*/
|
||||||
const opfsDir = function f(wasmUtil){
|
const wasmfsDir = function f(wasmUtil){
|
||||||
if(undefined !== f._) return f._;
|
if(undefined !== f._) return f._;
|
||||||
const pdir = '/persistent';
|
const pdir = '/persistent';
|
||||||
if( !self.FileSystemHandle
|
if( !self.FileSystemHandle
|
||||||
@ -27,7 +27,7 @@
|
|||||||
return f._ = "";
|
return f._ = "";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
opfsDir._ = undefined;
|
wasmfsDir._ = undefined;
|
||||||
|
|
||||||
const mPost = function(msgType,payload){
|
const mPost = function(msgType,payload){
|
||||||
postMessage({type: msgType, data: payload});
|
postMessage({type: msgType, data: payload});
|
||||||
@ -52,7 +52,7 @@
|
|||||||
];
|
];
|
||||||
App.logBuffer.length = 0;
|
App.logBuffer.length = 0;
|
||||||
mPost('run-start', [...argv]);
|
mPost('run-start', [...argv]);
|
||||||
App.wasm.xCall('__main_argc_argv', argv.length,
|
App.wasm.xCall('wasm_main', argv.length,
|
||||||
App.wasm.scopedAllocMainArgv(argv));
|
App.wasm.scopedAllocMainArgv(argv));
|
||||||
}catch(e){
|
}catch(e){
|
||||||
mPost('error',e.message);
|
mPost('error',e.message);
|
||||||
@ -79,20 +79,18 @@
|
|||||||
printErr: logErr,
|
printErr: logErr,
|
||||||
setStatus: (text)=>mPost('load-status',text)
|
setStatus: (text)=>mPost('load-status',text)
|
||||||
};
|
};
|
||||||
self.sqlite3Speedtest1InitModule(EmscriptenModule).then(function(EmscriptenModule){
|
self.sqlite3Speedtest1InitModule(EmscriptenModule).then(function(EModule){
|
||||||
|
const S = EModule.sqlite3;
|
||||||
log("Module inited.");
|
log("Module inited.");
|
||||||
App.wasm = {
|
return S.installOpfsVfs()
|
||||||
exports: EmscriptenModule.asm,
|
.catch((e)=>console.warn(e.message))
|
||||||
alloc: (n)=>EmscriptenModule._malloc(n),
|
.then(()=>{
|
||||||
dealloc: (m)=>EmscriptenModule._free(m),
|
App.unlink = S.capi.wasm.xWrap("sqlite3_wasm_vfs_unlink", "int", ["string"]);
|
||||||
memory: EmscriptenModule.asm.memory || EmscriptenModule.wasmMemory
|
App.pDir = wasmfsDir(S.wasm);
|
||||||
};
|
App.wasm = S.capi.wasm;
|
||||||
//console.debug('wasm =',wasm);
|
//if(App.pDir) log("Persistent storage:",pDir);
|
||||||
self.WhWasmUtilInstaller(App.wasm);
|
//else log("Using transient storage.");
|
||||||
App.unlink = App.wasm.xWrap("sqlite3_wasm_vfs_unlink", "int", ["string"]);
|
|
||||||
App.pDir = opfsDir(App.wasm);
|
|
||||||
if(App.pDir) log("Persistent storage:",pDir);
|
|
||||||
else log("Using transient storage.");
|
|
||||||
mPost('ready',true);
|
mPost('ready',true);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
})();
|
})();
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
returns the name of the dir on which OPFS is mounted, else it returns
|
returns the name of the dir on which OPFS is mounted, else it returns
|
||||||
an empty string.
|
an empty string.
|
||||||
*/
|
*/
|
||||||
const opfsDir = function f(wasmUtil){
|
const wasmfsDir = function f(wasmUtil){
|
||||||
if(undefined !== f._) return f._;
|
if(undefined !== f._) return f._;
|
||||||
const pdir = '/persistent';
|
const pdir = '/persistent';
|
||||||
if( !self.FileSystemHandle
|
if( !self.FileSystemHandle
|
||||||
@ -66,7 +66,7 @@
|
|||||||
return f._ = "";
|
return f._ = "";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
opfsDir._ = undefined;
|
wasmfsDir._ = undefined;
|
||||||
|
|
||||||
const eOut = document.querySelector('#test-output');
|
const eOut = document.querySelector('#test-output');
|
||||||
const log2 = function(cssClass,...args){
|
const log2 = function(cssClass,...args){
|
||||||
@ -92,28 +92,41 @@
|
|||||||
logList.push('ERROR: '+args.join(' '));
|
logList.push('ERROR: '+args.join(' '));
|
||||||
};
|
};
|
||||||
|
|
||||||
const runTests = function(EmscriptenModule){
|
const runTests = function(sqlite3){
|
||||||
console.log("Module inited.",EmscriptenModule);
|
const capi = sqlite3.capi, wasm = capi.wasm;
|
||||||
const wasm = {
|
//console.debug('sqlite3 =',sqlite3);
|
||||||
exports: EmscriptenModule.asm,
|
|
||||||
alloc: (n)=>EmscriptenModule._malloc(n),
|
|
||||||
dealloc: (m)=>EmscriptenModule._free(m),
|
|
||||||
memory: EmscriptenModule.asm.memory || EmscriptenModule.wasmMemory
|
|
||||||
};
|
|
||||||
//console.debug('wasm =',wasm);
|
|
||||||
self.WhWasmUtilInstaller(wasm);
|
|
||||||
const unlink = wasm.xWrap("sqlite3_wasm_vfs_unlink", "int", ["string"]);
|
const unlink = wasm.xWrap("sqlite3_wasm_vfs_unlink", "int", ["string"]);
|
||||||
const pDir = opfsDir(wasm);
|
const pDir = wasmfsDir(wasm);
|
||||||
if(pDir){
|
if(pDir){
|
||||||
console.warn("Persistent storage:",pDir);
|
console.warn("Persistent storage:",pDir);
|
||||||
}
|
}
|
||||||
const scope = wasm.scopedAllocPush();
|
const scope = wasm.scopedAllocPush();
|
||||||
const dbFile = 0 ? "" : pDir+"/speedtest1.db";
|
let dbFile = pDir+"/speedtest1.db";
|
||||||
const urlArgs = self.SqliteTestUtil.processUrlArgs();
|
const urlParams = self.SqliteTestUtil.processUrlArgs();
|
||||||
const argv = ["speedtest1"];
|
const argv = ["speedtest1"];
|
||||||
if(urlArgs.flags){
|
if('string'===typeof urlParams.vfs){
|
||||||
|
if(!capi.sqlite3_vfs_find(urlParams.vfs)){
|
||||||
|
log2('error',"Unknown VFS:",urlParams.vfs);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
argv.push("--vfs", urlParams.vfs);
|
||||||
|
log2('',"Using VFS:",urlParams.vfs);
|
||||||
|
if('kvvfs' === urlParams.vfs){
|
||||||
|
urlParams.size = 1;
|
||||||
|
dbFile = 'session';
|
||||||
|
log2('',"kvvfs VFS: forcing --size 1 and filename 'session'");
|
||||||
|
capi.sqlite3_web_kvvfs_clear('session');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[
|
||||||
|
'size'
|
||||||
|
].forEach(function(k){
|
||||||
|
const v = urlParams[k];
|
||||||
|
if(v) argv.push('--'+k, urlParams[k]);
|
||||||
|
});
|
||||||
|
if(urlParams.flags){
|
||||||
// transform flags=a,b,c to ["--a", "--b", "--c"]
|
// transform flags=a,b,c to ["--a", "--b", "--c"]
|
||||||
argv.push(...(urlArgs.flags.split(',').map((v)=>'--'+v)));
|
argv.push(...(urlParams.flags.split(',').map((v)=>'--'+v)));
|
||||||
}else{
|
}else{
|
||||||
argv.push(
|
argv.push(
|
||||||
"--singlethread",
|
"--singlethread",
|
||||||
@ -134,7 +147,7 @@
|
|||||||
"Give it time...");
|
"Give it time...");
|
||||||
logList.length = 0;
|
logList.length = 0;
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
wasm.xCall('__main_argc_argv', argv.length,
|
wasm.xCall('wasm_main', argv.length,
|
||||||
wasm.scopedAllocMainArgv(argv));
|
wasm.scopedAllocMainArgv(argv));
|
||||||
wasm.scopedAllocPop(scope);
|
wasm.scopedAllocPop(scope);
|
||||||
if(pDir) unlink(dbFile);
|
if(pDir) unlink(dbFile);
|
||||||
@ -145,8 +158,11 @@
|
|||||||
|
|
||||||
self.sqlite3TestModule.print = log;
|
self.sqlite3TestModule.print = log;
|
||||||
self.sqlite3TestModule.printErr = logErr;
|
self.sqlite3TestModule.printErr = logErr;
|
||||||
sqlite3Speedtest1InitModule(self.sqlite3TestModule).then(function(M){
|
sqlite3Speedtest1InitModule(self.sqlite3TestModule)
|
||||||
setTimeout(()=>runTests(M), 100);
|
.then((EmscriptenModule)=>{
|
||||||
|
return EmscriptenModule.sqlite3.installOpfsVfs()
|
||||||
|
.catch((e)=>{console.warn(e.message)})
|
||||||
|
.then(()=>runTests(EmscriptenModule.sqlite3));
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
31
manifest
31
manifest
@ -1,5 +1,5 @@
|
|||||||
C speedtest1:\sadd\s--vfs\sNAME\sflag\sand\seliminate\scode\sduplication\sin\sargc\ssize\sverification\sfor\sall\sflags\swhich\stake\sa\svalue.
|
C Merge\skv-vfs\sbranch\sinto\sfiddle-opfs.\sAdjust\svarious\sJS\sAPIs\sand\sapps\sto\sdeal\swith\sthe\snew\smethod\sof\shandling\skvvfs.\sAdjust\sspeedtest1\sJS\sbuild\sto\sinclude\ssqlite3-api.js\sso\sthat\sit\scan\suse\skvvfs\sand\sopfs\sVFSes.\sPermit\spassing\sof\sthe\svfs\sas\sa\sURL\sparameter\sto\scertain\sdemo/test\sapps.\sMilestone:\sspeedtest-worker.html?vfs=opfs\sruns\swith\sthe\sstandalone\sOPFS\simpl.
|
||||||
D 2022-09-19T11:47:38.781
|
D 2022-09-19T13:16:35.953
|
||||||
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 7fb73f7150ab79d83bb45a67d257553c905c78cd3d693101699243f36c5ae6c3
|
F ext/wasm/EXPORTED_FUNCTIONS.fiddle 7fb73f7150ab79d83bb45a67d257553c905c78cd3d693101699243f36c5ae6c3
|
||||||
F ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle a004bd5eeeda6d3b28d16779b7f1a80305bfe009dfc7f0721b042967f0d39d02
|
F ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle a004bd5eeeda6d3b28d16779b7f1a80305bfe009dfc7f0721b042967f0d39d02
|
||||||
F ext/wasm/GNUmakefile 19ba3304cf4e5e5f480a5c3701b2c7d7b7383f70416359fc4a1d304b4ffdd895
|
F ext/wasm/GNUmakefile b6a5b642e8b3e587d3edcfeb6b6275acbe4730293f4ad46c4997cd932d57aec5
|
||||||
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
|
||||||
@ -485,7 +485,7 @@ F ext/wasm/api/sqlite3-api-cleanup.js 8564a6077cdcaea9a9f428a019af8a05887f0131e6
|
|||||||
F ext/wasm/api/sqlite3-api-glue.js 366d580c8e5bf7fcf4c6dee6f646c31f5549bd417ea03a59a0acca00e8ecce30
|
F ext/wasm/api/sqlite3-api-glue.js 366d580c8e5bf7fcf4c6dee6f646c31f5549bd417ea03a59a0acca00e8ecce30
|
||||||
F ext/wasm/api/sqlite3-api-oo1.js 2d13dddf0d2b4168a9249f124134d37924331e5b55e05dba18b6d661fbeefe48
|
F ext/wasm/api/sqlite3-api-oo1.js 2d13dddf0d2b4168a9249f124134d37924331e5b55e05dba18b6d661fbeefe48
|
||||||
F ext/wasm/api/sqlite3-api-opfs.js 580be306be7301fa0b3cb2abd5765561a3d7f4746a7679f95394af50a14671bb
|
F ext/wasm/api/sqlite3-api-opfs.js 580be306be7301fa0b3cb2abd5765561a3d7f4746a7679f95394af50a14671bb
|
||||||
F ext/wasm/api/sqlite3-api-prologue.js 4e3e26880d444000cca1b4f3ddfa9d49581dfecd1de9426080239ecc208c447d
|
F ext/wasm/api/sqlite3-api-prologue.js 7b1e4a45f733a6f95551b383eb37cb86754d18214b11f668298f7a83a23ef732
|
||||||
F ext/wasm/api/sqlite3-api-worker1.js ee4cf149cbacb63d06b536674f822aa5088b7e022cdffc69f1f36cebe2f9fea0
|
F ext/wasm/api/sqlite3-api-worker1.js ee4cf149cbacb63d06b536674f822aa5088b7e022cdffc69f1f36cebe2f9fea0
|
||||||
F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9
|
F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9
|
||||||
F ext/wasm/api/sqlite3-wasm.c 4130e2df9587f4e4c3afc04c3549d682c8a5c0cfe5b22819a0a86edb7f01b9bd
|
F ext/wasm/api/sqlite3-wasm.c 4130e2df9587f4e4c3afc04c3549d682c8a5c0cfe5b22819a0a86edb7f01b9bd
|
||||||
@ -499,25 +499,24 @@ F ext/wasm/common/whwasmutil.js f7282ef36c9625330d4e6e82d1beec6678cd101e95e7108c
|
|||||||
F ext/wasm/demo-123-worker.html e419b66495d209b5211ec64903b4cfb3ca7df20d652b41fcd28bf018a773234f
|
F ext/wasm/demo-123-worker.html e419b66495d209b5211ec64903b4cfb3ca7df20d652b41fcd28bf018a773234f
|
||||||
F ext/wasm/demo-123.html aa281d33b7eefa755f3122b7b5a18f39a42dc5fb69c8879171bf14b4c37c4ec4
|
F ext/wasm/demo-123.html aa281d33b7eefa755f3122b7b5a18f39a42dc5fb69c8879171bf14b4c37c4ec4
|
||||||
F ext/wasm/demo-123.js 234655683e35a4543a23de7b10800d76b0369947b33e089e5613171fa7795afb
|
F ext/wasm/demo-123.js 234655683e35a4543a23de7b10800d76b0369947b33e089e5613171fa7795afb
|
||||||
|
F ext/wasm/demo-kvvfs1.html 7d4f28873de67f51ac18c584b7d920825139866a96049a49c424d6f5a0ea5e7f w ext/wasm/kvvfs1.html
|
||||||
|
F ext/wasm/demo-kvvfs1.js e884ea35022d772c0d1dd884b40011413696438394f605c6cd4808cfb1642a4a w ext/wasm/kvvfs1.js
|
||||||
F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
|
F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
|
||||||
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 aed40adf52598a353e27e50480d53e59a5e75e9ba889f7d8bb2fda45a0a91c3b
|
F ext/wasm/index.html de69bc78273fbe024a21dae0f378a87b37ad4cd585ed0cd0a0ed2c5d5afe9fbc
|
||||||
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 4b2ba6d061f3a52da9f5812f86f4faa80fb4d9456a152f6b0585dccd667a4e22
|
|
||||||
F ext/wasm/kvvfs1.html 13bb24190bfb276a57b228499519badcc1bf39ed07e4b37bc2a425ce6418fed1
|
|
||||||
F ext/wasm/kvvfs1.js ec1c1d071bb055711f9151df05616111432cf3e6bf7ac7f8dcbcfb56c9d9ed48
|
|
||||||
F ext/wasm/scratchpad-wasmfs-main.html 20cf6f1a8f368e70d01e8c17200e3eaa90f1c8e1029186d836d14b83845fbe06
|
F ext/wasm/scratchpad-wasmfs-main.html 20cf6f1a8f368e70d01e8c17200e3eaa90f1c8e1029186d836d14b83845fbe06
|
||||||
F ext/wasm/scratchpad-wasmfs-main.js f0836e3576df7a89390d777bb53e142e559e8a79becfb2a5a976490b05a1c4fa
|
F ext/wasm/scratchpad-wasmfs-main.js f0836e3576df7a89390d777bb53e142e559e8a79becfb2a5a976490b05a1c4fa
|
||||||
F ext/wasm/speedtest1-kvvfs.html c8b65c20e2b35298dc02d8e0a394d5e1eb857fd22e504468388234aee13aef08
|
F ext/wasm/speedtest1-kvvfs.html c8b65c20e2b35298dc02d8e0a394d5e1eb857fd22e504468388234aee13aef08
|
||||||
F ext/wasm/speedtest1-wasmfs.html 6a67a6812f03a2058eb5c6ad0c8dea4bf749d0160ed9d6b826dabe7b766c3cf7
|
F ext/wasm/speedtest1-wasmfs.html 3a6f89fdd025d137ea9122a84a454d5d31cafa8495e7371e984f4d4b8ce58834
|
||||||
F ext/wasm/speedtest1-worker.html d8881ae802d15fb8adb94049265173e99f350e07e1d4e6f9e1cbd8969fe63a04
|
F ext/wasm/speedtest1-worker.html edbfbff9249b33a889fb76e7df9640d83e03f1e0d25b6c9e228f00d629a76ed0
|
||||||
F ext/wasm/speedtest1-worker.js fb5d282c0b8aed18daf41c57f768cbf434f8137dbff707d53dcedcd7d4cb60ef
|
F ext/wasm/speedtest1-worker.js d26605f9518978ccbefbec2cbcdf90437c00828e3cb0fd69712f58b37f9e071c
|
||||||
F ext/wasm/speedtest1.html fbb8e4d1639028443f3687a683be660beca6927920545cf6b1fdf503104591c0
|
F ext/wasm/speedtest1.html 225ef377f7c42b8044505d9ef1a8c97c8dddb6d8799d322bd654c9f70c0f2f6f
|
||||||
F ext/wasm/split-speedtest1-script.sh a3e271938d4d14ee49105eb05567c6a69ba4c1f1293583ad5af0cd3a3779e205 x
|
F ext/wasm/split-speedtest1-script.sh a3e271938d4d14ee49105eb05567c6a69ba4c1f1293583ad5af0cd3a3779e205 x
|
||||||
F ext/wasm/sql/000-mandelbrot.sql 775337a4b80938ac8146aedf88808282f04d02d983d82675bd63d9c2d97a15f0
|
F ext/wasm/sql/000-mandelbrot.sql 775337a4b80938ac8146aedf88808282f04d02d983d82675bd63d9c2d97a15f0
|
||||||
F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
|
F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
|
||||||
@ -1508,7 +1507,7 @@ F test/speed3.test 694affeb9100526007436334cf7d08f3d74b85ef
|
|||||||
F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715
|
F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715
|
||||||
F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
|
F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
|
||||||
F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c
|
F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c
|
||||||
F test/speedtest1.c 4be5c905c7b3ee72d8e54dea3a846b8c3e7f9674cf3d080968e0e6651ba3c302
|
F test/speedtest1.c 752fc1cad512f7c94271d3fdb46d6d90c9f6b61d0a4722a28c7028f53952fb1d
|
||||||
F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
|
F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
|
||||||
F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
|
F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
|
||||||
F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
|
F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
|
||||||
@ -2028,8 +2027,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 9370ce94780e974da03d5c74cf9a5983eed333e7b3bc54e605c5f30b3fa99287 354726aa6c399053785f29104de15091629ce4bc275b9e2205cb3656a9e81cd7
|
P 281d09867134e0a057cfadd9bfcbf0e21b8ac9737a278c41973d33a3101be7bc
|
||||||
R 00556834ec19d453fd785f2bebf86235
|
R 6442d22e3df1d96228caf48bf4bfd7a0
|
||||||
U stephan
|
U stephan
|
||||||
Z 19b45de03e5674211a91148844c56c0b
|
Z 5bc762c205d5862d76e828c3121841fc
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
281d09867134e0a057cfadd9bfcbf0e21b8ac9737a278c41973d33a3101be7bc
|
ec09f32f7ae2249aaf27388ad2062982afa8bbbb5f88d236d6d9068bf33ad93d
|
@ -2197,7 +2197,6 @@ static int xCompileOptions(void *pCtx, int nVal, char **azVal, char **azCol){
|
|||||||
printf("-- Compile option: %s\n", azVal[0]);
|
printf("-- Compile option: %s\n", azVal[0]);
|
||||||
return SQLITE_OK;
|
return SQLITE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv){
|
int main(int argc, char **argv){
|
||||||
int doAutovac = 0; /* True for --autovacuum */
|
int doAutovac = 0; /* True for --autovacuum */
|
||||||
int cacheSize = 0; /* Desired cache size. 0 means default */
|
int cacheSize = 0; /* Desired cache size. 0 means default */
|
||||||
@ -2634,3 +2633,13 @@ int main(int argc, char **argv){
|
|||||||
free( pHeap );
|
free( pHeap );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SQLITE_SPEEDTEST1_WASM
|
||||||
|
/*
|
||||||
|
** A workaround for some inconsistent behaviour with how
|
||||||
|
** main() does (or does not) get exported to WASM.
|
||||||
|
*/
|
||||||
|
int wasm_main(int argc, char **argv){
|
||||||
|
return main(argc, argv);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
Reference in New Issue
Block a user