aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/wasm/api/extern-post-js.c-pp.js13
-rw-r--r--ext/wasm/api/post-js-footer.js2
-rw-r--r--ext/wasm/api/post-js-header.js1
-rw-r--r--ext/wasm/api/sqlite3-api-cleanup.js3
-rw-r--r--ext/wasm/dist.make3
-rw-r--r--manifest28
-rw-r--r--manifest.uuid2
-rw-r--r--src/pager.c2
-rw-r--r--tool/stripccomments.c19
9 files changed, 53 insertions, 20 deletions
diff --git a/ext/wasm/api/extern-post-js.c-pp.js b/ext/wasm/api/extern-post-js.c-pp.js
index 63e55051c..c54e1f082 100644
--- a/ext/wasm/api/extern-post-js.c-pp.js
+++ b/ext/wasm/api/extern-post-js.c-pp.js
@@ -12,6 +12,7 @@
const toExportForESM =
//#endif
(function(){
+ //console.warn("this is extern-post-js");
/**
In order to hide the sqlite3InitModule()'s resulting
Emscripten module from downstream clients (and simplify our
@@ -62,6 +63,17 @@ const toExportForESM =
globalThis.sqlite3InitModule = function ff(...args){
//console.warn("Using replaced sqlite3InitModule()",globalThis.location);
return originalInit(...args).then((EmscriptenModule)=>{
+ //console.warn("originalInit() then() arg =",EmscriptenModule);
+ //console.warn("initModuleState =",initModuleState);
+ if( EmscriptenModule.postRun && EmscriptenModule.postRun.length ){
+ /* Emscripten 4.0.0 changes the order in which our Module.postRun handler
+ runs. In 3.x postRun would have run by now, and our code relies
+ heavily on that order, so we'll work around that difference here.
+
+ https://github.com/emscripten-core/emscripten/issues/23420 */
+ //console.warn("Emscripten did not run postRun: running them now!");
+ EmscriptenModule.postRun.shift()(EmscriptenModule);
+ }
//#if wasmfs
if('undefined'!==typeof WorkerGlobalScope &&
EmscriptenModule['ENVIRONMENT_IS_PTHREAD']){
@@ -74,7 +86,6 @@ const toExportForESM =
return EmscriptenModule;
}
//#endif
- //console.warn("sqlite3InitModule() returning sqlite3 object.");
const s = EmscriptenModule.sqlite3;
s.scriptInfo = initModuleState;
//console.warn("sqlite3.scriptInfo =",s.scriptInfo);
diff --git a/ext/wasm/api/post-js-footer.js b/ext/wasm/api/post-js-footer.js
index 58882cbd9..d9bb1eab0 100644
--- a/ext/wasm/api/post-js-footer.js
+++ b/ext/wasm/api/post-js-footer.js
@@ -1,4 +1,6 @@
/* The current function scope was opened via post-js-header.js, which
gets prepended to this at build-time. This file closes that
scope. */
+//console.warn("This is the end of the Module.postRun handler.");
})/*postRun.push(...)*/;
+//console.warn("This is the end of the setup of the (pending) Module.postRun");
diff --git a/ext/wasm/api/post-js-header.js b/ext/wasm/api/post-js-header.js
index 7fd82a7d6..d0778b980 100644
--- a/ext/wasm/api/post-js-header.js
+++ b/ext/wasm/api/post-js-header.js
@@ -10,6 +10,7 @@
if(!Module.postRun) Module.postRun = [];
Module.postRun.push(function(Module/*the Emscripten-style module object*/){
'use strict';
+ //console.warn("This is the start of the Module.postRun handler.");
/* This function will contain at least the following:
- post-js-header.js (this file)
diff --git a/ext/wasm/api/sqlite3-api-cleanup.js b/ext/wasm/api/sqlite3-api-cleanup.js
index 65dbb4eb6..7fb29e648 100644
--- a/ext/wasm/api/sqlite3-api-cleanup.js
+++ b/ext/wasm/api/sqlite3-api-cleanup.js
@@ -14,6 +14,9 @@
intended to be appended after all other sqlite3-api-*.js files so
that it can finalize any setup and clean up any global symbols
temporarily used for setting up the API's various subsystems.
+
+ In Emscripten builds it's run in the context of a Module.postRun
+ handler.
*/
'use strict';
if('undefined' !== typeof Module){ // presumably an Emscripten build
diff --git a/ext/wasm/dist.make b/ext/wasm/dist.make
index 10c64e16d..60699ff5c 100644
--- a/ext/wasm/dist.make
+++ b/ext/wasm/dist.make
@@ -104,7 +104,8 @@ STRIP_K2.js := $(sqlite3.js) $(sqlite3.mjs) \
# to know that it's in a regex or string literal. Because of that,
# comment-stripping is currently disabled, which means the builds will
# be significantly larger than before.
-apply_comment_stripper := false
+#apply_comment_stripper := false
+apply_comment_stripper := true
# ^^^ shell command true or false
dist: \
$(bin.stripccomments) $(bin.version-info) \
diff --git a/manifest b/manifest
index 6da9fb0a2..f9dbf25f7 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C When\schoosing\sbetween\stwo\sindexes\swith\sthe\ssame\scost,\spick\sthe\sone\swith\sthe\nsmaller\spredicted\snumber\sof\sbytes\sper\srow.
-D 2025-01-15T20:23:22.162
+C When\stwo\sindexes\shave\sthe\ssame\scost,\suse\sthe\snarrower\sone\s(the\sone\swith\sthe\nsmaller\saverage\son-disk\srow\swidth).
+D 2025-01-16T01:47:03.189
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -631,12 +631,12 @@ F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-extras fe40d6d758646e38f8b15f709044951
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
F ext/wasm/api/README.md 34fe11466f9c1d81b10a0469e1114e5f1c5a6365c73d80a1a6ca639a1a358b73
-F ext/wasm/api/extern-post-js.c-pp.js c4154a7f90c2d7e51fd6738273908152036c3457fdc0b6523f1be3ef51105aac
+F ext/wasm/api/extern-post-js.c-pp.js 13b1202f2815165a063ea41cc8450e0dc1505bbbe0be2fdac439b30b8cbdaacd
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 04dc12c3edd666b64a1b4ef3b6690c88dcc653f26451fd4734472d8e29c1c122
+F ext/wasm/api/post-js-footer.js 6137d9d3dea0f3868d03bca058dc662f01848f81ab6bf940ffaa10a75069d709
+F ext/wasm/api/post-js-header.js bd91458bd0763c1bdb382dc4e8ac7b52e2d7337adc3a2f07f454631b64f12e82
F ext/wasm/api/pre-js.c-pp.js a614a2c82b12c4d96d8e3ba77330329efc53c4d56a8a7e60ade900f341866cfb
-F ext/wasm/api/sqlite3-api-cleanup.js d235ad237df6954145404305040991c72ef8b1881715d2a650dda7b3c2576d0e
+F ext/wasm/api/sqlite3-api-cleanup.js 3ac1786e461ada63033143be8c3b00b26b939540661f3e839515bb92f2e35359
F ext/wasm/api/sqlite3-api-glue.c-pp.js fb6dbfe692cc23000a65a4cd95a1a47ed5eb592dc9d8b55363b3c2952a787244
F ext/wasm/api/sqlite3-api-oo1.c-pp.js f3a8e2004c6625d17946c11f2fb32008be78bc5207bf746fc77d59848813225f
F ext/wasm/api/sqlite3-api-prologue.js 6f1257e04885632ed9f44d43aba200b86e0bc16709ffdba29abbbeb1bc8e8b76
@@ -668,7 +668,7 @@ F ext/wasm/demo-worker1-promiser.c-pp.html 635cf90685805e21772a5f7a35d1ace80f98a
F ext/wasm/demo-worker1-promiser.c-pp.js fcc628cb42fcfaf07d250477801de1e6deb1e319d003976612a0db8d76b9fccc
F ext/wasm/demo-worker1.html 2c178c1890a2beb5a5fecb1453e796d067a4b8d3d2a04d65ca2eb1ab2c68ef5d
F ext/wasm/demo-worker1.js 836bece8615b17b1b572584f7b15912236a5947fe8c68b98d2737d7e287447ef
-F ext/wasm/dist.make a5bed3b6e6d6a644e1cd416f18b799b956765333130f948d1065872a7f1ce199
+F ext/wasm/dist.make 92ef4ffe33022a50f92d602acabad10bd8dd91759f3eb7df27fc6d7d37072b96
F ext/wasm/example_extra_init.c 2347cd69d19d839ef4e5e77b7855103a7fe3ef2af86f2e8c95839afd8b05862f
F ext/wasm/fiddle.make d4969f0322a582c57a22ce3541f10a5b09a609d14eab32891f613f43b3c14d8b
F ext/wasm/fiddle/fiddle-worker.js 850e66fce39b89d59e161d1abac43a181a4caa89ddeea162765d660277cd84ce
@@ -765,7 +765,7 @@ F src/os_setup.h 6011ad7af5db4e05155f385eb3a9b4470688de6f65d6166b8956e58a3d87210
F src/os_unix.c d2edbd92b07a3f778c2defa8a2e9d75acceb6267bda56948c41e8cdda65224d6
F src/os_win.c 49c7725b500f5867e8360e75eeb30f9d70b62fa1f05c8a101da627210578df32
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
-F src/pager.c 2fdd489447aa6bb0f672973bacb801ced92225ca9a1c874ed9b856d2741dc54e
+F src/pager.c 3a1c4e7f69af482e33c8cba8a75afe0dda0ea6391240adac22b040ce1bdeef44
F src/pager.h 6137149346e6c8a3ddc1eeb40aee46381e9bc8b0fcc6dda8a1efde993c2275b8
F src/parse.y dcf45a81b61223ac93e61fdfe9b22d635dd371c446e8222634d90aa37e25e5f6
F src/pcache.c 588cc3c5ccaaadde689ed35ce5c5c891a1f7b1f4d1f56f6cf0143b74d8ee6484
@@ -2193,7 +2193,7 @@ F tool/src-verify.c d00f93263aa2fa6ba0cba0106d95458e6effb94fdb5fc634f56834f90c05
F tool/srcck1.c 371de5363b70154012955544f86fdee8f6e5326f
F tool/srctree-check.tcl 1f1f505835a4beca64c1751a7ebec5c41a1ddf22b1e80481345b95059eef6583
F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
-F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37
+F tool/stripccomments.c dfe9cc03cf87728ac9836be30763f8aa52b82caca0780b3d3f3572e4643b01d3
F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
F tool/symbols.sh 1612bd947750e21e7b47befad5f6b3825b06cce0705441f903bf35ced65ae9b9
F tool/tclConfigShToAutoDef.sh 44ec55046d86a3febb2cb3e099399b41794e80e9cd138eee7b9b016f819e882b x
@@ -2205,11 +2205,9 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P dbc2d6a244fdafd208239894dbdd8f139db6ca20dd8f1ed00d87028e0cb60570
-R b4fed608ae80dc9fc4a5de4904cc7901
-T *branch * consider-idx-width
-T *sym-consider-idx-width *
-T -sym-trunk *
+P 113078d555eaf740666680562ebbb04f7d823b72e8b2d553627e54ab3d7bf653 d4bd0d4214551f88f248698fefc821575b722ce5c194d0b3796f572e4704f641
+R 67bf1f1ea7b98f52d11babfcef31079b
+T +closed d4bd0d4214551f88f248698fefc821575b722ce5c194d0b3796f572e4704f641
U drh
-Z dfdb92c016b02704a64b8a1056c8f180
+Z e2e745138fe18758760902106f28615a
# Remove this line to create a well-formed Fossil manifest.
diff --git a/manifest.uuid b/manifest.uuid
index a279b0e28..1fb039b28 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-d4bd0d4214551f88f248698fefc821575b722ce5c194d0b3796f572e4704f641
+398559678f2b9a65b245ed73b4d512c4fccc69d42b5a6a1c1b7755a80b69d073
diff --git a/src/pager.c b/src/pager.c
index e2dbbeae3..ecec892b4 100644
--- a/src/pager.c
+++ b/src/pager.c
@@ -808,7 +808,7 @@ int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno){
if( pPager->pWal ){
u32 iRead = 0;
(void)sqlite3WalFindFrame(pPager->pWal, pgno, &iRead);
- return iRead==0; /* Condition (4) */
+ if( iRead ) return 0; /* Case (4) */
}
#endif
assert( pPager->fd->pMethods->xDeviceCharacteristics!=0 );
diff --git a/tool/stripccomments.c b/tool/stripccomments.c
index 53933c013..1bdb5c6b8 100644
--- a/tool/stripccomments.c
+++ b/tool/stripccomments.c
@@ -111,7 +111,24 @@ void do_it_all(void){
}
else if(slash == ch){
/* MARKER(("state 0 ==> 1 @ %d:%d\n", line, col)); */
- state = S_SLASH1;
+ if( '\\'==prev ){
+ /**
+ JS regexes may contain slash-asterisks, as happened at:
+
+ https://github.com/emscripten-core/emscripten/issues/23412
+
+ Such regexes will always necessarily be preceeded by a
+ backslash, though.
+
+ It is hypothetically possible for a legitimate comment
+ slash-asterisk to appear immediately before a
+ backslash, but that seems like an even rarer corner
+ case than the JS regex case.
+ */
+ fputc(ch, out);
+ }else{
+ state = S_SLASH1;
+ }
break;
}
fputc(ch, out);