]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
wasm/fiddle refactoring part 1 of N: move fiddle app from ext/fiddle to ext/wasm...
authorstephan <stephan@noemail.net>
Wed, 10 Aug 2022 09:36:10 +0000 (09:36 +0000)
committerstephan <stephan@noemail.net>
Wed, 10 Aug 2022 09:36:10 +0000 (09:36 +0000)
FossilOrigin-Name: fb4eb93080288b60815be14afd7ddbbca470ce363fa3735352ea9a558fef583e

Makefile.in
ext/wasm/EXPORTED_FUNCTIONS.fiddle [moved from ext/fiddle/EXPORTED_FUNCTIONS.fiddle with 100% similarity]
ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle [moved from ext/fiddle/EXPORTED_RUNTIME_METHODS with 100% similarity]
ext/wasm/GNUmakefile [moved from ext/fiddle/Makefile with 77% similarity]
ext/wasm/README.md [moved from ext/fiddle/index.md with 78% similarity]
ext/wasm/fiddle/emscripten.css [moved from ext/fiddle/emscripten.css with 100% similarity]
ext/wasm/fiddle/fiddle-worker.js [moved from ext/fiddle/fiddle-worker.js with 100% similarity]
ext/wasm/fiddle/fiddle.html [moved from ext/fiddle/fiddle.html with 100% similarity]
ext/wasm/fiddle/fiddle.js [moved from ext/fiddle/fiddle.js with 100% similarity]
manifest
manifest.uuid

index cfa81cacf98e426abccd9b8b3a4d3d64a7a4b41d..3b9a7b56bccb9496d9f671d415f690ba3b0f82d8 100644 (file)
@@ -1524,13 +1524,12 @@ sqlite3.dll: $(REAL_LIBOBJ) sqlite3.def
 #
 # fiddle/wasm section
 #
-fiddle_dir = ext/fiddle
-fiddle_dir_abs = $(TOP)/$(fiddle_dir)
+wasm_dir = ext/wasm
+wasm_dir_abs = $(TOP)/ext/wasm
 # ^^^ some emcc opts require absolute paths
-fiddle_html = $(fiddle_dir)/fiddle.html
+fiddle_dir = $(wasm_dir)/fiddle
+fiddle_dir_abs = $(TOP)/$(fiddle_dir)
 fiddle_module_js = $(fiddle_dir)/fiddle-module.js
-sqlite3_wasm_js = $(fiddle_dir)/sqlite3.js
-sqlite3_wasm = $(fiddle_dir)/sqlite3.wasm
 #emcc_opt = -O0
 #emcc_opt = -O1
 #emcc_opt = -O2
@@ -1542,54 +1541,34 @@ emcc_flags = $(emcc_opt) \
         -sSTRICT_JS \
         -sENVIRONMENT=web \
         -sMODULARIZE \
-        -sEXPORTED_RUNTIME_METHODS=@$(fiddle_dir_abs)/EXPORTED_RUNTIME_METHODS \
+        -sEXPORTED_RUNTIME_METHODS=@$(wasm_dir_abs)/EXPORTED_RUNTIME_METHODS.fiddle \
         -sDYNAMIC_EXECUTION=0 \
         --minify 0 \
-        -I. $(SHELL_OPT)
+        -I. $(SHELL_OPT) \
+        -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_UTF16 -DSQLITE_OMIT_DEPRECATED
 $(fiddle_module_js): Makefile sqlite3.c shell.c \
-    $(fiddle_dir)/EXPORTED_RUNTIME_METHODS \
-    $(fiddle_dir)/EXPORTED_FUNCTIONS.fiddle
+    $(wasm_dir)/EXPORTED_RUNTIME_METHODS.fiddle \
+    $(wasm_dir)/EXPORTED_FUNCTIONS.fiddle
        emcc -o $@ $(emcc_flags) \
         -sEXPORT_NAME=initFiddleModule \
-        -sEXPORTED_FUNCTIONS=@$(fiddle_dir_abs)/EXPORTED_FUNCTIONS.fiddle \
+        -sEXPORTED_FUNCTIONS=@$(wasm_dir_abs)/EXPORTED_FUNCTIONS.fiddle \
         -DSQLITE_SHELL_FIDDLE \
         sqlite3.c shell.c
        gzip < $@ > $@.gz
        gzip < $(fiddle_dir)/fiddle-module.wasm > $(fiddle_dir)/fiddle-module.wasm.gz
