From: stephan Date: Sun, 21 Sep 2025 19:39:06 +0000 (+0000) Subject: General cleanups and dead code removal. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b10548a7b077aacd6a29327a7e6557d3ae97e5e3;p=thirdparty%2Fsqlite.git General cleanups and dead code removal. FossilOrigin-Name: 0336fa95e15c53ac6ab8152a840163a5aac64725874ffb848ce1d95e3af90586 --- diff --git a/ext/wasm/api/sqlite3-api-glue.c-pp.js b/ext/wasm/api/sqlite3-api-glue.c-pp.js index 4314e0fad6..903b8b4171 100644 --- a/ext/wasm/api/sqlite3-api-glue.c-pp.js +++ b/ext/wasm/api/sqlite3-api-glue.c-pp.js @@ -727,8 +727,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ alloc: wasm.alloc, dealloc: wasm.dealloc, bigIntEnabled: wasm.bigIntEnabled, - pointerIR: wasm.pointerIR, - pointerSize: wasm.ptr.size, + pointerIR: wasm.ptr.ir, memberPrefix: /* Never change this: this prefix is baked into any amount of code and client-facing docs. (Much later: it probably should have been '$$', but see @@ -1471,9 +1470,10 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ Helper for string:flexible conversions which requires a byte-length counterpart argument. Passed a value and its ostensible length, this function returns [V,N], where V is - either v or a transformed copy of v and N is either Number(n) - (if v is a WASM pointer), -1 (if v is a string or Array), or - the byte length of v (if it's a byte array or ArrayBuffer). + either v or a transformed copy of v and N is either (if v is a + WASM pointer, in which case n might be a BigInt), -1 (if v is a + string or Array), or the byte length of v (if it's a byte array + or ArrayBuffer). */ const __flexiString = (v,n)=>{ if('string'===typeof v){ @@ -1486,13 +1486,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ }else if(Array.isArray(v)){ v = v.join(""); n = -1; - }/*else if( 'bigint'===typeof n ){ - // tag:64bit A workaround for when a stray BigInt, possibly - // calculated via a pointer range, gets passed in here. This - // has been seen to happen in sqlite3_prepare_v3() via - // oo1.DB.exec(). - n = Number(n); - }*/ + } return [v, n]; }; @@ -1531,11 +1525,12 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ if(f.length!==arguments.length){ return __dbArgcMismatch(pDb,"sqlite3_prepare_v3",f.length); } - const [xSql, xSqlLen] = __flexiString(sql, sqlLen); + const [xSql, xSqlLen] = __flexiString(sql, Number(sqlLen)); switch(typeof xSql){ case 'string': return __prepare.basic(pDb, xSql, xSqlLen, prepFlags, ppStmt, null); case (typeof wasm.ptr.null): - return __prepare.full(pDb, xSql, xSqlLen, prepFlags, ppStmt, pzTail); + return __prepare.full(pDb, wasm.ptr.coerce(xSql), xSqlLen, prepFlags, + ppStmt, pzTail); default: return util.sqlite3__wasm_db_error( pDb, capi.SQLITE_MISUSE, @@ -1921,7 +1916,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ } tgt[memKey] = fProxy; }else{ - const pFunc = wasm.installFunction(fProxy, tgt.memberSignature(name, false)); + const pFunc = wasm.installFunction(fProxy, tgt.memberSignature(name)); tgt[memKey] = pFunc; if(!tgt.ondispose || !tgt.ondispose.__removeFuncList){ tgt.addOnDispose('ondispose.__removeFuncList handler', diff --git a/ext/wasm/common/whwasmutil.js b/ext/wasm/common/whwasmutil.js index 57fbe9f16e..1cc4f7bc0c 100644 --- a/ext/wasm/common/whwasmutil.js +++ b/ext/wasm/common/whwasmutil.js @@ -249,7 +249,7 @@ globalThis.WhWasmUtilInstaller = function(target){ /** Either BigInt or, if !target.bigIntEnabled, a function which throws complaining that BigInt is not enabled. */ const __BigInt = target.bigIntEnabled - ? BigInt + ? (v)=>BigInt(v || 0) : (v)=>toss("BigInt support is disabled in this build."); /** @@ -259,7 +259,7 @@ globalThis.WhWasmUtilInstaller = function(target){ Why? Because Number(null)===0, but BigInt(null) throws. */ - const __asPtrType = (4===__ptrSize) ? Number : (v)=>__BigInt(v||0); + const __asPtrType = (4===__ptrSize) ? Number : __BigInt; /** The number 0 as either type Number or BigInt, depending on @@ -1534,7 +1534,7 @@ globalThis.WhWasmUtilInstaller = function(target){ const __xArgPtr = __asPtrType; xArg - .set('i64', (i)=>__BigInt(i || 0)) + .set('i64', __BigInt) .set('i32', (i)=>i|0) .set('i16', (i)=>((i | 0) & 0xFFFF)) .set('i8', (i)=>((i | 0) & 0xFF)) diff --git a/ext/wasm/jaccwabyt/jaccwabyt.js b/ext/wasm/jaccwabyt/jaccwabyt.js index 4236f00ccf..f773774157 100644 --- a/ext/wasm/jaccwabyt/jaccwabyt.js +++ b/ext/wasm/jaccwabyt/jaccwabyt.js @@ -16,7 +16,6 @@ Project homes: - https://fossil.wanderinghorse.net/r/jaccwabyt - https://sqlite.org/src/dir/ext/wasm/jaccwabyt - */ 'use strict'; globalThis.Jaccwabyt = function StructBinderFactory(config){ @@ -59,24 +58,28 @@ globalThis.Jaccwabyt = function StructBinderFactory(config){ log = config.log || console.log.bind(console), memberPrefix = (config.memberPrefix || ""), memberSuffix = (config.memberSuffix || ""), - bigIntEnabled = (undefined===config.bigIntEnabled - ? !!globalThis['BigInt64Array'] : !!config.bigIntEnabled), BigInt = globalThis['BigInt'], BigInt64Array = globalThis['BigInt64Array'], + bigIntEnabled = config.bigIntEnabled ?? !!BigInt64Array, /* Undocumented (on purpose) config options: */ ptrIR = config.pointerIR || config.ptrIR/*deprecated*/ || 'i32', - ptrSize = config.pointerSize - || config.ptrSize/*deprecated*/ + ptrSize = config.ptrSize/*deprecated*/ || ('i32'===ptrIR ? 4 : 8) ; - const __asPtrType = ('i32'==ptrIR) - ? Number - : (bigIntEnabled - ? (v)=>BigInt(v || 0) - : toss("Missing BigInt support")); + + if(ptrIR!=='i32' && ptrIR!=='i64') toss("Invalid pointer representation:",ptrIR); + if(ptrSize!==4 && ptrSize!==8) toss("Invalid pointer size:",ptrSize); + + /** Either BigInt or, if !bigIntEnabled, a function which + throws complaining that BigInt is not enabled. */ + const __BigInt = (bigIntEnabled && BigInt) + ? (v)=>BigInt(v || 0) + : (v)=>toss("BigInt support is disabled in this build."); + const __asPtrType = ('i32'==ptrIR) ? Number : __BigInt; const __NullPtr = __asPtrType(0); + /** Expects any number of numeric arguments, each one of either type Number or BigInt. It sums them up (from an implicit starting @@ -210,11 +213,11 @@ globalThis.Jaccwabyt = function StructBinderFactory(config){ const sigDVSetWrapper = function(s){ switch(sigLetter(s)) { case 'i': case 'f': case 'c': case 'C': case 'd': return Number; - case 'j': return affirmBigIntArray() && BigInt; + case 'j': return __BigInt; case 'p': case 'P': case 's': switch(ptrSize){ case 4: return Number; - case 8: return affirmBigIntArray() && BigInt; + case 8: return __BigInt; } break; } diff --git a/ext/wasm/jaccwabyt/jaccwabyt.md b/ext/wasm/jaccwabyt/jaccwabyt.md index 17bba78cc7..4ab7af3587 100644 --- a/ext/wasm/jaccwabyt/jaccwabyt.md +++ b/ext/wasm/jaccwabyt/jaccwabyt.md @@ -199,7 +199,8 @@ const MyBinder = StructBinderFactory({ heap: WebAssembly.Memory instance or a function which returns a Uint8Array or Int8Array view of the WASM memory, alloc: function(howMuchMemory){...}, - dealloc: function(pointerToFree){...} + dealloc: function(pointerToFree){...}, + pointerIR: 'i32' or 'i64' (WASM pointer type) }); ``` @@ -212,7 +213,7 @@ a conventional Emscripten setup, that config might simply look like: > ```javascript { - heap: Module['asm']['memory'], + heap: Module?.asm?.memory || Module['wasmMemory'], //Or: // heap: ()=>Module['HEAP8'], alloc: (n)=>Module['_malloc'](n), diff --git a/manifest b/manifest index ebef9a38e3..20aab81010 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\ssome\sdead\scode\sand\sstray\sdebug\soutput.\sFix\s(again)\sthe\sJS\sSQLTester\sfor\s64-bit\s(the\sprevious\sbuild\swas\sset\sto\s32-bit). -D 2025-09-21T19:01:15.620 +C General\scleanups\sand\sdead\scode\sremoval. +D 2025-09-21T19:39:06.527 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -597,7 +597,7 @@ F ext/wasm/api/post-js-footer.js 365405929f41ca0e6d389ed8a8da3f3c93e11d3ef43a90a F ext/wasm/api/post-js-header.js 53740d824e5d9027eb1e6fd59e216abbd2136740ce260ea5f0699ff2acb0a701 F ext/wasm/api/pre-js.c-pp.js 58f823de197e2c10d76179aa05410a593b7ae03e1ece983bb42ffd818e8857e1 F ext/wasm/api/sqlite3-api-cleanup.js d4f1a5e665afaf84015f6ef0ddd766f638cb28501c4569b1d4b527c4b5a2b9a4 -F ext/wasm/api/sqlite3-api-glue.c-pp.js 5fb52fb190519e2d9cd8507c5f6c7a9827c80aa254f16ec682e1d2c26ccd0fbd +F ext/wasm/api/sqlite3-api-glue.c-pp.js 814bdccd7e7c28520cd9a2480785fda027529061e9187460d7155775034afd0f F ext/wasm/api/sqlite3-api-oo1.c-pp.js 831ce373495f6a5d9230f31a1e09e8995e317828926e736d58c9e7091c6b1d07 F ext/wasm/api/sqlite3-api-prologue.js bdf8e553c2142916fd7a2382e1becfed7a5755da95f585f632336634e5728448 F ext/wasm/api/sqlite3-api-worker1.c-pp.js 760191cd13416e6f5adfd9fcc8a97fed5645c9e0a5fbac213a2d4ce2d79a4334 @@ -618,7 +618,7 @@ F ext/wasm/c-pp.c cca55c5b55ebd8d29916adbedb0e40baa12caa9a2e8429f812683c308f9b0e F ext/wasm/common/SqliteTestUtil.js 7adaeffef757d8708418dc9190f72df22367b531831775804b31598b44f6aa51 F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15 F ext/wasm/common/testing.css e97549bab24126c24e0daabfe2de9bb478fb0a69fdb2ddd0a73a992c091aad6f -F ext/wasm/common/whwasmutil.js a2c7482ee0c07087a4a6878830a38acefacb0ee4399fab25073b8a3ce99cfacd +F ext/wasm/common/whwasmutil.js aff84dc5b7bf1f06a567d4ab43d28422447f5806487210f805d4d85b400b82b8 F ext/wasm/config.make.in c424ae1cc3c89274520ad312509d36c4daa34a3fce5d0c688e5f8f4365e1049a F ext/wasm/demo-123-worker.html a0b58d9caef098a626a1a1db567076fca4245e8d60ba94557ede8684350a81ed F ext/wasm/demo-123.html 8c70a412ce386bd3796534257935eb1e3ea5c581e5d5aea0490b8232e570a508 @@ -637,8 +637,8 @@ F ext/wasm/fiddle/fiddle.js f0b96f978c7c77fea8d092aa79c77849ce111d7b1ba60ffba076 F ext/wasm/fiddle/index.html 17c7d6b21f40fbf462162c4311b63d760b065e419d9f5a96534963b0e52af940 F ext/wasm/index-dist.html 56132399702b15d70c474c3f1952541e25cb0922942868f70daf188f024b3730 F ext/wasm/index.html bcaa00eca521b372a6a62c7e7b17a870b0fcdf3e418a5921df1fd61e5344080d -F ext/wasm/jaccwabyt/jaccwabyt.js 663a4f1a45c21c725884de810c797fdcf2e58f15446c507539fb107f0b5c2b7d -F ext/wasm/jaccwabyt/jaccwabyt.md 1128e3563e7eff90b5a373395251fc76cb32386fad1fea6075b0f34a8f1b9bdf +F ext/wasm/jaccwabyt/jaccwabyt.js a5809f1b9c4be24fdc5abc436f3ab978f93da626b044db92861db48d67bdd151 +F ext/wasm/jaccwabyt/jaccwabyt.md 3eb94b708090edcaba435aa15dc8346553162e0d01ba3eae7b7bf34c92d263b7 F ext/wasm/mkwasmbuilds.c b722a3a44edc1498575d935939dfcbe23172f98b0f40d068998e0950707e749d F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337 F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96 @@ -2175,8 +2175,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 0fa1830540bcb86f5c59b1a6a9ffd8727c194a64a131d9d362023c84a3b820cb -R dc2d67fd32c35033587eba9e2fc11a68 +P a6b9567001dad0293dc6a7fe9a7ec1a220e41d9426448e2ab91dbd551948be15 +R b1a746924c607bfa0934fa2cb810d7b7 U stephan -Z 79efec95b48f9fbd6fa325e464638c1d +Z 193b461c45ffcc12495a77014d8c0df4 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 88de525537..bd2380c455 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a6b9567001dad0293dc6a7fe9a7ec1a220e41d9426448e2ab91dbd551948be15 +0336fa95e15c53ac6ab8152a840163a5aac64725874ffb848ce1d95e3af90586