diff --git a/Makefile.in b/Makefile.in index 977f0da953..a14c6a87ee 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 \ diff --git a/manifest b/manifest index c9e7702152..f8cf418a56 100644 --- 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. diff --git a/manifest.uuid b/manifest.uuid index 5dacd119dc..11c46869a6 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -67e40d99ff84a6cb23c68bf0722a4f9dee29b8ad18d9e7aac7d1665e99901ba1 \ No newline at end of file +31706ef851f7d55e2fe865933ec03f42dfa8b49e6d1f12b6c016b5c1d3460504 \ No newline at end of file diff --git a/src/shell.c.in b/src/shell.c.in index 1dedcad42c..8f3f8cdd7d 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -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.");