]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In the shell WASM build, call open_db() early so that we can get access to the global...
authorstephan <stephan@noemail.net>
Sat, 21 May 2022 00:01:45 +0000 (00:01 +0000)
committerstephan <stephan@noemail.net>
Sat, 21 May 2022 00:01:45 +0000 (00:01 +0000)
FossilOrigin-Name: 31706ef851f7d55e2fe865933ec03f42dfa8b49e6d1f12b6c016b5c1d3460504

Makefile.in
manifest
manifest.uuid
src/shell.c.in

index 977f0da95326bbcc88f9e466b66a350b41e9e8b4..a14c6a87eed793162376ce35ea1913495d844267 100644 (file)
@@ -1522,6 +1522,9 @@ fiddle_html = $(fiddle_dir)/fiddle.html
 fiddle_generated = $(fiddle_html) \
                    $(fiddle_dir)/fiddle.js \
                    $(fiddle_dir)/fiddle.wasm
+# fiddle_dummy_exports = ,comma,list of func bound solely for
+# experimentation and testing purposes in the WASM build.
+fiddle_dummy_exports = ,_fiddle_experiment,_fiddle_the_db,_fiddle_db_arg
 clean-fiddle:
        rm -f $(fiddle_generated)
 clean: clean-fiddle
@@ -1529,11 +1532,11 @@ clean: clean-fiddle
 #emcc_opt = -O1
 #emcc_opt = -O2
 #emcc_opt = -O3
+# --js-library $(fiddle_dir)/_dummylib.js
 emcc_opt = -Oz
 emcc_flags = $(emcc_opt) $(SHELL_OPT) \
              -sEXPORTED_RUNTIME_METHODS=ccall,cwrap \
-             -sEXPORTED_FUNCTIONS=_fiddle_exec \
-             -sEXIT_RUNTIME=1 \
+             -sEXPORTED_FUNCTIONS=_fiddle_exec$(fiddle_dummy_exports) \
              --pre-js $(fiddle_dir)/module-pre.js \
              --post-js $(fiddle_dir)/module-post.js \
              --shell-file $(fiddle_dir)/fiddle.in.html \
index c9e770215297e862735b33069aaca0804131dd29..f8cf418a563fd153dd83c126b22d8e8275e637dc 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,9 +1,9 @@
-C Added\sthe\sstandard\ssqlite\slicense\sheader\sto\sthe\sthe\sfiddle\sJS\sfiles.\sMinor\sinternal\srenamings\sin\sthose\ssame\sfiles.
-D 2022-05-20T13:50:04.114
+C In\sthe\sshell\sWASM\sbuild,\scall\sopen_db()\searly\sso\sthat\swe\scan\sget\saccess\sto\sthe\sglobal\sdb\shandle\sfrom\scertain\sexperimentation-only\sfunction\swithout\shaving\sto\sfirst\srun\ssome\sSQL\scode.
+D 2022-05-21T00:01:45.485
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
-F Makefile.in 5dbc61c076215a580d59d1f21b5e62955d2e570321b63f00a31b188f1f5089a6
+F Makefile.in e3327ed68a4fd74f582db211b2762dda06d4a7f87220eaaaf97f63a200fdbefa
 F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
 F Makefile.msc b28a8a7a977e7312f6859f560348e1eb110c21bd6cf9fab0d16537c0a514eef3
 F README.md 8b8df9ca852aeac4864eb1e400002633ee6db84065bd01b78c33817f97d31f5e
@@ -559,7 +559,7 @@ F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
 F src/resolve.c a4eb3c617027fd049b07432f3b942ea7151fa793a332a11a7d0f58c9539e104f
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c 74060a09f66c0c056f3c61627e22cb484af0bbfa29d7d14dcf17c684742c15de
-F src/shell.c.in 198aed4b4d225acdaf89c19b1c32b5e1a5c5956ef25c6de993ec6ac872369215
+F src/shell.c.in c2d899a884cb0304cfd12e3d37c8152be5c578f8bed0e3dae53f92130363ccfc
 F src/sqlite.h.in d15c307939039086adca159dd340a94b79b69827e74c6d661f343eeeaefba896
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h a988810c9b21c0dc36dc7a62735012339dc76fc7ab448fb0792721d30eacb69d
@@ -1959,8 +1959,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 326f79ea54566a9302be99d920856f13b48f2c2ed265fa87d78ced367d4b1946
-R 76d9a4819c4f6ef4f9e021cade27fd08
+P 67e40d99ff84a6cb23c68bf0722a4f9dee29b8ad18d9e7aac7d1665e99901ba1
+R b8510496fc1cbfa1fe2f478924d15996
 U stephan
-Z 966630693783fc252ee07d3554d16c4c
+Z 60d40b9749dd39838277861d3f9c9ebd
 # Remove this line to create a well-formed Fossil manifest.
index 5dacd119dc2cc07019556afe444bba05d1e5355b..11c46869a69592b5bf1d0a0df44bfe5be9a773ec 100644 (file)
@@ -1 +1 @@
-67e40d99ff84a6cb23c68bf0722a4f9dee29b8ad18d9e7aac7d1665e99901ba1
\ No newline at end of file
+31706ef851f7d55e2fe865933ec03f42dfa8b49e6d1f12b6c016b5c1d3460504
\ No newline at end of file
index 1dedcad42caaa94a6bbd12fe66985a687e2a3865..8f3f8cdd7de6f6acb2339cb081071e182d14fe2f 100644 (file)
@@ -12563,6 +12563,38 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
 
 
 #ifdef SQLITE_SHELL_WASM_MODE
+/* Only for emcc experimentation purposes. */
+int fiddle_experiment(int a,int b){
+   return a + b;
+}
+
+/* Only for emcc experimentation purposes.
+
+  Define this function in JS using:
+
+  emcc ... --js-library somefile.js
+
+  containing:
+
+mergeInto(LibraryManager.library, {
+    my_foo: function(){
+        console.debug("my_foo()",arguments);
+    }
+});
+*/
+/*extern void my_foo(sqlite3 *);*/
+/* Only for emcc experimentation purposes. */
+sqlite3 * fiddle_the_db(){
+    printf("fiddle_the_db(%p)\n", (const void*)globalDb);
+    /*my_foo(globalDb);*/
+    return globalDb;
+}
+/* Only for emcc experimentation purposes. */
+sqlite3 * fiddle_db_arg(sqlite3 *arg){
+    printf("fiddle_db_arg(%p)\n", (const void*)arg);
+    return arg;
+}
+
 /*
 ** Trivial exportable function for emscripten. Needs to be exported using:
 **
@@ -12589,7 +12621,13 @@ void fiddle_exec(const char * zSql){
     );
     puts("WASM shell");
     puts("Enter \".help\" for usage hints.");
-    puts("Connected to a transient in-memory database.");
+    if(once>0) open_db(&shellState, 0);
+    if(shellState.db){
+      puts("Connected to a transient in-memory database.");
+    }else{
+      fprintf(stderr,"ERROR initializing db!\n");
+      return;
+    }
   }
   if(once<0){
     puts("DB init failed. Not executing SQL.");