aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm
Commit message (Collapse)AuthorAge
...
* Refactor a significant chunk of the OPFS sqlite3_vfs init code into ↵stephan2022-11-30
| | | | | sqlite3.VfsHelper, and internal-use-only API encapsulating code relevant to creating new VFSes in JS. Intended to assist in pending experimentation with an alternative OPFS VFS. FossilOrigin-Name: e25d7b080a807e35b32cb885ea75b384130e5c6e936dfef783c5b45d9bfe77d8
* Doc and logging text tweaks in the OPFS async proxy and test app.stephan2022-11-30
| | | FossilOrigin-Name: 7ce8608e221924d2c7067687eb6eef0f3cab181d5b4132e55a67d8514b6ce94b
* sqlite3.oo1.OpfsDb: default to journal_mode=persist, as current tests show ↵stephan2022-11-29
| | | | | it to be marginally faster than truncate/delete in Chrome v109. Also increase default busy_timeout from 2 seconds to 3, admittedly on a whim. FossilOrigin-Name: d0c8fa30a31c691bc1be5e98d806eeb1e23a8fc6cd54d87e5c1b720aa936e707
* OPFS speedtest1: hide a currently-broken/to-fix WASMFS-build link.stephan2022-11-29
| | | FossilOrigin-Name: cde95d382f8debcbca27c4aaf08470ffda35ab10d723a887786669367590ad3c
* Rename one instance of opfs.OpfsDb to oo1.OpfsDb, as per [0c5c51f4fb04].stephan2022-11-29
| | | FossilOrigin-Name: 75b04c9b302ec66749d8f072a49e61de9640b868bec99eadeb5b4bdef354c336
* Minor internal cleanups and docs in the OPFS sqlite3_vfs.stephan2022-11-29
| | | FossilOrigin-Name: 61799b05ff232c2ac349169c27bfe7f8d9277366093b0c9dd2739828993b3066
* Internal restructuring of the OPFS sqlite3_vfs in order to facilitate ↵stephan2022-11-29
| | | | | certain experimentation and improve error reporting/hints if it cannot be activated. Deprecate the name sqlite3.opfs.OpfsDb, preferring sqlite3.oo1.OpfsDb for consistency with JsStorageDb and any future DB subclasses. FossilOrigin-Name: 0c5c51f4fb04a4b90c50ec9704cfea9a3fb7d7d0ee55c1b0d4476129188217a6
* Add an explicit warning about the current API-instability of the ↵stephan2022-11-29
| | | | | sqlite3.opfs namespace, which may need to be eliminated based on re-thinking of how the OPFS sqlite3_vfs is registered. Comment changes only - no code. FossilOrigin-Name: 0cb2fd14179397051a25d066256a553fc198656d5668c7010c016f2b8f495bf4
* Document an OPFS API change in Chrome v108 which does not break our code but ↵stephan2022-11-27
| | | | | does change several formerly async methods to synchronous. No code changes. FossilOrigin-Name: e9dd87e28a96eb6560943b9a2cb3cb0ff14698c96fe63865944dcfed73b67bd3
* OPFS VFS: add the opfs-unlock-asap=1 URI flag which tells the VFS to release ↵stephan2022-11-26
|\ | | | | | | | | implicit locks ASAP instead of during VFS idle time. This improves concurrency notably in the test app but brings a significant performance penalty in speedtest1 (roughly 4x slowdown). This is not the final word in OPFS concurrency, but gets us a step further. FossilOrigin-Name: 9542f9ce9e023b489e2d93661f719fb0751c1e28f72fded9d3c2156d5777e7b1
| * More work on the OPFS concurrency testing app.stephan2022-11-24
| | | | | | FossilOrigin-Name: c0458caca3508d5d252f9b5198bda4f51a5c1874540f014b17e409f2daab1706
| * OPFS concurrency test: add a URL flag to enable/disable unlock-asap mode.stephan2022-11-23
| | | | | | FossilOrigin-Name: 1c1bf22eadae2a5a7d4358e7cdd22641c2efb9296f42e7376749293b3a58b114
| * Add an experimental OPFS VFS-specific URI flag, opfs-unlock-asap, which ↵stephan2022-11-23
| | | | | | | | | | tells the VFS to release implicit locks ASAP. This permits higher concurrency but hurts performance considerably. This may or may not be obsoleted by other concurrency-related experimentation. FossilOrigin-Name: d23c917013485ec2793125221f3936b05c39d6eca941629fb819b6b4aa714520
| * Initial infrastructure for adding a mode to the OPFS VFS which causes ↵stephan2022-11-23
| | | | | | | | | | implicit locks to be released ASAP, which increases concurrency at the cost of performance. FossilOrigin-Name: c5b7a9715a13b696ab3ee965aa0a310f59b65f07cecd72faa2e3504bfd8eb632
* | JS documentation cleanups. No code changes.stephan2022-11-24
| | | | | | FossilOrigin-Name: 18e89a436daa18a8c972caf06b298da43c97a6ea3e2e5229dccb6920c27bfdb9
* | Add sqlite3.oo1.DB.prototype.checkRc() and tests for both that method and ↵stephan2022-11-24
| | | | | | | | | | its class-level counterpart. FossilOrigin-Name: f7eaa6ba2147bfd6dbdc2444d0f919d846aa7f9b68cccab17ef585ffdacf3d60
* | Minor JS doc updates.stephan2022-11-23
| | | | | | FossilOrigin-Name: 27efd63ad7fb3bf8d0d07f2c9f48652c8cacc4e697c229c8085120a8e6b50a39
* | Add optional zSchema argument to sqlite3_js_db_export().stephan2022-11-23
|/ | | FossilOrigin-Name: 9c23644b1e5bf44bfb431a35fd1674c11ccb99e9eb0989f10175b0cb2a858eaa
* Remove a bit of over-cleverness which breaks loading of sqlite3.js in some ↵stephan2022-11-23
| | | | | main-thread cases. FossilOrigin-Name: 220cc4c6399b772b4ece03305a41b437ef0654d586a8a1c3dc5e7606fd36d655
* OPFS concurrency tester: ensure that the work interval timer does not ↵stephan2022-11-23
| | | | | overlap with the work time. FossilOrigin-Name: 8f2076553bc486ea6a17934695ecc02217461af2082d891697b62aab89bd1b43
* OPFS contention test: give each worker a distinct recognizable name instead ↵stephan2022-11-21
| | | | | of a random one. FossilOrigin-Name: 5f564bf7de7ce3ad7bedb5f06b3086ceaec55da768a60d74059fa4fba4328567
* Add new JS tests dir to those pushed to the test server.stephan2022-11-21
| | | FossilOrigin-Name: 07182dca9f2a4ffea1af0684c93e55e105465b2ee9820c70764e3e7bc1c28efc
* More tweaking of OPFS concurrency measures and the related test app.stephan2022-11-21
| | | FossilOrigin-Name: a8d4da1501d411085ec2fd48c4a056c8b1d97ef3c3203c5b403a854ac2864870
* Resolve missing SQLITE_LOCKED result code which triggered a new (since last ↵stephan2022-11-21
| | | | | checkin) exception in the OPFS VFS. Improve output of the OPFS contention tester app. FossilOrigin-Name: 2debbbca33bd4170a1dc4dbb5eb3e68523e51d289b06c551e5560ac4e32e433b
* Add test app for experimenting with multi-worker OPFS concurrency. Tweak ↵stephan2022-11-21
| | | | | OPFS VFS to significantly improve the otherwise "unfortunate" concurrency situation. FossilOrigin-Name: 96f76e7616f8157a342b9e1c42f7b1feab200d182268871a2b25f67d4ee2564c
* js dist: account for a file rename in the previous checkin.stephan2022-11-20
| | | FossilOrigin-Name: 469f9011a885e19b99210c5e3e582afa140b8b5f0aa7a720334848df5ab6ae98
* Further minor cleanups in the JS build related to vanilla vs ESM.stephan2022-11-20
| | | FossilOrigin-Name: 100a596800eca61477d9880092465d594c22be3707f2a11aaf6eb9e234fc6f2d
* Remove an obsolete reference to WASMFS from ext/wasm/index.html.stephan2022-11-20
| | | FossilOrigin-Name: 51ff681864ec19844f8e7a46aef132e8a8601a1b64e1f5a243a53c6413f2a61a
* Generic cleanups and doc additions in the wasm build files.stephan2022-11-20
| | | FossilOrigin-Name: d10f385e36ee7fe3077d80d8d6e7ce55732d20ef73e2a63533d8d2932ec8bf62
* Add 'snapshot' target to create distinctly-named snapshot builds of the wasm ↵stephan2022-11-20
| | | | | deliverables zip file. FossilOrigin-Name: f7620aa09e4893971e00cdee5c6f1fe15c3bd21f985bec90fbd90fdfc457ac31
* Minor cleanups in the ESM-related preprocessor filtering.stephan2022-11-20
| | | FossilOrigin-Name: 205884a273128bb666b496b659b4fa9f031ebdbbc1aa704fdeb4b7e015740098
* Get tester1.js working via an ES6 worker module and add that variant to the ↵stephan2022-11-19
| | | | | dist zipfile. FossilOrigin-Name: 90480586f1b2ad82118e19536b095431b8457f294c0afaa9b4f883f184cc804c
* Add build of sqlite3.mjs (ES6 module), add a test app for it, and include it ↵stephan2022-11-19
| | | | | in the dist build. FossilOrigin-Name: 2e783670e10b59e67c14b0db7f4803b41790cc7730de221d54fa2d4483cfba33
* Integrate a custom preprocessor to the JS build process to facilitate ↵stephan2022-11-19
|\ | | | | | | | | creation of both vanilla JS and ES6 Module builds from the same source files. There is still some build-level reworking pending to make an ESM build a first-class deliverable. FossilOrigin-Name: 10c723d96d61d2e552ec1102563d58f1eb11bc3d30e03606fd8e0279c5a9043a
| * More work towards creation of a ES6 JS module.stephan2022-11-19
| | | | | | FossilOrigin-Name: 6b826e700f6849eebfbba38e5948b96be245994e3e03ea30743114d3f5689c42
| * Replace use of cpp with the fit-to-purpose c-pp to avoid cpp's ↵stephan2022-11-18
| | | | | | | | | | C-centric/JS-unfriendly quirks. FossilOrigin-Name: 49d70f071e918d5d095c807575bb7ce2b287a123261e789e938521b3b409429a
| * Merge trunk into js-cpp branch.stephan2022-11-17
| |\ | |/ |/| FossilOrigin-Name: e047b33d1fb7d6a32e967f03f9952249cd2da4d21dc301fe92bd7baa0da5d6a9
| * Experimentally use clang's C preprocessor to filter #ifdef's out of the ↵stephan2022-11-03
| | | | | | | | | | generated sqlite3-api.js, the goal being to see if we can feasibly use cpp to include ES6 module-specific code in the main code base and conditionally filter it out. FossilOrigin-Name: 718a6d371e61359d73c8f80afdb248e3d9b4d8df4c4e5c122ac884344e31035b
* | Change a self.X JS reference to X to account for a symbol resolution ↵stephan2022-11-16
| | | | | | | | | | discrepancy between vanilla JS and ES6 modules, as explained in [forum:801d8f77e5115141|forum post 801d8f77e5115141]. FossilOrigin-Name: 0590de4da1103d842b9f9f25bcd2e69223b2ea067ae2f320f58dd3763218b39d
* | wasm build: include FTS5 instead of FTS4, per /chat and HN discussions.stephan2022-11-16
| | | | | | FossilOrigin-Name: 85c3f2ac5a887ba809f236c8c9d3837b2fdb578d4beae61bc78ada7ce03b58e2
* | Remove some outdated code comments. No code changes.stephan2022-11-13
| | | | | | FossilOrigin-Name: 80ff592a9d0157bfa8bd1f9959c3aa26cab0ec16fdccf7b58a7523b8912c1a8c
* | Rework automatically acquired OPFS locks to be released during idle time. ↵stephan2022-11-10
| | | | | | | | | | This eliminates the performance hit reported in [46304ba057707c]. FossilOrigin-Name: a7fe91afca473fe55c983bc81d214df4ef3699863c7423fa4b6b9cde23d6a3b4
* | OPFS: if an op which needs a lock is called when no lock has been obtained, ↵stephan2022-11-10
| | | | | | | | | | automatically lock it at the start of the op and unlock it at the end of that op. This is an attempt to alleviate the cross-tab contention described in [forum post 58a377083cd24a|forum:58a377083cd24a] but it increases speedtest1 run time by approximately 4x. Perhaps auto-lock can be combined with the older idle-time-based auto-unlock to unlock such locks (but not those from xLock()) to improve this? FossilOrigin-Name: 46304ba057707c3b072b6e7bb8c4af774f653aa5814099f0866cd87b2b73abeb
* | Add sqlite3.wasm.alloc.impl() as a "public back door" into the low-level ↵stephan2022-11-07
| | | | | | | | | | non-throwing allocator. Correct sqlite3.WasmAllocError constructor to behave like its usages expect it to and add tests for that. FossilOrigin-Name: cea8bf9a144d842c4755c3130273524926e8c4831d7f21c4e34d4e8c74109c8c
* | Minor wasm doc touchups. No code changes.stephan2022-11-07
| | | | | | FossilOrigin-Name: 2c448368913a844bdb5e69f8fa3bad91a2b6612ba3b7f3f650dd07b81db25a77
* | Correct sqlite3-wasm.c's SQLITE_DEFAULT_CACHE_SIZE (it's measured in kb, not ↵stephan2022-11-04
| | | | | | | | | | bytes). FossilOrigin-Name: 479ad980dfe509403e184e39a5aa441171e47b3297e05039f85516e72e9f15be
* | Add experimental esm target to ext/wasm/GNUmakefile to tell emcc to generate ↵stephan2022-11-03
|/ | | | | sqlite3.mjs (ES6 module) instead of sqlite3.js. Related to discussion at [forum:ed4596cf8496a39b]. FossilOrigin-Name: e55d8eba83012492d85418dc0faedce5896027ecc70295a5ca1826f61a5edbaf
* Globally replace '' with "" for empty JS strings to please C preprocessor.stephan2022-11-03
| | | FossilOrigin-Name: e92e1f42bef94a1df29f66b4111ebfde93eba3759bc5d5a9c95f714508851346
* Minor build cleanups and fix a harmless race condition in the OPFS part of ↵stephan2022-11-02
| | | | | tester1.js. FossilOrigin-Name: 70ee6ee014bc4e2c1daa9b4a8909cf76ccecf32de1eb39055f20d3d0b1daa1bd
* Add sqlite3_wasm_vfs_create_file() to replace Emscripten's ↵stephan2022-11-02
| | | | | FS.createDataFile() in a (mostly) VFS-agnostic way. Add a test for worker1's export (to bytearray) support. Re-add worker1 open-from-bytearray using sqlite3_wasm_vfs_create_file() but it's untested (requires a new interactive test app or maybe reconsideration). FossilOrigin-Name: b35e1225c91a3cadc0d25af1e4e790237256d194990faa13190e343ed03e11c5