From: stephan Date: Sat, 28 Jan 2023 04:20:46 +0000 (+0000) Subject: Add JS bundler-friendly JS build. Minor test code cleanups. X-Git-Tag: version-3.41.0~82 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=65f7942d0678a56f788d54a636c9c30ed63b5ee6;p=thirdparty%2Fsqlite.git Add JS bundler-friendly JS build. Minor test code cleanups. FossilOrigin-Name: 24d3a53dea5e596230558e233cbbd9d0288b4c394cd5ea7b650fd99bff4cde2e --- 65f7942d0678a56f788d54a636c9c30ed63b5ee6 diff --cc ext/wasm/GNUmakefile index eef6902d62,143ee8b9f1..78e34eb192 --- a/ext/wasm/GNUmakefile +++ b/ext/wasm/GNUmakefile @@@ -57,6 -66,6 +66,13 @@@ ifeq (,$(emcc.version) else $(info using emcc version [$(emcc.version)]) endif ++emcc.version := $(shell "$(emcc.bin)" --version | sed -n 1p \ ++ | sed -e 's/^.* \([3-9][^ ]*\) .*$$/\1/;') ++ifeq (,$(emcc.version)) ++ $(warning Cannot determine emcc version. This might unduly impact build flags.) ++else ++ $(info using emcc version [$(emcc.version)]) ++endif wasm-strip ?= $(shell which wasm-strip 2>/dev/null) ifeq (,$(filter clean,$(MAKECMDGOALS))) @@@ -233,8 -242,9 +249,17 @@@ $(2): $(1) $$(MAKEFILE) $$(bin.c-pp $$(bin.c-pp) -f $(1) -o $$@ $(3) CLEAN_FILES += $(2) endef --c-pp.D.vanilla ?= --c-pp.D.esm ?= -Dtarget=es6-module -c-pp.D.bundler-friendly ?= -Dtarget=es6-module -Dtarget=es6-bundler-friendly ++c-pp.D.vanilla := ++c-pp.D.esm := -Dtarget=es6-module ++c-pp.D.bundler-friendly := $(c-pp.D.esm) -Dtarget=es6-bundler-friendly ++# The various -D... values used by the sources include: ++# ++# -Dtarget=es6-module: intended for plain ESM module build. ++# ++# -Dtarget=es6-module -Dtarget=es6-bundler-friendly: intended for ++# "bundler-friendly" ESM module build. These have some restrictions ++# on how URL() objects are constructed in some contexts. ++# # /end C-PP.FILTER ######################################################################## diff --cc ext/wasm/api/extern-post-js.c-pp.js index 2258697944,691ad76858..a577a63e1e --- a/ext/wasm/api/extern-post-js.c-pp.js +++ b/ext/wasm/api/extern-post-js.c-pp.js @@@ -9,7 -9,7 +9,7 @@@ Emscripten-generated module init scope, in the current global scope. */ //#if target=es6-module --const toExportForES6 = ++const toExportForESM = //#endif (function(){ /** @@@ -45,14 -45,23 +45,14 @@@ moduleScript: self?.document?.currentScript, isWorker: ('undefined' !== typeof WorkerGlobalScope), location: self.location, - urlParams: new URL(self.location.href).searchParams - urlParams: -//#if target=es6-bundler-friendly - undefined -//#else - new URL(self.location.href).searchParams -//#endif ++ urlParams: new URL(self.location.href).searchParams }); initModuleState.debugModule = - (new URL(self.location.href).searchParams).has('sqlite3.debugModule') -//#if target=es6-bundler-friendly - ()=>{} -//#else - (new URL(self.location.href).searchParams).has('sqlite3.debugModule') ++ initModuleState.urlParams.has('sqlite3.debugModule') ? (...args)=>console.warn('sqlite3.debugModule:',...args) : ()=>{}; -//#endif - if(initModuleState.urlParams && initModuleState.urlParams.has('sqlite3.dir')){ + if(initModuleState.urlParams.has('sqlite3.dir')){ initModuleState.sqlite3Dir = initModuleState.urlParams.get('sqlite3.dir') +'/'; }else if(initModuleState.moduleScript){ const li = initModuleState.moduleScript.src.split('/'); @@@ -105,6 -114,10 +105,10 @@@ document?.currentScript?.src); } } + //#ifnot target=es6-module + // Emscripten does not inject these module-loader bits in ES6 module -// build and including them here breaks JS bundlers, so elide them -// from ES6 builds. ++// builds and including them here breaks JS bundlers, so elide them ++// from ESM builds. /* Replace the various module exports performed by the Emscripten glue... */ if (typeof exports === 'object' && typeof module === 'object'){ @@@ -117,5 -131,5 +122,5 @@@ return self.sqlite3InitModule /* required for ESM */; })(); //#if target=es6-module --export default toExportForES6; ++export default toExportForESM; //#endif diff --cc ext/wasm/api/pre-js.c-pp.js index 5d8e58864b,c27c2fe0dc..a25c7ce774 --- a/ext/wasm/api/pre-js.c-pp.js +++ b/ext/wasm/api/pre-js.c-pp.js @@@ -53,8 -55,9 +55,9 @@@ Module['locateFile'] = function(path, p "result =", theFile ); return theFile; - //#endif /* SQLITE_JS_EMS */ -//#endif //target=es6-module ++//#endif target=es6-module }.bind(sqlite3InitModuleState); -//#endif //ifnot target=es6-bundler-friendly ++//#endif ifnot target=es6-bundler-friendly /** Bug warning: a custom Module.instantiateWasm() does not work diff --cc ext/wasm/tester1-worker.html index a9c12d72c5,a9c12d72c5..03e1f02b02 --- a/ext/wasm/tester1-worker.html +++ b/ext/wasm/tester1-worker.html @@@ -11,8 -11,8 +11,12 @@@

sqlite3 tester #1: Worker thread

--
See tester1.html -- for the UI-thread variant.
++
Variants: ++ conventional UI thread, ++ conventional worker, ++ ESM in UI thread, ++ ESM worker ++
diff --cc ext/wasm/tester1.c-pp.html index 535e58962d,535e58962d..bbdd8b2233 --- a/ext/wasm/tester1.c-pp.html +++ b/ext/wasm/tester1.c-pp.html @@@ -16,8 -16,8 +16,12 @@@ UI threa

--
See tester1-worker.html -- for the Worker-thread variant.
++
Variants: ++ conventional UI thread, ++ conventional worker, ++ ESM in UI thread, ++ ESM worker ++
diff --cc ext/wasm/tester1.c-pp.js index 7f5de5166c,7f5de5166c..dca5331370 --- a/ext/wasm/tester1.c-pp.js +++ b/ext/wasm/tester1.c-pp.js @@@ -1192,13 -1192,13 +1192,13 @@@ self.sqlite3InitModule = sqlite3InitMod rc = capi.sqlite3_db_status(this.db, capi.SQLITE_DBSTATUS_LOOKASIDE_USED, pCur, pHi, 0); T.assert(0===rc); -- if(wasm.peek32(pCur)){ -- warn("Cannot test db_config(SQLITE_DBCONFIG_LOOKASIDE)", -- "while lookaside memory is in use."); -- }else{ ++ if(!wasm.peek32(pCur)){ rc = capi.sqlite3_db_config(this.db, capi.SQLITE_DBCONFIG_LOOKASIDE, 0, 4096, 12); T.assert(0 === rc); ++ }else{ ++ console.debug("Cannot test db_config(SQLITE_DBCONFIG_LOOKASIDE)", ++ "while lookaside memory is in use."); } wasm.poke32([pCur, pHi], 0); let [vCur, vHi] = wasm.peek32(pCur, pHi); diff --cc manifest index 4b7e12a3aa,8335468752..5c62a39f76 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Fix\scompiler\swarning\sin\sbase85.c. - D 2023-01-27T23:10:10.479 -C Update\sext/wasm/README-dist.txt\sfor\sthe\sbundler-friendly\sbuild. -D 2023-01-27T20:25:39.859 ++C Add\sJS\sbundler-friendly\sJS\sbuild.\sMinor\stest\scode\scleanups. ++D 2023-01-28T04:20:46.205 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -466,33 -466,33 +466,33 @@@ F ext/userauth/sqlite3userauth.h 7f3ea8 F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04 F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c - F ext/wasm/GNUmakefile 217dcb2e3058d7554c46a6e8c89fdb28006c2278206e3e9572ce52030736a5a6 - F ext/wasm/README-dist.txt dab111337028af58ec11cb35c2e1a82398217c399c7499fefab0509a0499a5d7 -F ext/wasm/GNUmakefile 31cf62436f306eed8c8aa66991653395f62e52af7ad21a0de02f7d780cb8c398 ++F ext/wasm/GNUmakefile 8d82b51a23f9c84c770abd72f18d95a95044a03a216e0246ebd1b3668619c77e + F ext/wasm/README-dist.txt 4a1db3677d0341a12434d1fd6c97aae2f96785d734641407a201b719f5d94f44 F ext/wasm/README.md ef39861aa21632fdbca0bdd469f78f0096f6449a720f3f39642594af503030e9 F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api d6a5078f48a5301ed17b9a30331075d9b2506e1360c1f0dee0c7816c10acd9ab F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287 F ext/wasm/api/README.md 77a2f1f2fc60a35def7455dffc8d3f2c56385d6ac5c6cecc60fa938252ea2c54 - F ext/wasm/api/extern-post-js.c-pp.js 8923f76c3d2213159e12d641dc750523ead5c848185dc4996fae5cc12397f88d -F ext/wasm/api/extern-post-js.c-pp.js ea549ffcdd3f116de5b4cc08a428e0a91052c341b51b37f158747285f9ef2fe8 ++F ext/wasm/api/extern-post-js.c-pp.js 44a3a169f55a8dba42cf688954b2625b9b9e6174f2ff02d4918a2ca8c3beab7f F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41 F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08902f15c34720ee4a1 F ext/wasm/api/post-js-header.js 47b6b281f39ad59fa6e8b658308cd98ea292c286a68407b35ff3ed9cfd281a62 - F ext/wasm/api/pre-js.c-pp.js f060b108d0960798c0aa0688392a3c1a58a2e3c942f3560de1c4a7a1aa7af433 -F ext/wasm/api/pre-js.c-pp.js 86b2909e07690792ecf14892e6ee4d2ea0b2d6bf8567ad3d549a8cc2e30828a0 ++F ext/wasm/api/pre-js.c-pp.js 9ece5de1bb0509f0a8a360712fcc9c1291b9516c0be5bd66acedd6edbcec37a1 F ext/wasm/api/sqlite3-api-cleanup.js 680d5ccfff54459db136a49b2199d9f879c8405d9c99af1dda0cc5e7c29056f4 F ext/wasm/api/sqlite3-api-glue.js 0a93e58aabf52b32ddccbb107a1fd4552f2505e103ab63396c4d0a0743704785 - F ext/wasm/api/sqlite3-api-oo1.js e9fba119e9b1716b3f731838ed1ab18741401bcf4c51d2a4a6e9d1d23cf9d771 + F ext/wasm/api/sqlite3-api-oo1.js a3892fd79070d8c947205d8b90d8218cdb12e7fd5027dced5805dd387b590a36 F ext/wasm/api/sqlite3-api-prologue.js 69a74f2777aaafafc07ad2c922674fe3197ef63c921a3262b4772f937e7eb14a F ext/wasm/api/sqlite3-api-worker1.js c462199c40358f00f93e326206bddc756c52b93f2cb60ffb63f54fe4f9a9e977 F ext/wasm/api/sqlite3-license-version-header.js a661182fc93fc2cf212dfd0b987f8e138a3ac98f850b1112e29b5fbdaecc87c3 F ext/wasm/api/sqlite3-opfs-async-proxy.js 7795b84b66a7a8dedc791340709b310bb497c3c72a80bef364fa2a58e2ddae3f F ext/wasm/api/sqlite3-v-helper.js 6f6c3e390a72e08b0a5b16a0d567d7af3c04d172831853a29d72a6f1dd40ff24 - F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 50e4f6103dc65556e3e040f9e80eb8f14bfc6f979fa018952859f7755e201b27 -F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js bae9c4c40991a550450bb89dc34e6e1e1e875ae230ccdce3dbb99515517d3361 ++F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js a10bdc9695dcf453e120970a5de8a3e61db4e4047d0a7cc5a6d63dfe7ae87f4e F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9 F ext/wasm/api/sqlite3-wasm.c 76625a70937a8522d014ef686c32db5b53a3ee61850323f5c601d2ac39fe52fe - F ext/wasm/api/sqlite3-worker1-promiser.js 0c7a9826dbf82a5ed4e4f7bf7816e825a52aff253afbf3350431f5773faf0e4b - F ext/wasm/api/sqlite3-worker1.js 9d3d3dfc70bff8998c1d8ff6d881cf1c3d52468d635417f02796151fe6b31cd7 + F ext/wasm/api/sqlite3-worker1-promiser.js f10c3ecd9df06f6320073c2ce230a7ed7c56034d8b88c1e57095f2a97faf423a + F ext/wasm/api/sqlite3-worker1.js 77b3835192469e9da23926ec8f78fb0b114a51d048dc54388709ac22b5c5f0a0 F ext/wasm/batch-runner.html 4deeed44fe41496dc6898d9fb17938ea3291f40f4bfb977e29d0cef96fbbe4c8 F ext/wasm/batch-runner.js 0dad6a02ad796f1003d3b7048947d275c4d6277f63767b8e685c27df8fdac93e - F ext/wasm/c-pp.c 92285f7bce67ed7b7020b40fde8ed0982c442b63dc33df9dfd4b658d4a6c0779 + F ext/wasm/c-pp.c 6d80d8569d85713effe8b0818a3cf51dc779e3f0bf8dc88771b8998552ee25b4 F ext/wasm/common/SqliteTestUtil.js d8bf97ecb0705a2299765c8fc9e11b1a5ac7f10988bbf375a6558b7ca287067b F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15 F ext/wasm/common/testing.css 0ff15602a3ab2bad8aef2c3bd120c7ee3fd1c2054ad2ace7e214187ae68d926f @@@ -528,9 -528,9 +528,9 @@@ F ext/wasm/sql/000-mandelbrot.sql 77533 F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5 F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555e685bce3da8c3f F ext/wasm/test-opfs-vfs.js f09266873e1a34d9bdb6d3981ec8c9e382f31f215c9fd2f9016d2394b8ae9b7b --F ext/wasm/tester1-worker.html d43f3c131d88f10d00aff3e328fed13c858d674ea2ff1ff90225506137f85aa9 --F ext/wasm/tester1.c-pp.html d34bef3d48e5cbc1c7c06882ad240fec49bf88f5f65696cc2c72c416933aa406 --F ext/wasm/tester1.c-pp.js 7786fa3bdf074be8935e3a77b1ca135fd36ef6f87823c0695deaca585b133d06 ++F ext/wasm/tester1-worker.html 258d08f1ba9cc2d455958751e26be833893cf9ff7853e9436e593e1f778a386b ++F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2 ++F ext/wasm/tester1.c-pp.js f199ef496aec40a7ddedcc84f996117c911eac36d377913993d3f0261f9427ac F ext/wasm/tests/opfs/concurrency/index.html 86d8ac435074d1e7007b91105f4897f368c165e8cecb6a9aa3d81f5cf5dcbe70 F ext/wasm/tests/opfs/concurrency/test.js a98016113eaf71e81ddbf71655aa29b0fed9a8b79a3cdd3620d1658eb1cc9a5d F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2 @@@ -2044,8 -2044,8 +2044,9 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P e446c8b4aa2ffe075f9c289c771d62a414661c3ffe6abae5649c50af8e32fab6 - R d679b1424ddaeb09fc6eeb6c565e2751 - U drh - Z 0e1eac878e4ebdd2f0ed91103111d8aa -P 792f43209c4b6e85386b6b3906814b7f2ad310d50ba563b3fd1cb37e55adf8db -R 6dd48572fe63ddeb1a6c689b0b2a68d4 ++P bd9613fd63193bd6b33798d83f0ef21987ba468b53d13a25a31cb9e9e5f20562 6a5c4f6b19aa0704efe7f789102f757a1ed05d6542f37c7aa37a4439783944a3 ++R 7e285c57f9c962c0e3cd104712b20885 ++T +closed 6a5c4f6b19aa0704efe7f789102f757a1ed05d6542f37c7aa37a4439783944a3 Closed\sby\sintegrate-merge. + U stephan -Z 5f5447f2e7e7b095c0a2cbaeda82b72d ++Z 04a00083266e19e010eadc8bb14898d9 # Remove this line to create a well-formed Fossil manifest. diff --cc manifest.uuid index fea530843c,ccc5178417..9b1cb2f613 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - bd9613fd63193bd6b33798d83f0ef21987ba468b53d13a25a31cb9e9e5f20562 -6a5c4f6b19aa0704efe7f789102f757a1ed05d6542f37c7aa37a4439783944a3 ++24d3a53dea5e596230558e233cbbd9d0288b4c394cd5ea7b650fd99bff4cde2e