-$(sqlite3_wasm_js): Makefile sqlite3.c $(fiddle_dir)/wasm_util.c \
-    $(fiddle_dir)/sqlite3-api.js \
-    $(fiddle_dir)/EXPORTED_RUNTIME_METHODS \
-    $(fiddle_dir)/EXPORTED_FUNCTIONS.sqlite3-api
-       emcc -o $@ $(emcc_flags) \
-        -sEXPORT_NAME=sqlite3InitModule \
-        -sEXPORTED_FUNCTIONS=@$(fiddle_dir_abs)/EXPORTED_FUNCTIONS.sqlite3-api \
-        --post-js=$(fiddle_dir)/sqlite3-api.js \
-        --no-entry \
-        sqlite3.c $(fiddle_dir)/wasm_util.c
-       gzip < $@ > $@.gz
-       gzip < $(sqlite3_wasm) > $(sqlite3_wasm).gz
-       gzip < $(fiddle_dir)/sqlite3-api.js > $(fiddle_dir)/sqlite3-api.js.gz
 $(fiddle_dir)/fiddle.js.gz: $(fiddle_dir)/fiddle.js
        gzip < $< > $@
-$(fiddle_dir)/sqlite3-api.js.gz: $(fiddle_dir)/sqlite3-api.js
-       gzip < $< > $@
 
 fiddle_generated = $(fiddle_module_js) $(fiddle_module_js).gz \
                    $(fiddle_dir)/fiddle-module.wasm \
                    $(fiddle_dir)/fiddle-module.wasm.gz \
                    $(fiddle_dir)/fiddle.js.gz
-sqlite3_wasm_generated = \
-                   $(sqlite3_wasm) $(sqlite3_wasm).gz \
-                   $(sqlite3_wasm_js) $(sqlite3_wasm_js).gz \
-                   $(fiddle_dir)/sqlite3.js.gz \
-                   $(fiddle_dir)/sqlite3-api.js.gz
 
 clean-wasm:
-       rm -f $(fiddle_generated) $(sqlite3_wasm_generated)
+       rm -f $(fiddle_generated)
 clean: clean-wasm
 fiddle: $(fiddle_module_js) $(fiddle_dir)/fiddle.js.gz
-sqlite3-wasm: $(sqlite3_wasm_js)
-wasm: fiddle sqlite3-wasm
+wasm: fiddle
 ########################################################################
 # Explanation of the emcc build flags follows. Full docs for these can
 # be found at:
similarity index 77%
rename from ext/fiddle/Makefile
rename to ext/wasm/GNUmakefile
index b274574d7f41657dcab9d27c72ce16d4caf56c0e..99a1c5b031ed7c97a70da00f22dc282e765f93f0 100644 (file)
@@ -6,11 +6,6 @@ default:
 clean:
        $(MAKE) -C ../../ clean-wasm
 
-fiddle_files = emscripten.css fiddle.html \
-             fiddle.js fiddle-module.js \
-             fiddle-module.wasm fiddle-worker.js \
-             $(wildcard *.wasm.gz) $(wildcard *.js.gz)
-
 # fiddle_remote is the remote destination for the fiddle app. It
 # must be a [user@]HOST:/path for rsync.
 # Note that the target "should probably" contain a symlink of
@@ -31,4 +26,4 @@ push-fiddle: $(fiddle_files)
                echo "fiddle_remote must be a [user@]HOST:/path for rsync"; \
                exit 1; \
        fi
