mirror of
https://github.com/sqlite/sqlite.git
synced 2025-10-24 09:53:10 +03:00
Resolve the non-functional 64-bit JS vtabs and VFSes. All wasm tests now pass on a 64-bit build. Investigation of the fiddle failure on a second db import is still pending.
FossilOrigin-Name: 7c44b48b628d3d93b13031e9fd08ed39fec35c661aca9e813a89348d6c415663
This commit is contained in:
@@ -475,7 +475,6 @@ emcc.MEMORY64 ?= 1
|
||||
########################################################################
|
||||
|
||||
ifneq (0,$(emcc.MEMORY64))
|
||||
$(info WARNING: MEMORY64 mode is known to not work)
|
||||
emcc.WASM_BIGINT = 1
|
||||
# -sMEMORY64=1+ assumes -sWASM_BIGINT=1, so we'll make it explicit
|
||||
# SQLITE.CALL.C-PP.FILTER.global += -DsMEMORY64=$(emcc.MEMORY64)
|
||||
|
||||
@@ -1891,7 +1891,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
||||
if(this.ondispose.__removeFuncList){
|
||||
this.ondispose.__removeFuncList.forEach(
|
||||
(v,ndx)=>{
|
||||
if('number'===typeof v){
|
||||
if(wasm.isPtr(v)){
|
||||
try{wasm.uninstallFunction(v)}
|
||||
catch(e){/*ignore*/}
|
||||
}
|
||||
@@ -1921,7 +1921,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
||||
}
|
||||
tgt[memKey] = fProxy;
|
||||
}else{
|
||||
const pFunc = wasm.installFunction(fProxy, tgt.memberSignature(name, true));
|
||||
const pFunc = wasm.installFunction(fProxy, tgt.memberSignature(name, false));
|
||||
tgt[memKey] = pFunc;
|
||||
if(!tgt.ondispose || !tgt.ondispose.__removeFuncList){
|
||||
tgt.addOnDispose('ondispose.__removeFuncList handler',
|
||||
|
||||
@@ -232,11 +232,11 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
||||
pool.log(`xRead ${file.path} ${n} @ ${offset64}`);
|
||||
try {
|
||||
const nRead = file.sah.read(
|
||||
wasm.heap8u().subarray(pDest, pDest+n),
|
||||
wasm.heap8u().subarray(Number(pDest), Number(pDest)+n),
|
||||
{at: HEADER_OFFSET_DATA + Number(offset64)}
|
||||
);
|
||||
if(nRead < n){
|
||||
wasm.heap8u().fill(0, pDest + nRead, pDest + n);
|
||||
wasm.heap8u().fill(0, Number(pDest) + nRead, Number(pDest) + n);
|
||||
return capi.SQLITE_IOERR_SHORT_READ;
|
||||
}
|
||||
return 0;
|
||||
@@ -287,7 +287,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
||||
pool.log(`xWrite ${file.path} ${n} ${offset64}`);
|
||||
try{
|
||||
const nBytes = file.sah.write(
|
||||
wasm.heap8u().subarray(pSrc, pSrc+n),
|
||||
wasm.heap8u().subarray(Number(pSrc), Number(pSrc)+n),
|
||||
{ at: HEADER_OFFSET_DATA + Number(offset64) }
|
||||
);
|
||||
return n===nBytes ? 0 : toss("Unknown write() failure.");
|
||||
@@ -452,7 +452,8 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
||||
vfsMethods.xRandomness = function(pVfs, nOut, pOut){
|
||||
const heap = wasm.heap8u();
|
||||
let i = 0;
|
||||
for(; i < nOut; ++i) heap[pOut + i] = (Math.random()*255000) & 0xFF;
|
||||
const npOut = Number(pOut);
|
||||
for(; i < nOut; ++i) heap[npOut + i] = (Math.random()*255000) & 0xFF;
|
||||
return i;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -805,7 +805,7 @@ const installOpfsVfs = function callee(options){
|
||||
Because the heap is _not_ a SharedArrayBuffer, we have
|
||||
to copy the results. TypedArray.set() seems to be the
|
||||
fastest way to copy this. */
|
||||
wasm.heap8u().set(f.sabView.subarray(0, n), pDest);
|
||||
wasm.heap8u().set(f.sabView.subarray(0, n), Number(pDest));
|
||||
}
|
||||
}catch(e){
|
||||
error("xRead(",arguments,") failed:",e,f);
|
||||
|
||||
@@ -483,7 +483,7 @@ globalThis.WhWasmUtilInstaller = function(target){
|
||||
Supported letters:
|
||||
|
||||
- `i` = int32
|
||||
- `p` = int32 ("pointer")
|
||||
- `p` = int32 or int64 ("pointer")
|
||||
- `j` = int64
|
||||
- `f` = float32
|
||||
- `d` = float64
|
||||
@@ -521,7 +521,7 @@ globalThis.WhWasmUtilInstaller = function(target){
|
||||
/** Encodes n, which must be <2^14 (16384), into target array
|
||||
tgt, as a little-endian value, using the given method
|
||||
('push' or 'unshift'). */
|
||||
uleb128Encode: function(tgt, method, n){
|
||||
uleb128Encode: (tgt, method, n)=>{
|
||||
if(n<128) tgt[method](n);
|
||||
else tgt[method]( (n % 128) | 128, n>>7);
|
||||
},
|
||||
@@ -532,13 +532,15 @@ globalThis.WhWasmUtilInstaller = function(target){
|
||||
rxJSig: /^(\w)\((\w*)\)$/,
|
||||
/** Returns the parameter-value part of the given signature
|
||||
string. */
|
||||
sigParams: function(sig){
|
||||
sigParams: (sig)=>{
|
||||
const m = f._.rxJSig.exec(sig);
|
||||
return m ? m[2] : sig.substr(1);
|
||||
},
|
||||
/** Returns the IR value for the given letter or throws
|
||||
if the letter is invalid. */
|
||||
|
||||
letterType: (x)=>f._.sigTypes[x] || toss("Invalid signature letter:",x),
|
||||
|
||||
/** Returns an object describing the result type and parameter
|
||||
type(s) of the given function signature, or throws if the
|
||||
signature is invalid. */
|
||||
@@ -555,6 +557,7 @@ globalThis.WhWasmUtilInstaller = function(target){
|
||||
/** Pushes the WASM data type code for the given signature
|
||||
letter to the given target array. Throws if letter is
|
||||
invalid. */
|
||||
|
||||
pushSigType: (dest, letter)=>dest.push(f._.typeCodes[f._.letterType(letter)])
|
||||
};
|
||||
}/*static init*/
|
||||
@@ -563,16 +566,17 @@ globalThis.WhWasmUtilInstaller = function(target){
|
||||
sig = func;
|
||||
func = x;
|
||||
}
|
||||
const sigParams = f._.sigParams(sig);
|
||||
const _ = f._;
|
||||
const sigParams = _.sigParams(sig);
|
||||
const wasmCode = [0x01/*count: 1*/, 0x60/*function*/];
|
||||
f._.uleb128Encode(wasmCode, 'push', sigParams.length);
|
||||
for(const x of sigParams) f._.pushSigType(wasmCode, x);
|
||||
_.uleb128Encode(wasmCode, 'push', sigParams.length);
|
||||
for(const x of sigParams) _.pushSigType(wasmCode, x);
|
||||
if('v'===sig[0]) wasmCode.push(0);
|
||||
else{
|
||||
wasmCode.push(1);
|
||||
f._.pushSigType(wasmCode, sig[0]);
|
||||
_.pushSigType(wasmCode, sig[0]);
|
||||
}
|
||||
f._.uleb128Encode(wasmCode, 'unshift', wasmCode.length)/* type section length */;
|
||||
_.uleb128Encode(wasmCode, 'unshift', wasmCode.length)/* type section length */;
|
||||
wasmCode.unshift(
|
||||
0x00, 0x61, 0x73, 0x6d, /* magic: "\0asm" */
|
||||
0x01, 0x00, 0x00, 0x00, /* version: 1 */
|
||||
@@ -625,7 +629,7 @@ globalThis.WhWasmUtilInstaller = function(target){
|
||||
}
|
||||
}
|
||||
if(!ptr){
|
||||
ptr = oldLen;
|
||||
ptr = __asPtrType(oldLen);
|
||||
ft.grow(__asPtrType(1));
|
||||
}
|
||||
try{
|
||||
|
||||
@@ -201,9 +201,9 @@
|
||||
}else if(sql){
|
||||
if(Array.isArray(sql)) sql = sql.join('');
|
||||
f._running = true;
|
||||
//stdout("calling _()",sql);
|
||||
stdout("calling native exec:",sql);
|
||||
f._(sql);
|
||||
//stdout("returned _()",sql);
|
||||
stdout("returned from native exec",sql);
|
||||
}
|
||||
}finally{
|
||||
delete f._running;
|
||||
@@ -288,7 +288,7 @@
|
||||
buffer.set([1,1], 18)/*force db out of WAL mode*/;
|
||||
const fn = (
|
||||
opt.filename
|
||||
? opt.filename.split(/[/\\]/).pop().replace(/["']/g,'_')
|
||||
? opt.filename.split(/[/\\]/).pop().replace(/["'\s]/g,'_')
|
||||
: ("db-"+((Math.random() * 10000000) | 0)+
|
||||
"-"+((Math.random() * 10000000) | 0)+".sqlite3")
|
||||
);
|
||||
@@ -307,7 +307,7 @@
|
||||
fiddleModule.FS.unlink(fnAbs);
|
||||
}
|
||||
fiddleModule.FS.createDataFile("/", fn, buffer, true, true);
|
||||
Sqlite3Shell.exec('.open "'+fnAbs+'"');
|
||||
Sqlite3Shell.exec('.open '+fnAbs);
|
||||
if(oldName && oldName!==fnAbs){
|
||||
try{fiddleModule.fsUnlink(oldName)}
|
||||
catch(e){/*ignored*/}
|
||||
|
||||
@@ -553,7 +553,8 @@ globalThis.Jaccwabyt = function StructBinderFactory(config){
|
||||
});
|
||||
|
||||
const isNumericValue = (v)=>{
|
||||
return Number.isFinite(v) || (v instanceof Number)
|
||||
return (v instanceof Number)
|
||||
|| Number.isFinite(v)
|
||||
|| (bigIntEnabled
|
||||
? ('bigint'===typeof v /*does not work: v instanceof BigInt*/)
|
||||
: false);
|
||||
|
||||
@@ -2354,7 +2354,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
name: 'virtual table #1: eponymous w/ manual exception handling',
|
||||
predicate: (sqlite3)=>(!!sqlite3.capi.sqlite3_vtab || "Missing vtab support"),
|
||||
test: function(sqlite3){
|
||||
if( skipIn64BitBuild('virtual table #1') ) return;
|
||||
//if( skipIn64BitBuild('virtual table #1') ) return;
|
||||
const VT = sqlite3.vtab;
|
||||
const tmplCols = Object.assign(Object.create(null),{
|
||||
A: 0, B: 1
|
||||
@@ -2366,6 +2366,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
const tmplMod = new sqlite3.capi.sqlite3_module();
|
||||
T.assert(!tmplMod.$xUpdate);
|
||||
const dbg = 1 ? ()=>{} : sqlite3.config.debug;
|
||||
//tmplMod.debugFlags(0x03);
|
||||
tmplMod.setupModule({
|
||||
catchExceptions: false,
|
||||
methods: {
|
||||
@@ -2563,7 +2564,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
name: 'virtual table #2: non-eponymous w/ automated exception wrapping',
|
||||
predicate: (sqlite3)=>!!sqlite3.capi.sqlite3_vtab || "Missing vtab support",
|
||||
test: function(sqlite3){
|
||||
if( skipIn64BitBuild('virtual table #2') ) return;
|
||||
//if( skipIn64BitBuild('virtual table #2') ) return;
|
||||
const VT = sqlite3.vtab;
|
||||
const tmplCols = Object.assign(Object.create(null),{
|
||||
A: 0, B: 1
|
||||
@@ -3192,7 +3193,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
.t({
|
||||
name: 'OPFS db sanity checks',
|
||||
test: async function(sqlite3){
|
||||
if( skipIn64BitBuild('"opfs" vfs') ) return;
|
||||
//if( skipIn64BitBuild('"opfs" vfs') ) return;
|
||||
T.assert(capi.sqlite3_vfs_find('opfs'));
|
||||
const opfs = sqlite3.opfs;
|
||||
const filename = this.opfsDbFile = '/dir/sqlite3-tester1.db';
|
||||
@@ -3201,7 +3202,6 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
'create table p(a);',
|
||||
'insert into p(a) values(1),(2),(3)'
|
||||
];
|
||||
wasm.xWrap.debug = true;
|
||||
let db = new sqlite3.oo1.OpfsDb(fileUri);
|
||||
try {
|
||||
db.exec(initSql);
|
||||
@@ -3230,7 +3230,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
.t({
|
||||
name: 'OPFS import',
|
||||
test: async function(sqlite3){
|
||||
if( skipIn64BitBuild('"opfs" vfs import') ) return;
|
||||
//if( skipIn64BitBuild('"opfs" vfs import') ) return;
|
||||
let db;
|
||||
const filename = this.opfsDbFile;
|
||||
try {
|
||||
@@ -3268,7 +3268,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
.t({
|
||||
name: '(Internal-use) OPFS utility APIs',
|
||||
test: async function(sqlite3){
|
||||
if( skipIn64BitBuild('"opfs" internal APIs') ) return;
|
||||
//if( skipIn64BitBuild('"opfs" internal APIs') ) return;
|
||||
const filename = this.opfsDbFile;
|
||||
const unlink = this.opfsUnlink;
|
||||
T.assert(filename && !!unlink);
|
||||
@@ -3321,7 +3321,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
.t({
|
||||
name: 'SAH sanity checks',
|
||||
test: async function(sqlite3){
|
||||
if( skipIn64BitBuild('"opfs-sahpool" vfs') ) return;
|
||||
//if( skipIn64BitBuild('"opfs-sahpool" vfs') ) return;
|
||||
T.assert(!sqlite3.capi.sqlite3_vfs_find(sahPoolConfig.name))
|
||||
.assert(sqlite3.capi.sqlite3_js_vfs_list().indexOf(sahPoolConfig.name) < 0)
|
||||
const inst = sqlite3.installOpfsSAHPoolVfs,
|
||||
@@ -3394,13 +3394,13 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
db.close();
|
||||
T.assert( u2===u2.pauseVfs() )
|
||||
.assert( u2.isPaused() )
|
||||
.assert( 0===capi.sqlite3_vfs_find(u2.vfsName) )
|
||||
.assert( !capi.sqlite3_vfs_find(u2.vfsName) )
|
||||
.mustThrowMatching(()=>new u2.OpfsSAHPoolDb(dbName),
|
||||
/.+no such vfs: .+/,
|
||||
"VFS is not available")
|
||||
.assert( u2===await u2.unpauseVfs() )
|
||||
.assert( u2===await u1.unpauseVfs(), "unpause is a no-op if the VFS is not paused" )
|
||||
.assert( 0!==capi.sqlite3_vfs_find(u2.vfsName) );
|
||||
.assert( !!capi.sqlite3_vfs_find(u2.vfsName) );
|
||||
const fileNames = u1.getFileNames();
|
||||
T.assert(1 === fileNames.length)
|
||||
.assert(dbName === fileNames[0])
|
||||
@@ -3682,7 +3682,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
predicate: ()=>hasOpfs() || "Requires OPFS to reproduce",
|
||||
//predicate: ()=>false,
|
||||
test: async function(sqlite3){
|
||||
if( skipIn64BitBuild('pending repair of opfs') ) return;
|
||||
//if( skipIn64BitBuild('pending repair of opfs') ) return;
|
||||
/* https://sqlite.org/forum/forumpost/cf37d5ff1182c31081
|
||||
|
||||
The "opfs" VFS (but not SAHPool) was formerly misbehaving
|
||||
@@ -3854,6 +3854,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
}else{
|
||||
logClass('warning',"BigInt/int64 support is disabled.");
|
||||
}
|
||||
log("WASM pointer size:",wasm.pointerSizeof,"bytes");
|
||||
if(haveWasmCTests()){
|
||||
log("sqlite3__wasm_test_...() APIs are available.");
|
||||
}else{
|
||||
|
||||
26
manifest
26
manifest
@@ -1,5 +1,5 @@
|
||||
C Determine\sthe\sWASM\senvironment's\spointer\ssize\sat\sruntime\sinstead\sof\sbaking\sit\sin\sat\sbuild-time\svia\sthe\spreprocessor.
|
||||
D 2025-09-20T23:21:24.945
|
||||
C Resolve\sthe\snon-functional\s64-bit\sJS\svtabs\sand\sVFSes.\sAll\swasm\stests\snow\spass\son\sa\s64-bit\sbuild.\sInvestigation\sof\sthe\sfiddle\sfailure\son\sa\ssecond\sdb\simport\sis\sstill\spending.
|
||||
D 2025-09-21T00:59:23.932
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -578,7 +578,7 @@ F ext/session/sqlite3session.c 9cd47bfefb23c114b7a5d9ee5822d941398902f30516bf0dd
|
||||
F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
|
||||
F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
|
||||
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
|
||||
F ext/wasm/GNUmakefile c63ea7b7375f7490314c58bb2223b98cc9324ce22b50c7b2d947964044a6388b
|
||||
F ext/wasm/GNUmakefile f6eca9e8cd48cf0d51c6d3f3cd2b89a0da832d23d532765c61e3ccf9fe3a9c8a
|
||||
F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
|
||||
F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
|
||||
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
|
||||
@@ -597,15 +597,15 @@ 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 0e27cacbde6a97f5b91cdb52d4486e4eba25669b986af10eceaa1d6b617586e3
|
||||
F ext/wasm/api/sqlite3-api-glue.c-pp.js b78113054fa3e80f0b45622a598e30f881bf3ef488177773a8f00921ce92190a
|
||||
F ext/wasm/api/sqlite3-api-glue.c-pp.js 4334fa642cc654f3ce4834dca45fc91ebe9816e31ca964402e364b89f251d3dd
|
||||
F ext/wasm/api/sqlite3-api-oo1.c-pp.js 3224395cfba23cd630f538fef4a57191c658b0791bacb76a4d7dead6f975ee84
|
||||
F ext/wasm/api/sqlite3-api-prologue.js 98b0cbe1fecfe037ef66330e7f40be44492b0e75dc4de7559886bd60181b54f1
|
||||
F ext/wasm/api/sqlite3-api-worker1.c-pp.js 760191cd13416e6f5adfd9fcc8a97fed5645c9e0a5fbac213a2d4ce2d79a4334
|
||||
F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89
|
||||
F ext/wasm/api/sqlite3-opfs-async-proxy.js 9654b565b346dc609b75d15337f20acfa7af7d9d558da1afeb9b6d8eaa404966
|
||||
F ext/wasm/api/sqlite3-vfs-helper.c-pp.js 3f828cc66758acb40e9c5b4dcfd87fd478a14c8fb7f0630264e6c7fa0e57515d
|
||||
F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js 0f68a64e508598910e7c01214ae27d603dfc8baec6a184506fafac603a901931
|
||||
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js c4927aed1ed6e814ea16a8cd37fb45f68c199ebc6c8c6ba26a6c98177afdce85
|
||||
F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js e6389ff91cdb3c17354211bea226f67c2374f23fc0f51691e7c8de66cd2a678d
|
||||
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 7071a9519dacb643a7fe2fd6b9f33f7c69e63d2929e907a5ef846bb5b1b7dec8
|
||||
F ext/wasm/api/sqlite3-vtab-helper.c-pp.js 729131e48d5c0a757970da167d667ce87e49042e0cc7016da5e95d8af70088b9
|
||||
F ext/wasm/api/sqlite3-wasm.c ff2dc011e17b06186b8b35e408626d7ace69a362b92c197a34d78bef25c7105a
|
||||
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 4ad256b4ff7f839ad18931ed35d46cced544207bd2209665ec552e193f7f4544
|
||||
@@ -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 b06a7770c32dd7a847f30cd6f76e5b1818c862ec4d28245ad2aac1f42d800bcf
|
||||
F ext/wasm/common/whwasmutil.js 17cfd90fc524a69d92fa6e9c6040d576f2707fdcf4a1a2b84e59e004b8ca8236
|
||||
F ext/wasm/config.make.in c424ae1cc3c89274520ad312509d36c4daa34a3fce5d0c688e5f8f4365e1049a
|
||||
F ext/wasm/demo-123-worker.html a0b58d9caef098a626a1a1db567076fca4245e8d60ba94557ede8684350a81ed
|
||||
F ext/wasm/demo-123.html 8c70a412ce386bd3796534257935eb1e3ea5c581e5d5aea0490b8232e570a508
|
||||
@@ -632,12 +632,12 @@ F ext/wasm/demo-worker1.js 08720227e98fa5b44761cf6e219269cee3e9dd0421d8d91459535
|
||||
F ext/wasm/dist.make 57f5da2f0de5a297b5a0bc39ffec736380050578240ab24d864c2ff1b3634a3b
|
||||
F ext/wasm/example_extra_init.c 2347cd69d19d839ef4e5e77b7855103a7fe3ef2af86f2e8c95839afd8b05862f
|
||||
F ext/wasm/fiddle.make 732b5ba2d5c164080f7918eb4a82447a0039254867d775ba7603bd8bce2b6ac3
|
||||
F ext/wasm/fiddle/fiddle-worker.js eaacb0c35cfc364414ebd247877cdf79415b8a8e3ffc542ba2bd3be049810b5e
|
||||
F ext/wasm/fiddle/fiddle-worker.js 2f17397ac95f88e0319adf69bf902f0311c7ed8220c9ae813baed0a4984958c9
|
||||
F ext/wasm/fiddle/fiddle.js f0b96f978c7c77fea8d092aa79c77849ce111d7b1ba60ffba07675009682184e
|
||||
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 9a8b8097161164284249fbd3c08bf4aa86f917a0862ae9a01b7bc4ef7d921c29
|
||||
F ext/wasm/jaccwabyt/jaccwabyt.js 76b3bf89faa588c90f49d77f5a7de149003717eeef482b1767a2268ea9c97824
|
||||
F ext/wasm/jaccwabyt/jaccwabyt.md 1128e3563e7eff90b5a373395251fc76cb32386fad1fea6075b0f34a8f1b9bdf
|
||||
F ext/wasm/mkwasmbuilds.c b722a3a44edc1498575d935939dfcbe23172f98b0f40d068998e0950707e749d
|
||||
F ext/wasm/module-symbols.html dc476b403369b26a1a23773e13b80f41b9a49f0825e81435fe3600a7cfbbe337
|
||||
@@ -655,7 +655,7 @@ F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555
|
||||
F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c
|
||||
F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c
|
||||
F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2
|
||||
F ext/wasm/tester1.c-pp.js 91b848e0de21c13d689e64d1b42ac1277b2c1c9649261ef082bb5fd3fbb3ea9c
|
||||
F ext/wasm/tester1.c-pp.js f601700ef1f7e14a1861fb006b8e33a4299ba25a09a064a10e2355d51eb7ec33
|
||||
F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e
|
||||
F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88
|
||||
F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
|
||||
@@ -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 dccfa7098975d8c09eb6e7d30cd2ae30bc8234ef9a24f4a2ad5e9ffd29df72c2
|
||||
R ba35bc57d45a894279895a77db592f5a
|
||||
P 21ac6aaa03517841b637924720354b9800d6e8b7bd5f6ee54a99f5f45b2ccdec
|
||||
R 46432ea2dae11ae6027fa3cb7708e7b5
|
||||
U stephan
|
||||
Z be4e2fae51e9bcb7be55e5070917f51b
|
||||
Z b02c0a25f2b69a3ae3c761b92075b9e4
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
21ac6aaa03517841b637924720354b9800d6e8b7bd5f6ee54a99f5f45b2ccdec
|
||||
7c44b48b628d3d93b13031e9fd08ed39fec35c661aca9e813a89348d6c415663
|
||||
|
||||
Reference in New Issue
Block a user