mirror of
https://github.com/sqlite/sqlite.git
synced 2025-10-24 09:53:10 +03:00
Reinstate the Module.instantiateWasm() override and simplify how the wasm filename gets injected into the JS files.
FossilOrigin-Name: e878ffd2eaa87e2978c44fcd03a1eb6114a9ae31e31101898d682f43cf81000f
This commit is contained in:
@@ -74,6 +74,7 @@ emo.lock = 🔒
|
|||||||
emo.magic = 🧙
|
emo.magic = 🧙
|
||||||
emo.megaphone = 📣
|
emo.megaphone = 📣
|
||||||
emo.mute = 🔇
|
emo.mute = 🔇
|
||||||
|
emo.edit = ✏️
|
||||||
emo.stop = 🛑
|
emo.stop = 🛑
|
||||||
emo.strip = 💈
|
emo.strip = 💈
|
||||||
emo.test = 🧪
|
emo.test = 🧪
|
||||||
@@ -201,13 +202,35 @@ b.cp = $(call b.mkdir@); \
|
|||||||
cp -p $(2) $(3) || exit
|
cp -p $(2) $(3) || exit
|
||||||
|
|
||||||
#
|
#
|
||||||
# $(eval $(call b.eval.c-pp,@,src,dest,-Dx=y...))
|
# $(call b.c-pp.shcmd,LOGTAG,src,dest,-Dx=y...)
|
||||||
|
#
|
||||||
|
# Resolves to shell code to create $(3) from $(2) and $(4) using
|
||||||
|
# $(bin.c-pp).
|
||||||
#
|
#
|
||||||
# $1 = build name
|
# $1 = build name
|
||||||
# $2 = Input file(s): cat $(2) | $(bin.c-pp) ...
|
# $2 = Input file(s)
|
||||||
# $3 = Output file: $(bin.c-pp) -o $(3)
|
# $3 = Output file
|
||||||
# $4 = optional $(bin.c-pp) -D... flags
|
# $4 = optional $(bin.c-pp) flags
|
||||||
define b.eval.c-pp
|
define b.c-pp.shcmd
|
||||||
|
$(call b.mkdir@); \
|
||||||
|
$(call b.echo,$(1),$(emo.disk)$(emo.lock) $(bin.c-pp) $(4) $(if $(loud.if),$(2))); \
|
||||||
|
rm -f $(3); \
|
||||||
|
$(bin.c-pp) -o $(3) $(4) $(2) || exit; \
|
||||||
|
chmod -w $(3)
|
||||||
|
endef
|
||||||
|
|
||||||
|
#
|
||||||
|
# $(eval $(call b.c-pp.target,LOGTAG,src,dest,-Dx=y...))
|
||||||
|
#
|
||||||
|
# Creates target $(3) using $(bin.c-pp) $(2) $(4).
|
||||||
|
#
|
||||||
|
# Args: as for $(b.c-pp.shcmd).
|
||||||
|
define b.c-pp.target
|
||||||
|
$(3): $$(MAKEFILE_LIST) $$(bin.c-pp) $(2)
|
||||||
|
@$$(call b.c-pp.shcmd,$(1),$(2),$(3),$(4))
|
||||||
|
CLEAN_FILES += $(3)
|
||||||
|
endef
|
||||||
|
define xxxb.c-pp.target
|
||||||
$(3): $$(MAKEFILE_LIST) $$(bin.c-pp) $(2)
|
$(3): $$(MAKEFILE_LIST) $$(bin.c-pp) $(2)
|
||||||
@$$(call b.mkdir@); \
|
@$$(call b.mkdir@); \
|
||||||
$$(call b.echo,$(1),$$(emo.disk)$$(emo.lock) $$(bin.c-pp) $(4) $(if $(loud.if),$(2))); \
|
$$(call b.echo,$(1),$$(emo.disk)$$(emo.lock) $$(bin.c-pp) $(4) $(if $(loud.if),$(2))); \
|
||||||
@@ -459,16 +482,17 @@ ifneq (,$(sqlite3_wasm_extra_init.c))
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Experimental and not known to work since the build upheaval in
|
# Actitivates (or not) a custom Module.instantiateWasm() override for
|
||||||
# 2025-09.
|
# Emscripten. That override gives us more control over exactly which
|
||||||
|
# WASM file is in use.
|
||||||
#
|
#
|
||||||
# If $(WASM_CUSTOM_INSTANTIATE) is 1 then mkwasmbuilds will add
|
# If $(WASM_CUSTOM_INSTANTIATE) is 1 then mkwasmbuilds will add
|
||||||
# -Dcustom-Module.instantiateWasm to some of the builds. This is
|
# -Dcustom-Module.instantiateWasm to some of the builds. This is
|
||||||
# experimental.
|
# experimental but works on all browsers tested by its developer.
|
||||||
#
|
#
|
||||||
# Changing this may require a clean rebuild. It also might not work.
|
# Changing this may require a clean rebuild. It also might not work.
|
||||||
#
|
#
|
||||||
WASM_CUSTOM_INSTANTIATE = 0
|
WASM_CUSTOM_INSTANTIATE = 1
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# $(bin.c-pp): a minimal text file preprocessor. Like C's but much
|
# $(bin.c-pp): a minimal text file preprocessor. Like C's but much
|
||||||
@@ -500,7 +524,7 @@ WASM_CUSTOM_INSTANTIATE = 0
|
|||||||
# build. They are solely for use with $(bin.c-pp) itself.
|
# build. They are solely for use with $(bin.c-pp) itself.
|
||||||
#
|
#
|
||||||
# -D... flags which should be included in all invocations should be
|
# -D... flags which should be included in all invocations should be
|
||||||
# appended to $(b.eval.c-pp.flags).
|
# appended to $(b.c-pp.target.flags).
|
||||||
bin.c-pp = ./c-pp
|
bin.c-pp = ./c-pp
|
||||||
$(bin.c-pp): c-pp.c $(sqlite3.c) # $(MAKEFILE)
|
$(bin.c-pp): c-pp.c $(sqlite3.c) # $(MAKEFILE)
|
||||||
$(CC) -O0 -o $@ c-pp.c $(sqlite3.c) '-DCMPP_DEFAULT_DELIM="//#"' -I$(dir.top) \
|
$(CC) -O0 -o $@ c-pp.c $(sqlite3.c) '-DCMPP_DEFAULT_DELIM="//#"' -I$(dir.top) \
|
||||||
@@ -508,9 +532,9 @@ $(bin.c-pp): c-pp.c $(sqlite3.c) # $(MAKEFILE)
|
|||||||
-DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_WAL -DSQLITE_THREADSAFE=0 \
|
-DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_WAL -DSQLITE_THREADSAFE=0 \
|
||||||
-DSQLITE_TEMP_STORE=3
|
-DSQLITE_TEMP_STORE=3
|
||||||
DISTCLEAN_FILES += $(bin.c-pp)
|
DISTCLEAN_FILES += $(bin.c-pp)
|
||||||
b.eval.c-pp.flags ?=
|
b.c-pp.target.flags ?=
|
||||||
ifeq (1,$(SQLITE_C_IS_SEE))
|
ifeq (1,$(SQLITE_C_IS_SEE))
|
||||||
b.eval.c-pp.flags += -Denable-see
|
b.c-pp.target.flags += -Denable-see
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# cflags.common = C compiler flags for all builds
|
# cflags.common = C compiler flags for all builds
|
||||||
@@ -742,19 +766,9 @@ emcc.jsflags += -sLLD_REPORT_UNDEFINED
|
|||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
|
|
||||||
# Undocumented Emscripten feature: if the target file extension is
|
|
||||||
# "mjs", it defaults to ES6 module builds:
|
|
||||||
# https://github.com/emscripten-core/emscripten/issues/14383
|
|
||||||
sqlite3.wasm = $(dir.dout)/sqlite3.wasm
|
sqlite3.wasm = $(dir.dout)/sqlite3.wasm
|
||||||
sqlite3-wasm.c = $(dir.api)/sqlite3-wasm.c
|
sqlite3-wasm.c = $(dir.api)/sqlite3-wasm.c
|
||||||
sqlite3-wasm.c.in = $(sqlite3-wasm.c) $(sqlite3_wasm_extra_init.c)
|
sqlite3-wasm.c.in = $(sqlite3-wasm.c) $(sqlite3_wasm_extra_init.c)
|
||||||
sqlite3-wasmfs.c.in = $(sqlite3-wasm.c.in)
|
|
||||||
# sqlite3-wasm.o vs sqlite3-wasm.c: building against the latter
|
|
||||||
# (predictably) results in a slightly faster binary. We're close
|
|
||||||
# enough to the target speed requirements that the 500ms makes a
|
|
||||||
# difference, so we build all binaries against sqlite3-wasm.c instead
|
|
||||||
# of building a shared copy of sqlite3-wasm.o to link against.
|
|
||||||
########################################################################
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# b.call.patch-export-default is used by mkwasmbuilds.c and the
|
# b.call.patch-export-default is used by mkwasmbuilds.c and the
|
||||||
@@ -1007,6 +1021,12 @@ fiddle.EXPORTED_FUNCTIONS.in = \
|
|||||||
|
|
||||||
fiddle.c.in = $(dir.top)/shell.c $(sqlite3-wasm.c)
|
fiddle.c.in = $(dir.top)/shell.c $(sqlite3-wasm.c)
|
||||||
|
|
||||||
|
#
|
||||||
|
# WASMFS build - unsupported and untested. We used WASMFS
|
||||||
|
# to jumpstart development early on, but it has always been
|
||||||
|
# a moving target, in that Emscripten updates have broken
|
||||||
|
# our build often enough that we no longer actively support it.
|
||||||
|
# It's interesting to keep around, though.
|
||||||
#
|
#
|
||||||
# Only add wasmfs if wasmfs.enable=1 or we're running (dist)clean
|
# Only add wasmfs if wasmfs.enable=1 or we're running (dist)clean
|
||||||
#
|
#
|
||||||
@@ -1017,23 +1037,19 @@ else
|
|||||||
# sub-make can clean up.
|
# sub-make can clean up.
|
||||||
wasmfs.enable ?= $(MAKING_CLEAN)
|
wasmfs.enable ?= $(MAKING_CLEAN)
|
||||||
endif
|
endif
|
||||||
#
|
|
||||||
# WASMFS build - unsupported and untested. We used WASMFS
|
|
||||||
# to jumpstart development early on, but it has always been
|
|
||||||
# a moving target, in that Emscripten updates have broken
|
|
||||||
# our build often enough that we no longer actively support it.
|
|
||||||
# It's interesting to keep around, though.
|
|
||||||
#
|
|
||||||
cflags.wasmfs = -DSQLITE_ENABLE_WASMFS
|
cflags.wasmfs = -DSQLITE_ENABLE_WASMFS
|
||||||
|
# end wasmfs (the rest is in mkwasmbuilds.c)
|
||||||
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# bin.mkwb is used for generating much of the makefile code for the
|
# $(bin.mkwb) is used for generating much of the makefile code for the
|
||||||
# various wasm builds. It used to be generated in this makefile via a
|
# various wasm builds. It used to be generated in this makefile via a
|
||||||
# difficult-to-read/maintain block of $(eval)'d code. Attempts were
|
# difficult-to-read/maintain block of $(eval)'d code. Attempts were
|
||||||
# made to generate it from tcl and bash (shell) but having to escape
|
# made to generate it from tcl and bash (shell) but having to escape
|
||||||
# the $ references in those languages made it just as illegible as the
|
# the $ references in those languages made it just as illegible as the
|
||||||
# native makefile code. Somewhat surprisingly, moving that code generation
|
# native makefile code. Somewhat surprisingly, moving that code
|
||||||
# to C makes it slightly less illegible than the previous 3 options.
|
# generation to C makes it slightly less illegible than the previous 3
|
||||||
|
# options.
|
||||||
#
|
#
|
||||||
# Maintenance notes:
|
# Maintenance notes:
|
||||||
#
|
#
|
||||||
@@ -1042,7 +1058,7 @@ cflags.wasmfs = -DSQLITE_ENABLE_WASMFS
|
|||||||
#
|
#
|
||||||
# - Vars which are used by $(bin.mkwb) in dependency lists and such
|
# - Vars which are used by $(bin.mkwb) in dependency lists and such
|
||||||
# need to be defined before this is included. Those used in recipies
|
# need to be defined before this is included. Those used in recipies
|
||||||
# do not.
|
# may be defined after this step.
|
||||||
#
|
#
|
||||||
bin.mkwb = ./mkwasmbuilds
|
bin.mkwb = ./mkwasmbuilds
|
||||||
ifneq (1,$(MAKING_CLEAN))
|
ifneq (1,$(MAKING_CLEAN))
|
||||||
@@ -1080,7 +1096,7 @@ sqlite3.ext.js =
|
|||||||
define gen-worker1
|
define gen-worker1
|
||||||
# $1 = X.ext part of sqlite3-worker1X.ext
|
# $1 = X.ext part of sqlite3-worker1X.ext
|
||||||
# $2 = $(c-pp.D.NAME)
|
# $2 = $(c-pp.D.NAME)
|
||||||
$(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1.c-pp.js,\
|
$(call b.c-pp.target,filter,$(dir.api)/sqlite3-worker1.c-pp.js,\
|
||||||
$(dir.dout)/sqlite3-worker1$(1),$(2))
|
$(dir.dout)/sqlite3-worker1$(1),$(2))
|
||||||
sqlite3.ext.js += $(dir.dout)/sqlite3-worker1$(1)
|
sqlite3.ext.js += $(dir.dout)/sqlite3-worker1$(1)
|
||||||
all: $(dir.dout)/sqlite3-worker1$(1)
|
all: $(dir.dout)/sqlite3-worker1$(1)
|
||||||
@@ -1097,7 +1113,7 @@ $(eval $(call gen-worker1,-bundler-friendly.mjs,$(c-pp.D.bundler)))
|
|||||||
define gen-promiser
|
define gen-promiser
|
||||||
# $1 = X.ext part of sqlite3-worker1-promiserX.ext
|
# $1 = X.ext part of sqlite3-worker1-promiserX.ext
|
||||||
# $2 = $(c-pp.D.NAME)
|
# $2 = $(c-pp.D.NAME)
|
||||||
$(call b.eval.c-pp,filter,$(dir.api)/sqlite3-worker1-promiser.c-pp.js,\
|
$(call b.c-pp.target,filter,$(dir.api)/sqlite3-worker1-promiser.c-pp.js,\
|
||||||
$(dir.dout)/sqlite3-worker1-promiser$(1),$(2))
|
$(dir.dout)/sqlite3-worker1-promiser$(1),$(2))
|
||||||
sqlite3.ext.js += $(dir.dout)/sqlite3-worker1-promiser$(1)
|
sqlite3.ext.js += $(dir.dout)/sqlite3-worker1-promiser$(1)
|
||||||
all: $(dir.dout)/sqlite3-worker1-promiser$(1)
|
all: $(dir.dout)/sqlite3-worker1-promiser$(1)
|
||||||
@@ -1114,8 +1130,8 @@ $(eval $(call gen-promiser,-bundler-friendly.mjs,$(c-pp.D.bundler)))
|
|||||||
# $3 = -D... flags for $(bin.c-pp)
|
# $3 = -D... flags for $(bin.c-pp)
|
||||||
#
|
#
|
||||||
define gen-dwp
|
define gen-dwp
|
||||||
$(call b.eval.c-pp,test,demo-worker1-promiser.c-pp.js,demo-worker1-promiser$(1),$(3))
|
$(call b.c-pp.target,test,demo-worker1-promiser.c-pp.js,demo-worker1-promiser$(1),$(3))
|
||||||
$(call b.eval.c-pp,test,demo-worker1-promiser.c-pp.html,demo-worker1-promiser$(2),$(3))
|
$(call b.c-pp.target,test,demo-worker1-promiser.c-pp.html,demo-worker1-promiser$(2),$(3))
|
||||||
demos: demo-worker1-promiser$(1) demo-worker1-promiser$(2)
|
demos: demo-worker1-promiser$(1) demo-worker1-promiser$(2)
|
||||||
endef
|
endef
|
||||||
$(eval $(call gen-dwp,.js,.html,$(c-pp.D.vanilla)))
|
$(eval $(call gen-dwp,.js,.html,$(c-pp.D.vanilla)))
|
||||||
@@ -1226,7 +1242,7 @@ define gen-tester1.js
|
|||||||
# $1 = build name to have dep on
|
# $1 = build name to have dep on
|
||||||
# $2 = suffix for tester1SUFFIX JS
|
# $2 = suffix for tester1SUFFIX JS
|
||||||
# $3 = c-pp flags
|
# $3 = c-pp flags
|
||||||
$(call b.eval.c-pp,test,tester1.c-pp.js,tester1$(2),$(3))
|
$(call b.c-pp.target,test,tester1.c-pp.js,tester1$(2),$(3))
|
||||||
tester1$(2): $(sqlite3.ext.js) $(out.$(1).wasm)
|
tester1$(2): $(sqlite3.ext.js) $(out.$(1).wasm)
|
||||||
tester1-$(1): tester1$(2)
|
tester1-$(1): tester1$(2)
|
||||||
tester1: tester1$(2)
|
tester1: tester1$(2)
|
||||||
@@ -1242,7 +1258,7 @@ define gen-tester1.html
|
|||||||
# $1 = build name to have a dep on
|
# $1 = build name to have a dep on
|
||||||
# $2 = file suffix: empty, -64bit, -esm, esm-64bit
|
# $2 = file suffix: empty, -64bit, -esm, esm-64bit
|
||||||
# $3 = c-pp -D flags.
|
# $3 = c-pp -D flags.
|
||||||
$(call b.eval.c-pp,test,tester1.c-pp.html,tester1$(2).html,$(3))
|
$(call b.c-pp.target,test,tester1.c-pp.html,tester1$(2).html,$(3))
|
||||||
tester1$(2).html: tester1-$(1)
|
tester1$(2).html: tester1-$(1)
|
||||||
tester1: tester1$(2).html
|
tester1: tester1$(2).html
|
||||||
endef
|
endef
|
||||||
@@ -1255,8 +1271,8 @@ $(eval $(call gen-tester1.html,esm64,-esm-64bit,$(c-pp.D.esm64)))
|
|||||||
# tester1-worker.html variants:
|
# tester1-worker.html variants:
|
||||||
# There is no ESM variant of this file. Instead, that page accepts a
|
# There is no ESM variant of this file. Instead, that page accepts a
|
||||||
# ?esm URL flag to switch to ESM mode.
|
# ?esm URL flag to switch to ESM mode.
|
||||||
$(eval $(call b.eval.c-pp,test,tester1-worker.c-pp.html,tester1-worker.html))
|
$(eval $(call b.c-pp.target,test,tester1-worker.c-pp.html,tester1-worker.html))
|
||||||
$(eval $(call b.eval.c-pp,test,tester1-worker.c-pp.html,tester1-worker-64bit.html,$(c-pp.D.64bit)))
|
$(eval $(call b.c-pp.target,test,tester1-worker.c-pp.html,tester1-worker-64bit.html,$(c-pp.D.64bit)))
|
||||||
tester1: tester1-worker.html tester1-worker-64bit.html
|
tester1: tester1-worker.html tester1-worker-64bit.html
|
||||||
|
|
||||||
all: tester1
|
all: tester1
|
||||||
|
|||||||
@@ -45,7 +45,18 @@ const toExportForESM =
|
|||||||
location: globalThis.location,
|
location: globalThis.location,
|
||||||
urlParams: globalThis?.location?.href
|
urlParams: globalThis?.location?.href
|
||||||
? new URL(globalThis.location.href).searchParams
|
? new URL(globalThis.location.href).searchParams
|
||||||
: new URLSearchParams()
|
: new URLSearchParams(),
|
||||||
|
/*
|
||||||
|
It is literally impossible to reliably get the name of _this_ script
|
||||||
|
at runtime, so impossible to reliably derive X.wasm from script name
|
||||||
|
X.js. (This is apparently why Emscripten hard-codes the name of the
|
||||||
|
wasm file into their output.) Thus we need, at build-time, to set
|
||||||
|
the name of the WASM file which our custom instantiateWasm() should to
|
||||||
|
load. The build process populates this.
|
||||||
|
|
||||||
|
Module.instantiateWasm() is found in pre-js.c-pp.js.
|
||||||
|
*/
|
||||||
|
wasmFilename: '@sqlite3.wasm@' /* replaced by the build process */
|
||||||
});
|
});
|
||||||
sIMS.debugModule =
|
sIMS.debugModule =
|
||||||
sIMS.urlParams.has('sqlite3.debugModule')
|
sIMS.urlParams.has('sqlite3.debugModule')
|
||||||
|
|||||||
@@ -14,124 +14,102 @@
|
|||||||
itself. i.e. try to keep file-local symbol names obnoxiously
|
itself. i.e. try to keep file-local symbol names obnoxiously
|
||||||
collision-resistant.
|
collision-resistant.
|
||||||
*/
|
*/
|
||||||
const sIMS =
|
(function(Module){
|
||||||
globalThis.sqlite3InitModuleState/*from extern-post-js.c-pp.js*/
|
const sIMS =
|
||||||
|| Object.assign(Object.create(null),{
|
globalThis.sqlite3InitModuleState/*from extern-post-js.c-pp.js*/
|
||||||
debugModule: ()=>{
|
|| Object.assign(Object.create(null),{
|
||||||
console.warn("globalThis.sqlite3InitModuleState is missing");
|
debugModule: ()=>{
|
||||||
}
|
console.warn("globalThis.sqlite3InitModuleState is missing");
|
||||||
});
|
}
|
||||||
delete globalThis.sqlite3InitModuleState;
|
});
|
||||||
sIMS.debugModule('pre-js.js sqlite3InitModuleState =',sIMS);
|
delete globalThis.sqlite3InitModuleState;
|
||||||
|
sIMS.debugModule('pre-js.js sqlite3InitModuleState =',sIMS);
|
||||||
|
|
||||||
//#ifnot target=es6-bundler-friendly
|
/**
|
||||||
/**
|
This custom locateFile() tries to figure out where to load `path`
|
||||||
This custom locateFile() tries to figure out where to load `path`
|
from. The intent is to provide a way for foo/bar/X.js loaded from a
|
||||||
from. The intent is to provide a way for foo/bar/X.js loaded from a
|
Worker constructor or importScripts() to be able to resolve
|
||||||
Worker constructor or importScripts() to be able to resolve
|
foo/bar/X.wasm (in the latter case, with some help):
|
||||||
foo/bar/X.wasm (in the latter case, with some help):
|
|
||||||
|
|
||||||
1) If URL param named the same as `path` is set, it is returned.
|
1) If URL param named the same as `path` is set, it is returned.
|
||||||
|
|
||||||
2) If sqlite3InitModuleState.sqlite3Dir is set, then (thatName + path)
|
2) If sqlite3InitModuleState.sqlite3Dir is set, then (thatName + path)
|
||||||
is returned (it's assumed to end with '/').
|
is returned (it's assumed to end with '/').
|
||||||
|
|
||||||
3) If this code is running in the main UI thread AND it was loaded
|
3) If this code is running in the main UI thread AND it was loaded
|
||||||
from a SCRIPT tag, the directory part of that URL is used
|
from a SCRIPT tag, the directory part of that URL is used
|
||||||
as the prefix. (This form of resolution unfortunately does not
|
as the prefix. (This form of resolution unfortunately does not
|
||||||
function for scripts loaded via importScripts().)
|
function for scripts loaded via importScripts().)
|
||||||
|
|
||||||
4) If none of the above apply, (prefix+path) is returned.
|
4) If none of the above apply, (prefix+path) is returned.
|
||||||
|
|
||||||
None of the above apply in ES6 builds.
|
None of the above apply in ES6 builds, which uses a much simpler
|
||||||
*/
|
approach.
|
||||||
Module['locateFile'] = function(path, prefix) {
|
*/
|
||||||
|
Module['locateFile'] = function(path, prefix) {
|
||||||
//#if target=es6-module
|
//#if target=es6-module
|
||||||
return new URL(path, import.meta.url).href;
|
return new URL(path, import.meta.url).href;
|
||||||
//#else
|
//#else
|
||||||
'use strict';
|
'use strict';
|
||||||
let theFile;
|
let theFile;
|
||||||
const up = this.urlParams;
|
const up = this.urlParams;
|
||||||
if(up.has(path)){
|
if(up.has(path)){
|
||||||
theFile = up.get(path);
|
theFile = up.get(path);
|
||||||
}else if(this.sqlite3Dir){
|
}else if(this.sqlite3Dir){
|
||||||
theFile = this.sqlite3Dir + path;
|
theFile = this.sqlite3Dir + path;
|
||||||
}else if(this.scriptDir){
|
}else if(this.scriptDir){
|
||||||
theFile = this.scriptDir + path;
|
theFile = this.scriptDir + path;
|
||||||
}else{
|
}else{
|
||||||
theFile = prefix + path;
|
theFile = prefix + path;
|
||||||
}
|
}
|
||||||
this.debugModule(
|
this.debugModule(
|
||||||
"locateFile(",arguments[0], ',', arguments[1],")",
|
"locateFile(",arguments[0], ',', arguments[1],")",
|
||||||
'sqlite3InitModuleState.scriptDir =',this.scriptDir,
|
'sqlite3InitModuleState.scriptDir =',this.scriptDir,
|
||||||
'up.entries() =',Array.from(up.entries()),
|
'up.entries() =',Array.from(up.entries()),
|
||||||
"result =", theFile
|
"result =", theFile
|
||||||
);
|
);
|
||||||
return theFile;
|
return theFile;
|
||||||
//#endif target=es6-module
|
//#endif target=es6-module
|
||||||
}.bind(sIMS);
|
}.bind(sIMS);
|
||||||
//#endif ifnot target=es6-bundler-friendly
|
|
||||||
|
|
||||||
//#if custom-Module.instantiateWasm
|
//#if Module.instantiateWasm
|
||||||
//#if !wasmfs
|
//#ifnot wasmfs
|
||||||
/**
|
/**
|
||||||
Override Module.instantiateWasm().
|
Override Module.instantiateWasm().
|
||||||
|
|
||||||
Bug warning: a custom Module.instantiateWasm() does not work
|
A custom Module.instantiateWasm() does not work in WASMFS builds:
|
||||||
in WASMFS builds:
|
|
||||||
|
|
||||||
https://github.com/emscripten-core/emscripten/issues/17951
|
https://github.com/emscripten-core/emscripten/issues/17951
|
||||||
|
|
||||||
In such builds we must disable this.
|
In such builds we must disable this.
|
||||||
*/
|
*/
|
||||||
Module['instantiateWasm'
|
Module['instantiateWasm'] = function callee(imports,onSuccess){
|
||||||
/* This works, but it does not have the testing coverage in
|
const sims = this;
|
||||||
the wild which Emscripten's default impl does, so we'll
|
const uri = Module.locateFile(
|
||||||
save this option until we really need a custom
|
sims.wasmFilename, (
|
||||||
Module.instantiateWasm(). */
|
('undefined'===typeof scriptDirectory/*var defined by Emscripten glue*/)
|
||||||
] = function callee(imports,onSuccess){
|
? "" : scriptDirectory)
|
||||||
const sims = this;
|
);
|
||||||
const uri = Module.locateFile(
|
sims.debugModule("instantiateWasm() uri =", uri, "sIMS =",this);
|
||||||
sims.wasmFilename, (
|
const wfetch = ()=>fetch(uri, {credentials: 'same-origin'});
|
||||||
('undefined'===typeof scriptDirectory/*var defined by Emscripten glue*/)
|
const finalThen = (arg)=>{
|
||||||
? "" : scriptDirectory)
|
arg.imports = imports;
|
||||||
);
|
sims.instantiateWasm = arg /* used by sqlite3-api-prologue.c-pp.js */;
|
||||||
sims.debugModule("instantiateWasm() uri =", uri, "sIMS =",this);
|
onSuccess(arg.instance, arg.module);
|
||||||
const wfetch = ()=>fetch(uri, {credentials: 'same-origin'});
|
};
|
||||||
const loadWasm = WebAssembly.instantiateStreaming
|
const loadWasm = WebAssembly.instantiateStreaming
|
||||||
? async ()=>
|
? async ()=>
|
||||||
WebAssembly
|
WebAssembly
|
||||||
.instantiateStreaming(wfetch(), imports)
|
.instantiateStreaming(wfetch(), imports)
|
||||||
.then((arg)=>{
|
.then(finalThen)
|
||||||
arg.imports = imports;
|
: async ()=>// Safari < v15
|
||||||
sims.instantiateWasm = arg /* used by extern-post-js.c-pp.js */;
|
wfetch()
|
||||||
onSuccess(arg.instance, arg.module);
|
.then(response => response.arrayBuffer())
|
||||||
})
|
.then(bytes => WebAssembly.instantiate(bytes, imports))
|
||||||
: async ()=>// Safari < v15
|
.then(finalThen)
|
||||||
wfetch()
|
return loadWasm();
|
||||||
.then(response => response.arrayBuffer())
|
}.bind(sIMS);
|
||||||
.then(bytes => WebAssembly.instantiate(bytes, imports))
|
//#endif ifnot wasmfs
|
||||||
.then((arg)=>{
|
//#endif Module.instantiateWasm
|
||||||
arg.imports = imports;
|
})(Module);
|
||||||
sims.instantiateWasm = arg;
|
/* END FILE: api/pre-js.js. */
|
||||||
onSuccess(arg.instance, arg.module);
|
|
||||||
})
|
|
||||||
;
|
|
||||||
return loadWasm();
|
|
||||||
}.bind(sIMS);
|
|
||||||
/*
|
|
||||||
It is literally impossible to reliably get the name of _this_
|
|
||||||
script at runtime, so impossible to derive X.wasm from script name
|
|
||||||
X.js. Thus we need, at build-time, to redefine
|
|
||||||
sIMS.uri by appending it to a build-specific
|
|
||||||
copy of this file with the name of the wasm file. This is
|
|
||||||
apparently why Emscripten hard-codes the name of the wasm file
|
|
||||||
into their glue scripts.
|
|
||||||
*/
|
|
||||||
sIMS.wasmFilename = 'sqlite3.wasm';
|
|
||||||
//#endif !wasmfs
|
|
||||||
//#endif custom-Module.instantiateWasm
|
|
||||||
/*
|
|
||||||
END FILE: api/pre-js.js, noting that the build process may append
|
|
||||||
"sIMS.wasmFilename = x;" to this file, for some value of x.
|
|
||||||
*/
|
|
||||||
|
|||||||
@@ -211,10 +211,11 @@ const BuildDefs oBuildDefs = {
|
|||||||
/*
|
/*
|
||||||
** The canonical build, against which all others are compared and
|
** The canonical build, against which all others are compared and
|
||||||
** contrasted. This is the one we post downloads for.
|
** contrasted. This is the one we post downloads for.
|
||||||
|
**
|
||||||
|
** This one's zBaseName and zEnv MUST be non-NULL so it can be used
|
||||||
|
** as a default for all others
|
||||||
*/
|
*/
|
||||||
.vanilla = {
|
.vanilla = {
|
||||||
/* This one's zBaseName and zEnv MUST be non-NULL so it can be
|
|
||||||
** used as a default for all others. */
|
|
||||||
.zEmo = "🍦",
|
.zEmo = "🍦",
|
||||||
.zBaseName = "sqlite3",
|
.zBaseName = "sqlite3",
|
||||||
.zDotWasm = 0,
|
.zDotWasm = 0,
|
||||||
@@ -351,7 +352,7 @@ const BuildDefs oBuildDefs = {
|
|||||||
/* 64-bit bundler-friendly. */
|
/* 64-bit bundler-friendly. */
|
||||||
.bundler64 = {
|
.bundler64 = {
|
||||||
.zEmo = "📦",
|
.zEmo = "📦",
|
||||||
.zBaseName = "sqlite3-bundler-friendlyu",
|
.zBaseName = "sqlite3-bundler-friendly-64bit",
|
||||||
.zDotWasm = "sqlite3-64bit",
|
.zDotWasm = "sqlite3-64bit",
|
||||||
.zCmppD = "$(c-pp.D.bundler)",
|
.zCmppD = "$(c-pp.D.bundler)",
|
||||||
.zEmcc = 0,
|
.zEmcc = 0,
|
||||||
@@ -413,7 +414,7 @@ const BuildDefs oBuildDefs = {
|
|||||||
,
|
,
|
||||||
.zEnv = 0,
|
.zEnv = 0,
|
||||||
.zDeps = 0,
|
.zDeps = 0,
|
||||||
.zIfCond = 0,
|
.zIfCond = "ifeq (1,$(wasmfs.enable))",
|
||||||
.flags = CP_ALL | F_UNSUPPORTED | F_WASMFS | F_ESM
|
.flags = CP_ALL | F_UNSUPPORTED | F_WASMFS | F_ESM
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -565,7 +566,7 @@ static void mk_prologue(void){
|
|||||||
|
|
||||||
#if WASM_CUSTOM_INSTANTIATE
|
#if WASM_CUSTOM_INSTANTIATE
|
||||||
/* c-pp -D... flags for the custom instantiateWasm(). */
|
/* c-pp -D... flags for the custom instantiateWasm(). */
|
||||||
#define C_PP_D_CUSTOM_INSTANTIATE " -Dcustom-Module.instantiateWasm "
|
#define C_PP_D_CUSTOM_INSTANTIATE " -DModule.instantiateWasm "
|
||||||
#else
|
#else
|
||||||
#define C_PP_D_CUSTOM_INSTANTIATE
|
#define C_PP_D_CUSTOM_INSTANTIATE
|
||||||
#endif
|
#endif
|
||||||
@@ -588,8 +589,8 @@ static void mk_pre_post(char const *zBuildName, BuildDef const * pB){
|
|||||||
pf("pre-js.%s.js = $(dir.tmp)/pre-js.%s.js\n",
|
pf("pre-js.%s.js = $(dir.tmp)/pre-js.%s.js\n",
|
||||||
zBuildName, zBuildName);
|
zBuildName, zBuildName);
|
||||||
|
|
||||||
if( 0==WASM_CUSTOM_INSTANTIATE || !pB || !pB->zDotWasm ){
|
if( 0==WASM_CUSTOM_INSTANTIATE || !pB ){
|
||||||
pf("$(eval $(call b.eval.c-pp,"
|
pf("$(eval $(call b.c-pp.target,"
|
||||||
"%s,"
|
"%s,"
|
||||||
"$(pre-js.in.js),"
|
"$(pre-js.in.js),"
|
||||||
"$(pre-js.%s.js),"
|
"$(pre-js.%s.js),"
|
||||||
@@ -597,33 +598,36 @@ static void mk_pre_post(char const *zBuildName, BuildDef const * pB){
|
|||||||
"))",
|
"))",
|
||||||
zBuildName, zBuildName, zBuildName);
|
zBuildName, zBuildName, zBuildName);
|
||||||
}else{
|
}else{
|
||||||
assert( pB && pB->zDotWasm );
|
char const *zWasmFile = pB->zDotWasm
|
||||||
#if 0
|
? pB->zDotWasm
|
||||||
pf("$(error fix the bit near %s:%d)\n",
|
: pB->zBaseName;
|
||||||
__FILE__, __LINE__);
|
/*
|
||||||
#else
|
** See BuildDef::zDotWasm for _why_ we do this. _What_ we're doing
|
||||||
/* This part is needed for builds which have to rename the wasm file
|
** is generate $(pre-js.BUILDNAME.js) as above, but:
|
||||||
in zDotWasm so that the loader can find it. */
|
**
|
||||||
pf("pre-js.%s.intermediary = "
|
** 1) Add an extra -D... flag to activate the custom
|
||||||
"$(dir.tmp)/pre-js.%s.intermediary.js\n",
|
** Module.intantiateWasm() in the JS code.
|
||||||
zBuildName, zBuildName);
|
**
|
||||||
pf("$(eval $(call b.eval.c-pp,"
|
** 2) Amend the generated pre-js.js with the name of the WASM
|
||||||
|
** file which should be loaded. That tells the custom
|
||||||
|
** Module.instantiateWasm() to use that file instead of
|
||||||
|
** the default.
|
||||||
|
*/
|
||||||
|
pf("$(pre-js.%s.js): $(pre-js.in.js) $(MAKEFILE_LIST)", zBuildName);
|
||||||
|
if( pB->zDotWasm ){
|
||||||
|
pf(" $(dir.dout)/%s.wasm" /* This .wasm is from some other
|
||||||
|
build, so this may trigger a full
|
||||||
|
build of the reference copy. */,
|
||||||
|
pB->zDotWasm);
|
||||||
|
}
|
||||||
|
ps("");
|
||||||
|
pf("\t@$(call b.c-pp.shcmd,"
|
||||||
"%s,"
|
"%s,"
|
||||||
"$(pre-js.in.js),"
|
"$(pre-js.in.js),"
|
||||||
"$(pre-js.%s.intermediary),"
|
"$(pre-js.%s.js),"
|
||||||
C_PP_D_CUSTOM_INSTANTIATE "$(c-pp.D.%s)))\n",
|
"$(c-pp.D.%s)" C_PP_D_CUSTOM_INSTANTIATE
|
||||||
|
")\n",
|
||||||
zBuildName, zBuildName, zBuildName);
|
zBuildName, zBuildName, zBuildName);
|
||||||
pf("$(pre-js.%s.js): $(pre-js.%s.intermediary)"
|
|
||||||
" $(out.dout)/%s\n" /* from a different build */
|
|
||||||
"\t$(call b.cp,%s,cp $(pre-js.%s.intermediary) $@\n",
|
|
||||||
zBuildName, zBuildName,
|
|
||||||
pB->zDotWasm,
|
|
||||||
zBuildName, zBuildName);
|
|
||||||
pf("\t@echo 'sIMS.wasmFilename = \"%s\";' >> $@\n",
|
|
||||||
pB->zDotWasm
|
|
||||||
/* see api/pre-js.c-pp.js:Module.instantiateModule() */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ps("\n# --post-js=...");
|
ps("\n# --post-js=...");
|
||||||
@@ -635,7 +639,7 @@ static void mk_pre_post(char const *zBuildName, BuildDef const * pB){
|
|||||||
" $(dir.api)/post-js-footer.js\n",
|
" $(dir.api)/post-js-footer.js\n",
|
||||||
zBuildName, zBuildName);
|
zBuildName, zBuildName);
|
||||||
|
|
||||||
pf("$(eval $(call b.eval.c-pp,"
|
pf("$(eval $(call b.c-pp.target,"
|
||||||
"%s,"
|
"%s,"
|
||||||
"$(post-js.%s.in),"
|
"$(post-js.%s.in),"
|
||||||
"$(post-js.%s.js),"
|
"$(post-js.%s.js),"
|
||||||
@@ -649,11 +653,11 @@ static void mk_pre_post(char const *zBuildName, BuildDef const * pB){
|
|||||||
ps("\n# --extern-post-js=...");
|
ps("\n# --extern-post-js=...");
|
||||||
pf("extern-post-js.%s.js = $(dir.tmp)/extern-post-js.%s.js\n",
|
pf("extern-post-js.%s.js = $(dir.tmp)/extern-post-js.%s.js\n",
|
||||||
zBuildName, zBuildName);
|
zBuildName, zBuildName);
|
||||||
pf("$(eval $(call b.eval.c-pp,"
|
pf("$(eval $(call b.c-pp.target,"
|
||||||
"%s,"
|
"%s,"
|
||||||
"$(extern-post-js.in.js),"
|
"$(extern-post-js.in.js),"
|
||||||
"$(extern-post-js.%s.js),"
|
"$(extern-post-js.%s.js),"
|
||||||
C_PP_D_CUSTOM_INSTANTIATE "$(c-pp.D.%s)))\n",
|
"$(c-pp.D.%s)))\n",
|
||||||
zBuildName, zBuildName, zBuildName);
|
zBuildName, zBuildName, zBuildName);
|
||||||
|
|
||||||
ps("\n# --pre/post misc...");
|
ps("\n# --pre/post misc...");
|
||||||
@@ -699,7 +703,7 @@ static void emit_api_js(char const *zBuildName,
|
|||||||
"sqlite3-api.%s.js = $(dir.tmp)/sqlite3-api.%s.js\n",
|
"sqlite3-api.%s.js = $(dir.tmp)/sqlite3-api.%s.js\n",
|
||||||
zBuildName, zCmppD ? zCmppD: "",
|
zBuildName, zCmppD ? zCmppD: "",
|
||||||
zBuildName, zBuildName);
|
zBuildName, zBuildName);
|
||||||
pf("$(eval $(call b.eval.c-pp,"
|
pf("$(eval $(call b.c-pp.target,"
|
||||||
"%s,"
|
"%s,"
|
||||||
"$(sqlite3-api.jses),"
|
"$(sqlite3-api.jses),"
|
||||||
"$(sqlite3-api.%s.js),"
|
"$(sqlite3-api.%s.js),"
|
||||||
@@ -809,6 +813,17 @@ static void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
|
|||||||
|
|
||||||
{ /* Post-compilation transformations and copying to
|
{ /* Post-compilation transformations and copying to
|
||||||
$(dir.dout)... */
|
$(dir.dout)... */
|
||||||
|
|
||||||
|
/* Avoid a 3rd occurrence of the bug fixed by 65798c09a00662a3,
|
||||||
|
** which was (in two cases) caused by makefile refactoring and
|
||||||
|
** not recognized until after a release was made with the broken
|
||||||
|
** sqlite3-bundler-friendly.mjs (which is used by the npm
|
||||||
|
** subproject but is otherwise untested/unsupported): */
|
||||||
|
pf("\t@if grep -e '^ *importScripts(' $@; "
|
||||||
|
"then echo '$(logtag.%s) $(emo.bug)$(emo.fire): "
|
||||||
|
"bug fixed in 65798c09a00662a3 has re-appeared'; "
|
||||||
|
"exit 1; fi;\n", zBuildName);
|
||||||
|
|
||||||
if( (F_ESM & pB->flags) || (F_NODEJS & pB->flags) ){
|
if( (F_ESM & pB->flags) || (F_NODEJS & pB->flags) ){
|
||||||
pf("\t@$(call b.call.patch-export-default,1,%d,$(logtag.%s))\n",
|
pf("\t@$(call b.call.patch-export-default,1,%d,$(logtag.%s))\n",
|
||||||
(F_WASMFS & pB->flags) ? 1 : 0,
|
(F_WASMFS & pB->flags) ? 1 : 0,
|
||||||
@@ -824,11 +839,47 @@ static void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
|
|||||||
|
|
||||||
pf("\t@$(call b.do.wasm-opt,%s)\n", zBuildName);
|
pf("\t@$(call b.do.wasm-opt,%s)\n", zBuildName);
|
||||||
pf("\t@$(call b.strip-js-emcc-bindings,$(logtag.%s))\n", zBuildName);
|
pf("\t@$(call b.strip-js-emcc-bindings,$(logtag.%s))\n", zBuildName);
|
||||||
|
{ /* Replace @sqlite3.wasm@ with the proper wasm file name. */
|
||||||
|
char const *zWF = pB->zDotWasm ? pB->zDotWasm : pB->zBaseName;
|
||||||
|
pf("\t@echo '"
|
||||||
|
"$(logtag.%s) $(emo.disk) s/@sqlite.wasm@/%s.wasm/g"
|
||||||
|
"'; "
|
||||||
|
"sed -i -e 's/@sqlite3.wasm@/%s.wasm/g' $@ || exit\n",
|
||||||
|
zBuildName, zWF, zWF);
|
||||||
|
}
|
||||||
|
|
||||||
if( CP_JS & pB->flags && !(pB->zDotWasm/*handled below*/) ){
|
if( CP_JS & pB->flags ){
|
||||||
pf("\t@$(call b.cp,%s,$@,$(dir.dout))\n",
|
/*
|
||||||
zBuildName
|
** $(bin.emcc) will write out $@ and will create a like-named
|
||||||
);
|
** .wasm file. The resulting .wasm and .js/.mjs files are
|
||||||
|
** identical across all builds which have the same pB->zEmmc
|
||||||
|
** and/or pB->zEmccExtra.
|
||||||
|
**
|
||||||
|
** For the final deliverables we copy one or both of those
|
||||||
|
** js/wasm files to $(dir.dout) (the top-most build target
|
||||||
|
** dir). We only copy the wasm file for the "base-most" builds
|
||||||
|
** and recycle those for the rest of the builds. The catch is:
|
||||||
|
** that .wasm file name gets hard-coded into $@ so we need,
|
||||||
|
** for cases in which we "recycle" a .wasm file from another
|
||||||
|
** build, to patch the name to pB->zDotWasm when copying to
|
||||||
|
** $(dir.dout).
|
||||||
|
*/
|
||||||
|
if( pB->zDotWasm ){
|
||||||
|
pf("\t@echo '$(logtag.%s) $(emo.disk) "
|
||||||
|
"s/\"%s.wasm\"/\"%s.wasm\"/g "
|
||||||
|
"in $(dir.dout)/$(notdir $@)'; \\\n"
|
||||||
|
"sed"
|
||||||
|
" -e 's/\"%s.wasm\"/\"%s.wasm\"/g'"
|
||||||
|
" -e \"s/'%s.wasm'/'%s.wasm'/g\""
|
||||||
|
" $@ > $(dir.dout)/$(notdir $@);\n",
|
||||||
|
zBuildName,
|
||||||
|
zBaseName, pB->zDotWasm,
|
||||||
|
zBaseName, pB->zDotWasm,
|
||||||
|
zBaseName, pB->zDotWasm);
|
||||||
|
}else{
|
||||||
|
pf("\t@$(call b.cp,%s,$@,$(dir.dout))\n",
|
||||||
|
zBuildName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if( CP_WASM & pB->flags ){
|
if( CP_WASM & pB->flags ){
|
||||||
pf("\t@$(call b.cp,%s,$(basename $@).wasm,$(dir.dout))\n",
|
pf("\t@$(call b.cp,%s,$(basename $@).wasm,$(dir.dout))\n",
|
||||||
@@ -837,39 +888,7 @@ static void mk_lib_mode(const char *zBuildName, const BuildDef * pB){
|
|||||||
//pB->zEmo, zBuildName
|
//pB->zEmo, zBuildName
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
** $(bin.emcc) will write out $@ and will create a like-named
|
|
||||||
** .wasm file. The resulting .wasm and .js/.mjs files are
|
|
||||||
** identical across all builds which have the same pB->zEmccExtra.
|
|
||||||
**
|
|
||||||
** We copy one or both of those files to $(dir.dout) (the top-most
|
|
||||||
** build target dir), but: that .wasm file name gets hard-coded
|
|
||||||
** into $@ so we need, for some cases, to patch the name to
|
|
||||||
** pB->zDotWasm when copying to $(dir.dout).
|
|
||||||
*/
|
|
||||||
if( pB->zDotWasm && (CP_JS & pB->flags) ){
|
|
||||||
pf("\t@echo '$(logtag.%s) $(emo.disk) "
|
|
||||||
"s/\"%s.wasm\"/\"%s.wasm\"/g "
|
|
||||||
"in $(dir.dout)/$(notdir $@)'; \\\n"
|
|
||||||
"sed "
|
|
||||||
"-e 's/\"%s.wasm\"/\"%s.wasm\"/g' "
|
|
||||||
"-e \"s/'%s.wasm'/'%s.wasm'/g\" "
|
|
||||||
"$@ > $(dir.dout)/$(notdir $@)\n",
|
|
||||||
zBuildName,
|
|
||||||
zBaseName, pB->zDotWasm,
|
|
||||||
zBaseName, pB->zDotWasm,
|
|
||||||
zBaseName, pB->zDotWasm);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Avoid a 3rd occurrence of the bug fixed by 65798c09a00662a3,
|
|
||||||
** which was (in two cases) caused by makefile refactoring and
|
|
||||||
** not recognized until after a release was made with the broken
|
|
||||||
** sqlite3-bundler-friendly.mjs (which is used by the npm
|
|
||||||
** subproject but is otherwise untested/unsupported): */
|
|
||||||
pf("\t@if grep -e '^ *importScripts(' $@; "
|
|
||||||
"then echo '$(logtag.%s) $(emo.bug)$(emo.fire): "
|
|
||||||
"bug fixed in 65798c09a00662a3 has re-appeared'; "
|
|
||||||
"exit 1; fi;\n", zBuildName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pf("\t@$(call b.echo,%s,$(emo.done) done!)\n", zBuildName);
|
pf("\t@$(call b.echo,%s,$(emo.done) done!)\n", zBuildName);
|
||||||
|
|||||||
20
manifest
20
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Limit\sthe\scomplexity\sof\sa\sREGEXP\spattern\susing\sSQLITE_LIMIT_LIKE_PATTERN_LENGTH
|
C Reinstate\sthe\sModule.instantiateWasm()\soverride\sand\ssimplify\show\sthe\swasm\sfilename\sgets\sinjected\sinto\sthe\sJS\sfiles.
|
||||||
D 2025-09-26T15:38:52.279
|
D 2025-09-26T17:11:39.321
|
||||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
@@ -578,7 +578,7 @@ F ext/session/sqlite3session.c b3de195ce668cace9b324599bf6255a70290cbfb5451e826e
|
|||||||
F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
|
F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
|
||||||
F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
|
F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
|
||||||
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
|
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
|
||||||
F ext/wasm/GNUmakefile 3c9bab1b8bf5c816fbfe226927e27e72812a8bade09e96cced474e94741051ce
|
F ext/wasm/GNUmakefile e6ab3f66057c889ef384ba57240e1a6eb128d1b0dddb919aa3c6ec2a845f4117
|
||||||
F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
|
F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
|
||||||
F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
|
F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
|
||||||
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
|
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
|
||||||
@@ -591,11 +591,11 @@ F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-extras cb4fa8842c875b6ee99381523792975
|
|||||||
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b
|
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b
|
||||||
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
|
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
|
||||||
F ext/wasm/api/README.md f4c0d67caaee21a77b8938c30b5f79667bfc9d0c95d01b51df77ea35ee773884
|
F ext/wasm/api/README.md f4c0d67caaee21a77b8938c30b5f79667bfc9d0c95d01b51df77ea35ee773884
|
||||||
F ext/wasm/api/extern-post-js.c-pp.js c9d73ffbe40c06de302e9ee92ff21bfed53102ccff383fbc0026771aab4ad42c
|
F ext/wasm/api/extern-post-js.c-pp.js 8ed3cefbc2b73e2c16afae7bf64917361fdd26871f0d427d422cf48b7b2b40c5
|
||||||
F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41
|
F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41
|
||||||
F ext/wasm/api/post-js-footer.js 5bd7170b5e8ce7b62102702bbcf47ef7b3b49cd56ed40c043fd990aa715b74ee
|
F ext/wasm/api/post-js-footer.js 5bd7170b5e8ce7b62102702bbcf47ef7b3b49cd56ed40c043fd990aa715b74ee
|
||||||
F ext/wasm/api/post-js-header.js 79d078aec33d93b640a19c574b504d88bb2446432f38e2fbb3bb8e36da436e70
|
F ext/wasm/api/post-js-header.js 79d078aec33d93b640a19c574b504d88bb2446432f38e2fbb3bb8e36da436e70
|
||||||
F ext/wasm/api/pre-js.c-pp.js 1a02efe3ddb6ca929b32399b2761bf129912809ac59530a2cc7b4060f54bb2c4
|
F ext/wasm/api/pre-js.c-pp.js a03310c02d3bcf1414ea4a6a5e8070155184d56d01bf0f9e17d26162a4bdb1d0
|
||||||
F ext/wasm/api/sqlite3-api-cleanup.js a3d6b9e449aefbb8bba283c2ba9477e2333a0eeb94a7a26b5bf952736f65a6dd
|
F ext/wasm/api/sqlite3-api-cleanup.js a3d6b9e449aefbb8bba283c2ba9477e2333a0eeb94a7a26b5bf952736f65a6dd
|
||||||
F ext/wasm/api/sqlite3-api-glue.c-pp.js 12f5b36775fab1e7bf5385689fded2b2a9f77360562515e9849acb5e66602e2d
|
F ext/wasm/api/sqlite3-api-glue.c-pp.js 12f5b36775fab1e7bf5385689fded2b2a9f77360562515e9849acb5e66602e2d
|
||||||
F ext/wasm/api/sqlite3-api-oo1.c-pp.js db4c8ebb03bac60db32ce03f8c615b00f4e4ad53e7d5de5e63d2780cba052caa
|
F ext/wasm/api/sqlite3-api-oo1.c-pp.js db4c8ebb03bac60db32ce03f8c615b00f4e4ad53e7d5de5e63d2780cba052caa
|
||||||
@@ -634,7 +634,7 @@ F ext/wasm/index.html 1b329fb63e057c02a17ce178308d6b06aac62d92af7dd6d821fb0e183e
|
|||||||
F ext/wasm/jaccwabyt/jaccwabyt.js bbac67bc7a79dca34afe6215fd16b27768d84e22273507206f888c117e2ede7d
|
F ext/wasm/jaccwabyt/jaccwabyt.js bbac67bc7a79dca34afe6215fd16b27768d84e22273507206f888c117e2ede7d
|
||||||
F ext/wasm/jaccwabyt/jaccwabyt.md 167fc0b624c9bc2c477846e336de9403842d81b1a24fc4d3b24317cb9eba734f
|
F ext/wasm/jaccwabyt/jaccwabyt.md 167fc0b624c9bc2c477846e336de9403842d81b1a24fc4d3b24317cb9eba734f
|
||||||
F ext/wasm/mkdist.sh 29f8a37a7aba41fa5df8e89b1fab02b83b35c43473c5cf808584872e022514b8 x
|
F ext/wasm/mkdist.sh 29f8a37a7aba41fa5df8e89b1fab02b83b35c43473c5cf808584872e022514b8 x
|
||||||
F ext/wasm/mkwasmbuilds.c d8b5e332b53a9ccbad937a3dbb59d850cbef91d67efa9c326feac0430ee90fbb
|
F ext/wasm/mkwasmbuilds.c 97c628e27c97aa23b9a5d2fec1b59af34cc002441780aa909b2a87dd61b8c5fd
|
||||||
F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
|
F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
|
||||||
F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
|
F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
|
||||||
F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
|
F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
|
||||||
@@ -2169,8 +2169,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
|
|||||||
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
||||||
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
|
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P 911c745f88c0ee8569e67bbcbbab034264f8c981b505aadac3ce7289486a1a68
|
P 869c968569b09d05a5b7d587d8fddb3b4611daf7467dc157701e5dc6c9608606
|
||||||
R 828f930d9062f970a087f3cd9db90d9c
|
R b3633c338a6e359cda01fed061e2f038
|
||||||
U drh
|
U stephan
|
||||||
Z 512ef129556a7f8a07d748aea238fc85
|
Z 287871c6cf5545c1ebf0563c19172d63
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
869c968569b09d05a5b7d587d8fddb3b4611daf7467dc157701e5dc6c9608606
|
e878ffd2eaa87e2978c44fcd03a1eb6114a9ae31e31101898d682f43cf81000f
|
||||||
|
|||||||
Reference in New Issue
Block a user