]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove an obsolete file. Update wasmfs build for today's changes. Fix the case that...
authorstephan <stephan@noemail.net>
Mon, 19 Sep 2022 14:56:13 +0000 (14:56 +0000)
committerstephan <stephan@noemail.net>
Mon, 19 Sep 2022 14:56:13 +0000 (14:56 +0000)
FossilOrigin-Name: 976053925013bf1975f5f9222e28ba648af28e305bb6bdae600eb24d0e136bec

ext/wasm/speedtest1-kvvfs.html [deleted file]
ext/wasm/speedtest1-wasmfs.html
ext/wasm/speedtest1-worker.html
ext/wasm/speedtest1.html
ext/wasm/sqlite3-opfs-async-proxy.js
ext/wasm/wasmfs.make
manifest
manifest.uuid

diff --git a/ext/wasm/speedtest1-kvvfs.html b/ext/wasm/speedtest1-kvvfs.html
deleted file mode 100644 (file)
index 12085d4..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-<!doctype html>
-<html lang="en-us">
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
-    <link rel="stylesheet" href="common/emscripten.css"/>
-    <link rel="stylesheet" href="common/testing.css"/>
-    <title>speedtest1-kvvfs.wasm</title>
-  </head>
-  <body>
-    <header id='titlebar'><span>speedtest1-kvvfs.wasm</span></header>
-    <div>See also: <a href='speedtest1-worker.html'>A Worker-thread variant of this page.</a></div>
-    <!-- emscripten bits -->
-    <figure id="module-spinner">
-      <div class="spinner"></div>
-      <div class='center'><strong>Initializing app...</strong></div>
-      <div class='center'>
-        On a slow internet connection this may take a moment.  If this
-        message displays for "a long time", intialization may have
-        failed and the JavaScript console may contain clues as to why.
-      </div>
-    </figure>
-    <div class="emscripten" id="module-status">Downloading...</div>
-    <div class="emscripten">
-      <progress value="0" max="100" id="module-progress" hidden='1'></progress>  
-    </div><!-- /emscripten bits -->
-    <div class='warning'>This page starts running the main exe when it loads, which will
-      block the UI until it finishes! Adding UI controls to manually configure and start it
-      are TODO.</div>
-    </div>
-    <div class='warning'>Achtung: running it with the dev tools open may
-      <em>drastically</em> slow it down. For faster results, keep the dev
-      tools closed when running it!
-    </div>
-    <div>Output is delayed/buffered because we cannot update the UI while the
-      speedtest is running. Output will appear below when ready...
-    <div id='test-output'></div>
-    <script src="common/whwasmutil.js"></script>
-    <script src="common/SqliteTestUtil.js"></script>
-    <script src="speedtest1-kvvfs.js"></script>
-    <script>(function(){
-        const eOut = document.querySelector('#test-output');
-        const log2 = function(cssClass,...args){
-          const ln = document.createElement('div');
-          if(cssClass) ln.classList.add(cssClass);
-          ln.append(document.createTextNode(args.join(' ')));
-          eOut.append(ln);
-        };
-        const logList = [
-        ] /* We can't update DOM while speedtest and kvvfs only works
-             in the main thread, so we queue up main()-time output
-             into logList. */;
-        const dumpLogList = function(){
-          logList.forEach((v)=>log2('',v));
-          logList.length = 0;
-        };
-        const log = (...args)=>{
-          console.log(...args);
-          logList.push(args.join(' '));
-        };
-        const logErr = function(...args){
-          console.error(...args);
-          logList.push('ERROR: '+args.join(' '));
-        };
-
-        const guessStorageSize = function(which=''){
-          let sz = 0;
-          const prefix = 'kvvfs-'+which;
-          [localStorage,sessionStorage].forEach((s)=>{
-            let i;
-            for(i = 0; i < s.length; ++i){
-              const k = s.key(i);
-              if(k.startsWith(prefix)){
-                sz += k.length;
-                sz += s.getItem(k).length;
-              }
-            }
-          });
-          return sz * 2 /* for 16-bit-char encoding */;
-        };
-        const clearStorage = function(){
-            sessionStorage.clear();
-            localStorage.clear();
-        };
-        const runTests = function(EmscriptenModule){
-          console.log("Module inited.",EmscriptenModule);
-            
-          const wasm = {
-            exports: EmscriptenModule.asm,
-            alloc: (n)=>EmscriptenModule._malloc(n),
-            dealloc: (m)=>EmscriptenModule._free(m),
-            memory: EmscriptenModule.asm.memory || EmscriptenModule.wasmMemory
-          };
-          log2('warning',"Clearing session/local storage before test starts.");
-          clearStorage();
-          //console.debug('wasm =',wasm);
-          self.WhWasmUtilInstaller(wasm);
-          const scope = wasm.scopedAllocPush();
-          const dbFile = 0 ? "session" : "local";
-          const urlArgs = self.SqliteTestUtil.processUrlArgs();
-          const argv = ["speedtest1",
-                        "--size", "2",
-                        "--pagesize", "4096" /*1024, 2096 fail with --size > 1.*/
-                       ];
-          if(urlArgs.flags){
-            // transform flags=a,b,c to ["--a", "--b", "--c"]
-            argv.push(...(urlArgs.flags.split(',').map((v)=>'--'+v)));
-          }else{
-            argv.push(
-              "--singlethread",
-              "--nomutex",
-              //"--nosync",
-              "--nomemstat"
-              //  ,"--sqlonly"
-            );
-            //argv.push("--memdb" /* note that memdb trumps the filename arg */);
-          }
-          argv.push("--big-transactions"/*important for tests 410 and 510!*/,
-                    dbFile);
-          if(argv.indexOf('--memdb')>=0){
-              log2('error',"WARNING: --memdb flag trumps db filename.");
-          }
-          console.log("argv =",argv);
-          // These log messages are not emitted to the UI until after main() returns. Fixing that
-          // requires moving the main() call and related cleanup into a timeout handler.
-          log2('',"Starting native app:\n ",argv.join(' '));
-          log2('',"This will take a while and the browser might warn about the runaway JS.",
-               "Give it time...");
-          logList.length = 0;
-          new Promise(function(resolve,reject){
-            setTimeout(function(){
-              try {
-                wasm.xCall('__main_argc_argv', argv.length,
-                           wasm.scopedAllocMainArgv(argv));
-              }catch(e){
-                reject(e);
-              }
-              resolve();
-            }, 50);
-          }).finally(function(){
-            wasm.scopedAllocPop(scope);
-            logList.unshift("Done running native main(). Output:");
-            dumpLogList();
-            log2('',"Approximate",dbFile,"storage usage:",guessStorageSize(),"bytes");
-            log2('warning',"Clearing",dbFile,"storage.");
-            clearStorage(dbFile);
-          });
-        }/*runTests()*/;
-
-        self.sqlite3TestModule.print = log;
-        self.sqlite3TestModule.printErr = logErr;
-        sqlite3Speedtest1InitModule(self.sqlite3TestModule).then(function(M){
-          setTimeout(()=>runTests(M), 100);
-        });
-      })();
-    </script>
-  </body>
-</html>
index d0400f7e76bfb8fc71b140f0a4b2a9f064185e89..37155282cd6a6f88af2c61bf8c19450cb0797447 100644 (file)
@@ -36,7 +36,6 @@
     <div>Output is delayed/buffered because we cannot update the UI while the
       speedtest is running. Output will appear below when ready...
     <div id='test-output'></div>