-       rsync -va $(fiddle_files) $(fiddle_remote)
+       rsync -va fiddle/ $(fiddle_remote)
similarity index 78%
rename from ext/fiddle/index.md
rename to ext/wasm/README.md
index 9d1f8d83eae116aebca6c227f1364ef8f0cd533a..1702e1f4277b63bd034d40ef03315d0fa3c4b921 100644 (file)
@@ -1,7 +1,5 @@
-This directory houses a "fiddle"-style application which embeds a
-[Web Assembly (WASM)](https://en.wikipedia.org/wiki/WebAssembly)
-build of the sqlite3 shell app into an HTML page, effectively running
-the shell in a client-side browser.
+This directory houses the [Web Assembly (WASM)](https://en.wikipedia.org/wiki/WebAssembly)
+parts of the sqlite3 build.
 
 It requires [emscripten][] and that the build environment be set up for
 emscripten. A mini-HOWTO for setting that up follows...
@@ -22,8 +20,15 @@ $ ./emsdk install latest
 $ ./emsdk activate latest
 ```
 
-Those parts only need to be run once. The following needs to be run for each
-shell instance which needs the `emcc` compiler:
+Those parts only need to be run once, but the SDK can be updated using:
+
+```
+$ git pull
+$ ./emsdk activate latest
+```
+
+The following needs to be run for each shell instance which needs the
+`emcc` compiler:
 
 ```
 # Activate PATH and other environment variables in the current terminal:
@@ -33,8 +38,11 @@ $ which emcc
 /path/to/emsdk/upstream/emscripten/emcc
 ```
 
-That `env` script needs to be sourced for building this application from the
-top of the sqlite3 build tree:
+Optionally, add that to your login shell's resource file (`~/.bashrc`
+or equivalent).
+
+That `env` script needs to be sourced for building this application
+from the top of the sqlite3 build tree:
 
 ```
 $ make fiddle
@@ -43,29 +51,30 @@ $ make fiddle
 Or:
 
 ```
-$ cd ext/fiddle
+$ cd ext/wasm
 $ make
 ```
 
 That will generate the fiddle application under
-[ext/fiddle](/dir/ext/fiddle), as `fiddle.html`. That application
+[ext/fiddle](/dir/ext/wasm/fiddle), as `fiddle.html`. That application
 cannot, due to XMLHttpRequest security limitations, run if the HTML
 file is opened directly in the browser (i.e. if it is opened using a
 `file://` URL), so it needs to be served via an HTTP server.  For
 example, using [althttpd][]:
 
 ```
-$ cd ext/fiddle
-$ althttpd -debug 1 -jail 0 -port 9090 -root .
+$ cd ext/wasm/fiddle
+$ althttpd -page fiddle.html
 ```
 
-Then browse to `http://localhost:9090/fiddle.html`.
+That will open the system's browser and run the fiddle app's page.
 
 Note that when serving this app via [althttpd][], it must be a version
 from 2022-05-17 or newer so that it recognizes the `.wasm` file
 extension and responds with the mimetype `application/wasm`, as the
 WASM loader is pedantic about that detail.
 
+
 # Known Quirks and Limitations
 
 Some "impedence mismatch" between C and WASM/JavaScript is to be
index d312d2b6ed67e99962d8acf0856391b12cd93cf3..913da59c3c05ac4950a4f0e9eab27a4927221d43 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,9 +1,9 @@
-C Merged\sin\strunk\sfor\spending\stree\srefactoring.
-D 2022-08-10T07:58:57.865
+C wasm/fiddle\srefactoring\spart\s1\sof\sN:\smove\sfiddle\sapp\sfrom\sext/fiddle\sto\sext/wasm/fiddle,\swhich\sonly\scontains\sfiles\sintended\sto\sbe\spushed\sto\sthe\slive\ssite.\sDisabled\sbuild\sof\sthe\snon-fiddle\swasm\sparts,\spending\sa\slater\sstep\sof\sthe\srefactoring.
+D 2022-08-10T09:36:10.232
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
-F Makefile.in efc6e3d5c558ef5abb20cad20cf96bcecb86755ce45a858e6c64bfbd9749fd30
+F Makefile.in a77d419b19eb2f806109ae2d0b81abb39a3a8659b00e528da7e27bd95c7e29fd
 F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
 F Makefile.msc d547a2fdba38a1c6cd1954977d0b0cc017f5f8fbfbc65287bf8d335808938016
 F README.md 8b8df9ca852aeac4864eb1e400002633ee6db84065bd01b78c33817f97d31f5e
@@ -55,16 +55,8 @@ F ext/expert/expert1.test 3c642a4e7bbb14f21ddab595436fb465a4733f47a0fe5b2855e1d5
 F ext/expert/sqlite3expert.c 6ca30d73b9ed75bd56d6e0d7f2c962d2affaa72c505458619d0ff5d9cdfac204
 F ext/expert/sqlite3expert.h ca81efc2679a92373a13a3e76a6138d0310e32be53d6c3bfaedabd158ea8969b
 F ext/expert/test_expert.c d56c194b769bdc90cf829a14c9ecbc1edca9c850b837a4d0b13be14095c32a72
-F ext/fiddle/EXPORTED_FUNCTIONS.fiddle 7fb73f7150ab79d83bb45a67d257553c905c78cd3d693101699243f36c5ae6c3
 F ext/fiddle/EXPORTED_FUNCTIONS.sqlite3-api 356c356931b58eccf68367120f304db43ab6c2ef2f62f17f12f5a99737b43c38
-F ext/fiddle/EXPORTED_RUNTIME_METHODS a004bd5eeeda6d3b28d16779b7f1a80305bfe009dfc7f0721b042967f0d39d02
-F ext/fiddle/Makefile 1d303ee6449be3bab67f4b1456bacf903eb1c5e6d40d3b391651d7e0879d891a
 F ext/fiddle/SqliteTestUtil.js 2e87d424b12674476bdf8139934dcacc3ff8a7a5f5ff4392ba5e5a8d8cee9fbd
-F ext/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
-F ext/fiddle/fiddle-worker.js 88bc2193a6cb6a3f04d8911bed50a4401fe6f277de7a71ba833865ab64a1b4ae
-F ext/fiddle/fiddle.html 550c5aafce40bd218de9bf26192749f69f9b10bc379423ecd2e162bcef885c08
-F ext/fiddle/fiddle.js 812f9954cc7c4b191884ad171f36fcf2d0112d0a7ecfdf6087896833a0c079a8
-F ext/fiddle/index.md d9c1c308d8074341bc3b11d1d39073cd77754cb3ca9aeb949f23fdd8323d81cf
 F ext/fiddle/sqlite3-api.js 5a6cc120f3eeaab65e49bcdab234e83d83c67440e04bd97191bdc004ac0cda35
 F ext/fiddle/sqlite3-worker.js 50b7a9ce14c8fae0af965e35605fe12cafb79c1e01e99216d8110d8b02fbf4b5
 F ext/fiddle/testing.css 750572dded671d2cf142bbcb27af5542522ac08db128245d0b9fe410aa1d7f2a
@@ -490,6 +482,14 @@ F ext/session/test_session.c f433f68a8a8c64b0f5bc74dc725078f12483301ad4ae8375205
 F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
 F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
 F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
+F ext/wasm/EXPORTED_FUNCTIONS.fiddle 7fb73f7150ab79d83bb45a67d257553c905c78cd3d693101699243f36c5ae6c3 w ext/fiddle/EXPORTED_FUNCTIONS.fiddle
+F ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle a004bd5eeeda6d3b28d16779b7f1a80305bfe009dfc7f0721b042967f0d39d02 w ext/fiddle/EXPORTED_RUNTIME_METHODS
+F ext/wasm/GNUmakefile c71257754d3f69ed19308e91c2829be98532aa27ba1feaefe53d2bf17c047dc8 w ext/fiddle/Makefile
+F ext/wasm/README.md 4b00ae7c7d93c4591251245f0996a319e2651361013c98d2efb0b026771b7331 w ext/fiddle/index.md
+F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f w ext/fiddle/emscripten.css
+F ext/wasm/fiddle/fiddle-worker.js 88bc2193a6cb6a3f04d8911bed50a4401fe6f277de7a71ba833865ab64a1b4ae w ext/fiddle/fiddle-worker.js
+F ext/wasm/fiddle/fiddle.html 550c5aafce40bd218de9bf26192749f69f9b10bc379423ecd2e162bcef885c08 w ext/fiddle/fiddle.html
+F ext/wasm/fiddle/fiddle.js 812f9954cc7c4b191884ad171f36fcf2d0112d0a7ecfdf6087896833a0c079a8 w ext/fiddle/fiddle.js
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
@@ -1983,8 +1983,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 d662796c658997be13fdc3b77ad97101b9513da53fd0b824d7a4050cac3f7eba f963c2523872b59b8a7a14971f703f2eb0d021501b288597a958f6596885d0de
-R 32a46e2655367bd84dca87f379c92af7
+P c3a3cb0103126210692bbeb703e7b8793974042e1fc2473be6d0a0d9b07d5770
+R 7933790875a6b3f54b530ce22fe4d8f0
 U stephan
-Z ae9739b616b9feb7c2ad647c284be5e7
+Z f8f037574e62bc4aeafe6c26802ca165
 # Remove this line to create a well-formed Fossil manifest.
index b2f40f826a85018546c6a302c55f239c05df0573..1031463cb5aa64d99b6a76c73b6c3514ca0b637c 100644 (file)
@@ -1 +1 @@
-c3a3cb0103126210692bbeb703e7b8793974042e1fc2473be6d0a0d9b07d5770
\ No newline at end of file
+fb4eb93080288b60815be14afd7ddbbca470ce363fa3735352ea9a558fef583e
\ No newline at end of file