1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-22 00:02:13 +03:00
Commit Graph

799 Commits

Author SHA1 Message Date
c70631623c Remove extraneous are-we-making-clean guards from the generated wasm build rules, as that guard is set at a higher level. Rename a makefile call()able for consistency.
FossilOrigin-Name: 7f9074e2a7ff62bdcf343895e80a51224de62a22afbbf82068ec5fea7eeda0bb
2025-01-24 08:58:54 +00:00
07a2e5d1ed wasm: de-list demo-worker1-promiser-esm.html from the test pages because (per Chrome 131) "Module scripts don't support importScripts()", where "don't" means "they used to but no longer do".
FossilOrigin-Name: 4aa025a943a4024094b91f13abfb8945bbbb8334e3ec904dee5315852845bfe1
2025-01-23 22:23:31 +00:00
02e81f72a0 When running wasm-opt, ignore any failure because it will fail for unknown flags and the set of legal flags will change from version to version. Document the size-reduction effect (or non-effect) of a dozen-odd wasm-opt flags and retain those which demonstrate a wasm file size reduction in -Oz builds (our production build mode). Total size savings: roughly 13kb.
FossilOrigin-Name: c9dc581e0287e3462ac55f80ca76e7e98d31157022052c892517363c45287a7b
2025-01-23 19:44:09 +00:00
726a047a47 Remove some now-dead makefile code, rename a var for consistency, and fix a recipe bug introduced in the previous checkin in the bundler-friendly build.
FossilOrigin-Name: 0acd4ef3addb311476f4a670be0c4c4a0f3f88b0420886d4c1c3c3027dd51d73
2025-01-23 16:11:24 +00:00
efafde5eb4 Initial support for post-processing wasm files with wasm-opt (if it's available). This currently shaves 12kb off of the release-mode build of sqlite3.wasm but there are many dozens of wasm-opt flags left to try.
FossilOrigin-Name: 5d16e3f28364de2d6b6456a6fc56bf604b9106c3ae15719f2862192ae3020cc1
2025-01-23 15:58:01 +00:00
72543206e5 Move small parts of ext/wasm/GNUmakefile into ext/wasm/config.make.in and have the configure script populate that, rather than dynamically determining those values on each 'make' invocation. Add a configure-time check for the optional wasm-opt binary in prep for pending experimentation with using it to reduce the wasm file sizes.
FossilOrigin-Name: 0a426a549577b883e2de7cd0605041cc97b57f53ee6657bc318b0bfde7b62677
2025-01-23 14:09:02 +00:00
c9bf7ed9ad Remove unnecessary --minify 0 emcc flag from the wasm build, as -g3 implies that capability along with other anti-minification features we rely on.
FossilOrigin-Name: 10c91f9cd074e8d35af1c7f8251ac18e5dd91fa14df3fe4e1fb44441c4f08c7a
2025-01-23 11:21:29 +00:00
ec50c5a2a4 wasm: after generating the .js/.mjs file, strip out all of the generated pieces which create Emscripten call() bindings for the sqlite3 APIs, as we don't use those binding, so both the setup time and the memory they use installing WASM proxy bindings is wasted. This eliminates some 200 superfluous/unused bindings from the init process.
FossilOrigin-Name: 020d2c7528be6f11a5b2b849d7b2f04e47abe2b0842520ff60eb7defb3768e1c
2025-01-16 13:10:06 +00:00
3202b11f66 Replace use of Emscripten's Module.postRun() with a custom callback so that we get consistent library init timing with both Emscripten 3.1.x and 4.0.x. Details and discussion are in [https://github.com/emscripten-core/emscripten/issues/23420|Emscripten ticket #23420].
FossilOrigin-Name: 4863a70ac61ff6f868429f16f0141484ea98f973fde1a9aff879252d0f1dbb6b
2025-01-16 09:27:40 +00:00
3ba9adc5c1 Teach tool/stripccomments.c that a backslash immediately preceeding a forward slash means that that forward slash cannot be the start of a comment. This is intended to allow JavaScript regular expressions containing \/* (like [https://github.com/emscripten-core/emscripten/issues/23412|the one introduced in emsdk 4.0.0]) to pass through properly. Re-enable comment-stripping in the JS dist builds.
FossilOrigin-Name: db21d6cc9d1c425deffc0e4e92173caf586e6ac66110c71a4930b21e3e7f84b9
2025-01-15 21:09:19 +00:00
c738052394 Work around [https://github.com/emscripten-core/emscripten/issues/23420|a behavior change in emsdk 4.0.0] which breaks the load/init timing of the wasm module.
FossilOrigin-Name: 00a750184bcf1a94bf4e7f1d5029a42671e87e2997ae97be07bd900d3702883d
2025-01-15 20:53:14 +00:00
73d9eb1bb3 Fix a typo in a wasm makefile var name, noting that this doesn't actually fix anything because the var in question is not used when building 'clean' or 'distclean'.
FossilOrigin-Name: 7cfc75a625095e41c3e952d4a209fdbb344df0d3dd9b0103e9e6a986dfe53c89
2025-01-15 15:27:02 +00:00
4ea86ac0e3 Disable the C-style comment stripper in the JS dist build, as explained in [forum:529c20d344|forum post 529c20d344].
FossilOrigin-Name: a9475e7614f8e44252abf273d0e0522c247df12624e40108ce98ad4aaf320f2d
2025-01-15 14:28:56 +00:00
c1f914dbc9 Fix an age-old bug in the lower-level wasm/js helper bits which was (A) caused removal of customized WASM func/argument conversion to siltently fail and (B) triggered a warning in the closure toolchain. Reported in [jaccwabyt ticket c5c296e85a7c01360820|https://fossil.wanderinghorse.net/r/jaccwabyt/info/c5c296e85a7c01360820].
FossilOrigin-Name: 99917a5bb04b5ad6ace95baf86d91e6ce098f9d3001de1a29d3d0b0b817acdce
2025-01-11 09:02:55 +00:00
7398e279a7 Remove a flaky JS test which has a result depending on unrepredictable context. That same feature is more reliably tested at a later point in the same script.
FossilOrigin-Name: 3d6ae13805bdba4c73b7443f20073264cdd157299cb911228600e1528a136bb1
2024-11-22 16:45:43 +00:00
2f70d5838a Fix a JS test which was broken when OMIT_PROGRESS_CALLBACK was _not_ used.
FossilOrigin-Name: fba23150b5b57980f8ed2656a2325f95215ca1e13fc3449b5eec804831dd65c8
2024-11-21 15:53:31 +00:00
21d90a1607 Ensure that the ext/wasm fiddle build undefines certain shell feature flags which it cannot use but might be inherited from the top-level makefile.
FossilOrigin-Name: 99bb5d9b68edc3c5439f0776bce74532dd0131894c31dc8227d084e926c4638c
2024-11-04 10:16:15 +00:00
6ac6bedc80 Teach ext/wasm/GNUmakefile to use tool/emcc.sh and fix a syntax error in tool/emcc.sh.in. Work around a JimTCL incompatibility in tool/mkshellc.tcl.
FossilOrigin-Name: 24e0f6ecc67615a2a8c2df08aa47a782cf692fb1a5a59246eab83c0232e78edc
2024-10-22 12:56:00 +00:00
a525d635a9 Minor doc cleanups in SQLTester.mjs and confirm that the tests pass with both OPFS VFSes.
FossilOrigin-Name: ac747d57c2a26b47644bca2a9b191b09f5180f6872dce9c3261c370a18c848a2
2024-10-18 23:54:23 +00:00
23caead6cb Fix three bugs in SQLTester.mjs which caused --tableresult tests, escaping of SQL values to incorrectly fail, and the --column-names setting to not be reset between tests.
FossilOrigin-Name: 779368dd9b8bb20890b06229c4c3c3b5d153ee88d1af472799515cdc599c870a
2024-10-18 23:36:08 +00:00
b94228a119 Fix a var reference typo in SQLTester.mjs.
FossilOrigin-Name: 31179fa78e47cafae49df35f28e5c4b01654665d54ee60d059545ce2d97a39a2
2024-10-18 23:10:41 +00:00
d11a3fd916 Remove the unused dbfuzz2-asan/msan makefile targets. Fix a comment typo in a makefile.
FossilOrigin-Name: 07843ac245661e8b8e086ad9d36c60bacf11784e9c56482593691fb97732f04f
2024-10-18 16:50:29 +00:00
90675da34a Remove a not-strictly-necessary 'undefine' invocation from ext/wasm/GNUmakefile, as it is not compatible with too-old versions of gmake. Resolves the problem reported in [forum:e57932e3ccdc2c9c | forum post e57932e3ccdc2c9c].
FossilOrigin-Name: a31a94644113c226a06316a3f95fb38b605821f1c123e2cda06ba90bfcacf59f
2024-10-18 12:31:21 +00:00
cab9574668 Ensure that the OPFS VFS's xOpen() writes back the read-only flag to the output flags. Resolves the problem reported in [forum:cf37d5ff1182c31081 | forum post cf37d5ff1182c31081].
FossilOrigin-Name: 0a32624015f16fd881a4ecbb56b7833391028d327a95f4c899eee864ed7fe00d
2024-10-17 12:14:34 +00:00
6031de92c6 When calling OpfsSAHPoolUtil.removeVfs(), ensure that the cached result the VFS init is also removed so that the VFS may later be registered again with the same name. Set up test code for the regression reported in [forum:cf37d5ff11 | forum post cf37d5ff11] (which uncovered the removeVfs() shortcoming) but that test is currently only known to fail with the "opfs" VFS and is not currently set up to fail.
FossilOrigin-Name: b7f7a5deeae61920dbfec7606cf9014de711f959a285b29e12673abfd2f88646
2024-10-17 11:12:57 +00:00
drh
010f9f8704 Remove a few more traces of long double from the code.
FossilOrigin-Name: 11d6a89e4a25c3f884ff617036d239dc42522859400cd1f4674634f6c7adbb02
2024-10-02 11:34:11 +00:00
1f2faa647f Another comment about the LONGDOUBLE wasm topic. No code changes.
FossilOrigin-Name: 1755831cb1ac58241e0b11d8d003b5eca39b65aa3cb84229b215662028b1b3c0
2024-10-01 17:57:55 +00:00
c9c1b65698 Use the new SQLITE_USE_LONG_DOUBLE to disable long-double support in WASM builds, as they cannot be represented in JS and this saves approximately 5.5kb in the resulting wasm file.
FossilOrigin-Name: fa7b56f776b715d061581fad6f04b871504ff5d808e7364419d1d6cdef82c5ee
2024-10-01 17:08:23 +00:00
ed94e0e677 Add an #if'd-out block to sqlite3-wasm.c mentioning the LONGDOUBLE_TYPE, as brought up in [forum:cbfb0d0ac0a4e349 | forum post cbfb0d0ac]. No functional changes.
FossilOrigin-Name: 0b83e8f1ef53b35a9dda0740b4922b8691428f7484f3058833a961f3f8d0b178
2024-10-01 10:49:30 +00:00
33669ef289 Add another missing mkdir to the wasm build process.
FossilOrigin-Name: e815055b321085deda8607ac3279ef1a1c890fe3bf9d9b9c0a74028e87857a7d
2024-09-28 15:13:49 +00:00
5ec9ed7fe9 Complete a line of documentation which was interrupted mid-sentence.
FossilOrigin-Name: c9cbbeda3d1ec4215396aaaf94428b829c4f53329431fa61251914c195f8a9a1
2024-09-28 13:51:47 +00:00
6a8336987a wasm: move the makefile-eval-generated fiddle rules into mkwasmbuilds.c. Squelch some warnings from grep when running 'make clean' on a clean tree.
FossilOrigin-Name: 0485d1360b0dbf9987d16ab1df47b6b7a25595881581799f87889f6d4eeb60f4
2024-09-28 12:01:10 +00:00
d4c735d491 Ensure that the temporary build dir is mkdir'd by wasm deps which depend on it.
FossilOrigin-Name: cabdf9797281090ab3f95c9f4c2a79878d1c64d1f2a09e433e2309abe5e19e59
2024-09-28 11:23:09 +00:00
51fb37db61 For wasm builds: automatically use higher optimization (but slower build) levels when a target related to deliverables (as opposed to dev mode) is explicitly invoked.
FossilOrigin-Name: 45361ab9744ccac3419d97fe8951838f14bd28220e3f7f747b39e46cfc3b5a1d
2024-09-28 11:03:00 +00:00
fabae7a134 Minor makefile doc fixes. No functional changes.
FossilOrigin-Name: b3ad58e1fc73941f2d32bab0e0fac0b95849ae69f84788a431e65bb072e42db5
2024-09-28 00:39:19 +00:00
3c58039e9e Merge wasm-build-rework branch into trunk. Summary: 1) add optional bare-bones build, stripped of many optional library features, 2) replace much of the hyper-spaghetti wasm-specific makefile code with a more legible static code generator.
FossilOrigin-Name: 208c27714646c9bc26eef11266086a71da04bc24e87078de0955e7beb68a821e
2024-09-28 00:02:52 +00:00
add19478c1 Fix fiddle build broken by recent build-level reworks. Remove a stale reference to an old CSS file.
FossilOrigin-Name: f904b3b7842da036c3e8423bae02cdf207573c92dc379a601eae289eb3c5f547
2024-09-27 23:45:40 +00:00
613c2ee21f Minor wasmfs speedtest1 build tweaks. Disable one wasmfs demo which was broken by Emscripten-side changes.
FossilOrigin-Name: 5ccc85d8f5809d961602dff557dca1ed34f5db61203912387272034e4da02614
2024-09-24 21:54:37 +00:00
d2917d9f69 Minor tweaks in mkwasmbuilds.c.
FossilOrigin-Name: cee43280727435440b9e01b302a790a1a102aea930bc821ebc737ea519458cef
2024-09-24 13:00:21 +00:00
88c43ce1f6 Wasm build cleanups. Fix the wasm speedtest1 builds broken by yesterday's refactoring.
FossilOrigin-Name: 5d4a090230d1d7609e70b9c28d662dc8b0f8dd4d70a254f3ce6e449c68a25897
2024-09-24 12:16:05 +00:00
405ae974ee Further wasm build cleanups and tweaks. No functional changes.
FossilOrigin-Name: 3b72a143431537ec275aefae739e56330c1d445c9ea80885882a2b9aa2201179
2024-09-24 00:31:08 +00:00
6ed21e8fd7 Typo fix in makefile comments.
FossilOrigin-Name: a4a1287fe8205d7c24556ec2e7ae09cda37a36dbe405ea70cd756cf488549036
2024-09-23 22:56:54 +00:00
69cce89425 wasm: replace much of the eval makefile spaghetti with equivalent code generated from a small C app. It turns out that's easier to read and write than doing the same thing from shell or tcl code, due entirely to C's lack of need for escaping dollar signs.
FossilOrigin-Name: 5440de48903e94f91090e2df65702ec0c504e33dd5cbd50f684cf30988f20b02
2024-09-23 21:22:09 +00:00
8ade1d2f97 Merge trunk into the wasm-build-rework branch.
FossilOrigin-Name: a1cf3095a87e101ff83ad64f20ae2e61858c7049181abfb18aece6f0a8451c15
2024-08-25 12:04:05 +00:00
d35a69a8da Fix a non-bare-bones-mode test case broken by the previous checkin.
FossilOrigin-Name: 3be729493b76a8b51c19d81543dea2dcb1fc718f81d4f2d9c6e1381789217687
2024-07-25 16:28:55 +00:00
e7840ce681 Strip progress handlers and window functions from the wasm bare-bones (formerly 'minimal') JS bits, noting that we can't yet use OMIT_WINDOWFUNC (for the C parts) without a custom amalgamation. Currently at 604kb.
FossilOrigin-Name: ec02e9237e1ef81c4196fa630822cb109eab926143ad09593a24273eb0668601
2024-07-25 16:21:19 +00:00
520d1a8486 More work on the minimal-mode wasm build (now 603kb uncompressed). Remove the hard-coded feature-enable flags from sqlite3-wasm.c and rely on the build to provide them. Some wasm build cleanup, but attempts to completely overhaul it have been thwarted by my inability to make script-generated makefile code more legible/maintainable than the current eval spaghetti.
FossilOrigin-Name: b029c4067943e366a9b25b8303136fab10822bd771ea4658ac4cd716ff4a0d8f
2024-07-25 14:00:26 +00:00
cc65612e35 Start work on an overhaul of the wasm build process, with an eye towards less over-engineering.
FossilOrigin-Name: ed746b3dd3248b68cb91de50ac5ba5fd3a7c2fcbde76324e86b88edbfecd896b
2024-07-25 10:50:45 +00:00
b16c2980b3 wasm minimal build: strip authorizers and JSON support (saves approx 35kb). Strip vtab support from the JS bits but cannot yet strip it from the C bits because that requires a custom-configured sqlite3.c.
FossilOrigin-Name: eb64d106551718467e0f6c6b53695410bf4c566901008e4cda8580d0f7efa7b0
2024-07-24 23:58:28 +00:00
fe225745fc Restructuring of the wasm build to support an experimental 'minimal' build mode which elides all non-core APIs.
FossilOrigin-Name: ee2191f7302210100fa0b29ace8156531ad995bf61aa2642e526e0901d0c6862
2024-07-24 22:07:18 +00:00