-    <script src="common/whwasmutil.js"></script>
     <script src="common/SqliteTestUtil.js"></script>
     <script src="speedtest1-wasmfs.js"></script>
     <script>(function(){
@@ -45,7 +44,7 @@
            returns the name of the dir on which OPFS is mounted, else it returns
            an empty string.
         */
-        const opfsDir = function f(wasmUtil){
+        const wasmfsDir = function f(wasmUtil){
           if(undefined !== f._) return f._;
           const pdir = '/persistent';
           if( !self.FileSystemHandle
@@ -66,7 +65,7 @@
             return f._ = "";
           }
         };
-        opfsDir._ = undefined;
+        wasmfsDir._ = undefined;
 
         const eOut = document.querySelector('#test-output');
         const log2 = function(cssClass,...args){
           logList.push('ERROR: '+args.join(' '));
         };
 
-        const runTests = function(EmscriptenModule){
-          console.log("Module inited.",EmscriptenModule);
-          const wasm = {
-            exports: EmscriptenModule.asm,
-            alloc: (n)=>EmscriptenModule._malloc(n),
-            dealloc: (m)=>EmscriptenModule._free(m),
-            memory: EmscriptenModule.asm.memory || EmscriptenModule.wasmMemory
-          };
-          //console.debug('wasm =',wasm);
-          self.WhWasmUtilInstaller(wasm);
+        const runTests = function(sqlite3){
+          console.log("Module inited.");
+          const wasm = sqlite3.capi.wasm;
           const unlink = wasm.xWrap("sqlite3_wasm_vfs_unlink", "int", ["string"]);
-          const pDir = opfsDir(wasm);
+          const pDir = wasmfsDir(wasm);
           if(pDir) log2('',"Persistent storage:",pDir);
           else{
             log2('error',"Expecting persistent storage in this build.");
             return;
           }
           const scope = wasm.scopedAllocPush();
-          const dbFile = 0 ? "" : pDir+"/speedtest1.db";
-          const urlArgs = self.SqliteTestUtil.processUrlArgs();
+          const dbFile = pDir+"/speedtest1.db";
+          const urlParams = self.SqliteTestUtil.processUrlArgs();
           const argv = ["speedtest1"];
-          if(urlArgs.flags){
-            argv.push(...(urlArgs.flags.split(',')));
+          if(urlParams.flags){
+            argv.push(...(urlParams.flags.split(',')));
+            let i = argv.indexOf('--vfs');
+            if(i>=0) argv.splice(i,2);
           }else{
             argv.push(
               "--singlethread",
             );
             //"--memdb", // note that memdb trumps the filename arg
           }
+
           if(argv.indexOf('--memdb')>=0){
-              log2('error',"WARNING: --memdb flag trumps db filename.");
+            log2('error',"WARNING: --memdb flag trumps db filename.");
           }
           argv.push("--big-transactions"/*important for tests 410 and 510!*/,
                     dbFile);
                "Give it time...");
           logList.length = 0;
           setTimeout(function(){
-              wasm.xCall('wasm_main', argv.length,
-                         wasm.scopedAllocMainArgv(argv));
-              wasm.scopedAllocPop(scope);
-              if(pDir) unlink(dbFile);
-              logList.unshift("Done running native main(). Output:");
-              dumpLogList();
-          }, 50);
+            wasm.xCall('wasm_main', argv.length,
+                       wasm.scopedAllocMainArgv(argv));
+            wasm.scopedAllocPop(scope);
+            if(pDir) unlink(dbFile);
+            logList.unshift("Done running native main(). Output:");
+            dumpLogList();
+          }, 25);
         }/*runTests()*/;
 
         self.sqlite3TestModule.print = log;
         self.sqlite3TestModule.printErr = logErr;
         sqlite3Speedtest1InitModule(self.sqlite3TestModule).then(function(M){
-          setTimeout(()=>runTests(M), 100);
+            runTests(M.sqlite3);
         });
       })();
     </script>
index 38eff5cb270c70f9a5d4501e9e651cc5f5043cef..0884c7429c36c5226f20998a26f4c9a3b9008b61 100644 (file)
         log2('', ...args);
       };
       const logErr = function(...args){
-        //console.error(...args);
+        console.error(...args);
         log2('error', ...args);
       };
       const logWarn = function(...args){
-        //console.warn(...args);
+        console.warn(...args);
         log2('warning', ...args);
       };
 
index be0be3d83f6885b136ee07eea1cb9071b5aee46a..275ba7de492416c8613aa68698da9e9038e9e579 100644 (file)
@@ -36,7 +36,6 @@
     <div>Output is delayed/buffered because we cannot update the UI while the
       speedtest is running. Output will appear below when ready...
     <div id='test-output'></div>
-    <script src="common/whwasmutil.js"></script>
     <script src="common/SqliteTestUtil.js"></script>
     <script src="speedtest1.js"></script>
     <script>(function(){
index 7eb12425ccd72a01670039423adc624b54e6f7ba..634659c7325b5656488e320a1e1a496fbad735cd 100644 (file)
@@ -301,7 +301,7 @@ const vfsAsyncImpls = {
     const fh = __openFiles[fid];
     try{
       affirmNotRO('xTruncate', fh);
-      await fh.accessHandle.truncate(size);
+      await fh.accessHandle.truncate(Number(size));
     }catch(e){
       error("xTruncate():",e,fh);
       rc = state.sq3Codes.SQLITE_IOERR_TRUNCATE;
index cc10e58877843e5f077fe34d937db1865fcf3c58..253237a23755fc2464ea35b78fdc8ae1ac8645f2 100644 (file)
@@ -72,6 +72,7 @@ sqlite3-wasmfs.jsflags += -sMEMORY64=0
 sqlite3-wasmfs.jsflags += -sINITIAL_MEMORY=128450560
 sqlite3-wasmfs.fsflags := -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2 -sENVIRONMENT=web,worker
 sqlite3-wasmfs.jsflags += $(sqlite3-wasmfs.fsflags)
+speedtest1-common.eflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.speedtest1
 #sqlite3-wasmfs.jsflags += -sALLOW_MEMORY_GROWTH
 #^^^ using ALLOW_MEMORY_GROWTH produces a warning from emcc:
 #   USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly,
@@ -80,12 +81,12 @@ ifneq (0,$(enable_bigint))
 sqlite3-wasmfs.jsflags += -sWASM_BIGINT
 endif
 
-$(sqlite3-wasmfs.js): $(sqlite3-wasmfs.wasm.c) $(sqlite3.c) $(sqlite3-wasmfs.extra.c) \
-    EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.wasmfs) \
+$(sqlite3-wasmfs.js): $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasm.c) $(sqlite3-wasmfs.extra.c) \
+    EXPORTED_FUNCTIONS.api $(sqlite3-wasm.js) $(MAKEFILE) $(MAKEFILE.wasmfs) \
     $(post-js.js)
        @echo "Building $@ ..."
        $(emcc.bin) -o $@ $(emcc_opt) $(emcc.flags) \
-      $(sqlite3-wasmfs.cflags) $(sqlite3-wasmfs.jsflags) $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasmfs.extra.c)
+      $(sqlite3-wasmfs.cflags) $(speedtest1-common.eflags) $(sqlite3-wasmfs.jsflags) $(sqlite3-wasmfs.wasm.c) $(sqlite3-wasmfs.extra.c)
        chmod -x $(sqlite3-wasmfs.wasm)
        $(maybe-wasm-strip) $(sqlite3-wasmfs.wasm)
        @ls -la $@ $(sqlite3-wasmfs.wasm)
@@ -99,17 +100,19 @@ all: wasmfs
 # faster binary.
 speedtest1-wasmfs.js := speedtest1-wasmfs.js
 speedtest1-wasmfs.wasm := $(subst .js,.wasm,$(speedtest1-wasmfs.js))
-speedtest1-wasmfs.eflags := -sENVIRONMENT=web,worker $(sqlite3-wasmfs.fsflags)
+speedtest1-wasmfs.eflags := $(sqlite3-wasmfs.fsflags)
 speedtest1-wasmfs.eflags += $(SQLITE_OPT) -DSQLITE_WASM_WASMFS
+speedtest1-wasmfs.eflags += --post-js=$(sqlite3-wasmfs.js)
 $(speedtest1-wasmfs.js): $(MAKEFILE) $(MAKEFILE.wasmfs)
 #$(speedtest1-wasmfs.js): $(sqlite3-wasmfs.js)
-$(speedtest1-wasmfs.js): $(speedtest1.c) $(sqlite3-wasm.c)
+$(speedtest1-wasmfs.js): $(speedtest1.cs) $(sqlite3-wasmfs.js) \
+  EXPORTED_FUNCTIONS.speedtest1
        @echo "Building $@ ..."
        $(emcc.bin) \
         $(speedtest1-wasmfs.eflags) $(speedtest1-common.eflags) \
         $(speedtest1.cflags) \
         $(sqlite3-wasmfs.cflags) \
-        -o $@ $(speedtest1.c) $(sqlite3-wasm.c) -lm
+        -o $@ $(speedtest1.cs) -lm
        $(maybe-wasm-strip) $(speedtest1-wasmfs.wasm)
        ls -la $@ $(speedtest1-wasmfs.wasm)
 
index 7ccebd60756b06dd35d065705a1c315f70e32123..7987e5931d20cc27b6e68c426785d9c26718eb72 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\ssqlite3_web_vfs_list()\sto\sJS\sAPI.\sCorrected\sOPFS\sVFS's\sregistering\sitself\sas\sthe\sdefault\sVFS.\sspeedtest1-worker\snow\suses\sthe\sxDelete()\sof\sboth\sthe\sdefault\sVFS\sand\sOPFS,\sto\savoid\sthat\sit\sstarts\sup\swith\sa\spersistent\sOPFS\stest\sdb\s(the\snative\sapp\scalls\sunlink(),\sbut\sthat\sunlink\scall\soperates\son\sa\sdifferent\svirtual\sfilesystem\sthan\sthe\sOPFS\sVFS).
-D 2022-09-19T13:44:23.433
+C Remove\san\sobsolete\sfile.\sUpdate\swasmfs\sbuild\sfor\stoday's\schanges.\sFix\sthe\scase\sthat\sOPFS.xTruncate()\sis\spassed\sa\sBigInt\sinstead\sof\sa\sNumber.
+D 2022-09-19T14:56:13.838
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -512,15 +512,14 @@ F ext/wasm/jaccwabyt/jaccwabyt_test.c 39e4b865a33548f943e2eb9dd0dc8d619a80de05d5
 F ext/wasm/jaccwabyt/jaccwabyt_test.exports 5ff001ef975c426ffe88d7d8a6e96ec725e568d2c2307c416902059339c06f19
 F ext/wasm/scratchpad-wasmfs-main.html 20cf6f1a8f368e70d01e8c17200e3eaa90f1c8e1029186d836d14b83845fbe06
 F ext/wasm/scratchpad-wasmfs-main.js f0836e3576df7a89390d777bb53e142e559e8a79becfb2a5a976490b05a1c4fa
-F ext/wasm/speedtest1-kvvfs.html c8b65c20e2b35298dc02d8e0a394d5e1eb857fd22e504468388234aee13aef08
-F ext/wasm/speedtest1-wasmfs.html a5eafc99e108f3b8136e9bb59757865aa45e6f1fa9d412cd4b4852a570cb4e11
-F ext/wasm/speedtest1-worker.html 1d723ae1eb8ddf5eebe7d43de32b5db04d732b674758bc2d684b6952f20b1fce
+F ext/wasm/speedtest1-wasmfs.html 9d8cd19eab8854d17f7129aa11607cae6f6d9857c505a4aef13000588583d93e
+F ext/wasm/speedtest1-worker.html f7adcc68af76d347741ecd884e0c773f707fa2cdec87cfd9b2e147f5fc2c56c7
 F ext/wasm/speedtest1-worker.js d7e02ff74c28c8f2ef19eb6585642d44b7c8e7b83ac19b7848b209a880945706
-F ext/wasm/speedtest1.html f136c6da59d77c5c0c784e0a67795723304ba4b47a45028dfb45132c4625cd4e
+F ext/wasm/speedtest1.html 512addeb3c27c94901178b7bcbde83a6f95c093f9ebe16a2959a0aa0d828cf1d
 F ext/wasm/split-speedtest1-script.sh a3e271938d4d14ee49105eb05567c6a69ba4c1f1293583ad5af0cd3a3779e205 x
 F ext/wasm/sql/000-mandelbrot.sql 775337a4b80938ac8146aedf88808282f04d02d983d82675bd63d9c2d97a15f0
 F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
-F ext/wasm/sqlite3-opfs-async-proxy.js 2e9a95fc6204f53ed871d04bdd0341d1c0d1a49c22d43b38144a5319f865930a
+F ext/wasm/sqlite3-opfs-async-proxy.js 7ce90feb4ed582a7709f6a99a46fd43a240a1c1ad2f9f47efff1bd32136ab09c
 F ext/wasm/sqlite3-worker1-promiser.js 4fd0465688a28a75f1d4ee4406540ba494f49844e3cad0670d0437a001943365
 F ext/wasm/sqlite3-worker1.js 0c1e7626304543969c3846573e080c082bf43bcaa47e87d416458af84f340a9e
 F ext/wasm/test-opfs-vfs.html eb69dda21eb414b8f5e3f7c1cc0f774103cc9c0f87b2d28a33419e778abfbab5
@@ -531,7 +530,7 @@ F ext/wasm/testing1.html 50575755e43232dbe4c2f97c9086b3118eb91ec2ee1fae931e6d766
 F ext/wasm/testing1.js 507001a970fe8a8eb67b6c8d783e1c1daa3db2719f727c4551af29349410e538
 F ext/wasm/testing2.html a66951c38137ff1d687df79466351f3c734fa9c6d9cce71d3cf97c291b2167e3
 F ext/wasm/testing2.js 25584bcc30f19673ce13a6f301f89f8820a59dfe044e0c4f2913941f4097fe3c
-F ext/wasm/wasmfs.make 21a5cf297954a689e0dc2a95299ae158f681cae5e90c10b99d986097815fd42d
+F ext/wasm/wasmfs.make 0fbe3b4ef4e5e25ed61d7b581c48e6406dd688443d1b8d4daf94d779a8056c54
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
@@ -2027,8 +2026,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P ec09f32f7ae2249aaf27388ad2062982afa8bbbb5f88d236d6d9068bf33ad93d
-R 51982b0b1e31fbc7ea3b58657a7f12b2
+P 2ec7e09139a510b9fd29e4c97283b20740a00f369193c6fecbb734f187e81b48
+R 1715d33dc730c3ab31438d0a66f7aa0a
 U stephan
-Z d7c826042daaeccd4155ca97997a92df
+Z 0f0e9b03805cac5450f028e863da1f77
 # Remove this line to create a well-formed Fossil manifest.
index cd14a7cc1c8443b1dcb3c3c4507265c6ce4ada1e..5c3cd2316b5220c8b604ea09f714ed436367eb21 100644 (file)
@@ -1 +1 @@
-2ec7e09139a510b9fd29e4c97283b20740a00f369193c6fecbb734f187e81b48
\ No newline at end of file
+976053925013bf1975f5f9222e28ba648af28e305bb6bdae600eb24d0e136bec
\ No newline at end of file