1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-10-25 20:58:26 +03:00

Random wasm internal doc cleanups. No code changes.

FossilOrigin-Name: 70923a00cfca2c64b7c7c824325ab75cdd05d452b79d2eaf43297898af891c47
This commit is contained in:
stephan
2025-09-03 13:39:15 +00:00
parent 7fa9e45746
commit 8fb8782e2a
6 changed files with 47 additions and 43 deletions

View File

@@ -98,10 +98,10 @@ which (almost) all of the test and demo applications can be accessed.
real utility when it's used in conjunction with the project's real utility when it's used in conjunction with the project's
proprietary test suite, which most users don't have access to.) proprietary test suite, which most users don't have access to.)
Note that when serving this app via [althttpd][], it must be a version When serving this app via [althttpd][], it must be a version from
from 2022-09-26 or newer so that it recognizes the `--enable-sab` 2022-09-26 or newer so that it recognizes the `--enable-sab` flag,
flag, which causes althttpd to emit two HTTP response headers which which causes althttpd to emit two HTTP response headers which are
are required to enable JavaScript's `SharedArrayBuffer` and `Atomics` required to enable JavaScript's `SharedArrayBuffer` and `Atomics`
APIs. Those APIs are required in order to enable the [OPFS][]-related APIs. Those APIs are required in order to enable the [OPFS][]-related
features in the apps which use them. features in the apps which use them.

View File

@@ -16,9 +16,9 @@ multiple JS files because:
3. Certain components must be in their own standalone files in order 3. Certain components must be in their own standalone files in order
to be loaded as JS Workers. to be loaded as JS Workers.
Note that the structure described here is the current state of things, The structure described here is the current state of things, as of
as of this writing, but is not set in stone forever and may change this writing, but is not set in stone forever and may change at any
at any time. time.
The overall idea is that the following files get concatenated The overall idea is that the following files get concatenated
together, in the listed order, the resulting file is loaded by a together, in the listed order, the resulting file is loaded by a
@@ -29,13 +29,15 @@ browser client:
objects. This is exposed as a function, rather than objects, so that objects. This is exposed as a function, rather than objects, so that
the next step can pass in a config object which abstracts away parts the next step can pass in a config object which abstracts away parts
of the WASM environment, to facilitate plugging it in to arbitrary of the WASM environment, to facilitate plugging it in to arbitrary
WASM toolchains. WASM toolchains. The bootstrapping function gets removed from the
global scope in a later stage of the bootstrapping process.
- **`../common/whwasmutil.js`**\ - **`../common/whwasmutil.js`**\
A semi-third-party collection of JS/WASM utility code intended to A semi-third-party collection of JS/WASM utility code intended to
replace much of the Emscripten glue. The sqlite3 APIs internally use replace much of the Emscripten glue. The sqlite3 APIs internally use
these APIs instead of their Emscripten counterparts, in order to be these APIs instead of their Emscripten counterparts, in order to be
more portable to arbitrary WASM toolchains. This API is more portable to arbitrary WASM toolchains and help reduce
configurable, in principle, for use with arbitrary WASM regressions caused by toolchain-level behavioral changes. This API
is configurable, in principle, for use with arbitrary WASM
toolchains. It is "semi-third-party" in that it was created in order toolchains. It is "semi-third-party" in that it was created in order
to support this tree but is standalone and maintained together to support this tree but is standalone and maintained together
with... with...
@@ -48,8 +50,8 @@ browser client:
- **`sqlite3-api-glue.js`**\ - **`sqlite3-api-glue.js`**\
Invokes functionality exposed by the previous two files to flesh out Invokes functionality exposed by the previous two files to flesh out
low-level parts of `sqlite3-api-prologue.js`. Most of these pieces low-level parts of `sqlite3-api-prologue.js`. Most of these pieces
related to populating the `sqlite3.capi.wasm` object. This file involve populating the `sqlite3.capi.wasm` object. This file also
also deletes most global-scope symbols the above files create, deletes most global-scope symbols the above files create,
effectively moving them into the scope being used for initializing effectively moving them into the scope being used for initializing
the API. the API.
- **`<build>/sqlite3-api-build-version.js`**\ - **`<build>/sqlite3-api-build-version.js`**\
@@ -60,8 +62,8 @@ browser client:
Provides a high-level object-oriented wrapper to the lower-level C Provides a high-level object-oriented wrapper to the lower-level C
API, colloquially known as OO API #1. Its API is similar to other API, colloquially known as OO API #1. Its API is similar to other
high-level sqlite3 JS wrappers and should feel relatively familiar high-level sqlite3 JS wrappers and should feel relatively familiar
to anyone familiar with such APIs. That said, it is not a "required to anyone familiar with such APIs. It is not a "required component"
component" and can be elided from builds which do not want it. and can be elided from builds which do not want it.
- **`sqlite3-api-worker1.js`**\ - **`sqlite3-api-worker1.js`**\
A Worker-thread-based API which uses OO API #1 to provide an A Worker-thread-based API which uses OO API #1 to provide an
interface to a database which can be driven from the main Window interface to a database which can be driven from the main Window
@@ -96,7 +98,7 @@ browser client:
amalgamation. amalgamation.
- **`sqlite3-vfs-opfs-sahpool.c-pp.js`**\ - **`sqlite3-vfs-opfs-sahpool.c-pp.js`**\
is another sqlite3 VFS supporting the [OPFS][], but uses a is another sqlite3 VFS supporting the [OPFS][], but uses a
completely different approach that the above-listed one. completely different approach than the above-listed one.
- **`sqlite3-api-cleanup.js`**\ - **`sqlite3-api-cleanup.js`**\
The previous files do not immediately extend the library. Instead The previous files do not immediately extend the library. Instead
they add callback functions to be called during its they add callback functions to be called during its
@@ -106,8 +108,11 @@ browser client:
process, which is what finally executes the initialization code process, which is what finally executes the initialization code
installed by the previous files. As of this writing, this code installed by the previous files. As of this writing, this code
ensures that the previous files leave no more than a single global ensures that the previous files leave no more than a single global
symbol installed. When adapting the API for non-Emscripten symbol installed - `sqlite3InitModule()`. When adapting the API for
toolchains, this "should" be the only file where changes are needed. non-Emscripten toolchains, this "should" be the only file, of those
in this list, where changes are needed. The Emscripten-specific
pieces described below may also require counterparts in any as-yet
hypothetical alternative build.
**Files with the extension `.c-pp.js`** are intended [to be processed **Files with the extension `.c-pp.js`** are intended [to be processed
@@ -130,25 +135,25 @@ WASM-specific helper functions, at least one of which requires access
to private/static `sqlite3.c` internals. `sqlite3.wasm` is compiled to private/static `sqlite3.c` internals. `sqlite3.wasm` is compiled
from this file rather than `sqlite3.c`. from this file rather than `sqlite3.c`.
The following files are part of the build process but are injected The following Emscripten-specific files are injected into the
into the build-generated `sqlite3.js` along with `sqlite3-api.js`. build-generated `sqlite3.js` along with `sqlite3-api.js`.
- `extern-pre-js.js`\ - **`extern-pre-js.js`**\
Emscripten-specific header for Emscripten's `--extern-pre-js` Emscripten-specific header for Emscripten's `--extern-pre-js`
flag. As of this writing, that file is only used for experimentation flag. As of this writing, that file is only used for experimentation
purposes and holds no code relevant to the production deliverables. purposes and holds no code relevant to the production deliverables.
- `pre-js.c-pp.js`\ - **`pre-js.c-pp.js`**\
Emscripten-specific header for Emscripten's `--pre-js` flag. This Emscripten-specific header for Emscripten's `--pre-js` flag. This
file is intended as a place to override certain Emscripten behavior file is intended as a place to override certain Emscripten behavior
before it starts up, but corner-case Emscripten bugs keep that from before it starts up, but corner-case Emscripten bugs keep that from
being a reality. being a reality.
- `post-js-header.js`\ - **`post-js-header.js`**\
Emscripten-specific header for the `--post-js` input. It opens up Emscripten-specific header for the `--post-js` input. It opens up
a lexical scope by starting a post-run handler for Emscripten. a lexical scope by starting a post-run handler for Emscripten.
- `post-js-footer.js`\ - **`post-js-footer.js`**\
Emscripten-specific footer for the `--post-js` input. This closes Emscripten-specific footer for the `--post-js` input. This closes
off the lexical scope opened by `post-js-header.js`. off the lexical scope opened by `post-js-header.js`.
- `extern-post-js.c-pp.js`\ - **`extern-post-js.c-pp.js`**\
Emscripten-specific header for Emscripten's `--extern-post-js` Emscripten-specific header for Emscripten's `--extern-post-js`
flag. This file overwrites the Emscripten-installed flag. This file overwrites the Emscripten-installed
`sqlite3InitModule()` function with one which, after the module is `sqlite3InitModule()` function with one which, after the module is

View File

@@ -4,10 +4,9 @@
a blank line for a sed-based kludge for the ES6 build. */ a blank line for a sed-based kludge for the ES6 build. */
/* extern-post-js.js must be appended to the resulting sqlite3.js /* extern-post-js.js must be appended to the resulting sqlite3.js
file. It gets its name from being used as the value for the file. It gets its name from being used as the value for the
--extern-post-js=... Emscripten flag. Note that this code, unlike --extern-post-js=... Emscripten flag. This code, unlike most of the
most of the associated JS code, runs outside of the associated JS code, runs outside of the Emscripten-generated module
Emscripten-generated module init scope, in the current init scope, in the current global scope. */
global scope. */
//#if target=es6-module //#if target=es6-module
const toExportForESM = const toExportForESM =
//#endif //#endif
@@ -78,9 +77,9 @@ const toExportForESM =
EmscriptenModule['ENVIRONMENT_IS_PTHREAD']){ EmscriptenModule['ENVIRONMENT_IS_PTHREAD']){
/** Workaround for wasmfs-generated worker, which calls this /** Workaround for wasmfs-generated worker, which calls this
routine from each individual thread and requires that its routine from each individual thread and requires that its
argument be returned. The conditional criteria above are argument be returned. The if() condition above is fragile,
fragile, based solely on inspection of the offending code, based solely on inspection of the offending code, not
not public Emscripten details. */ public Emscripten details. */
//console.warn("sqlite3InitModule() returning E-module.",EmscriptenModule); //console.warn("sqlite3InitModule() returning E-module.",EmscriptenModule);
return EmscriptenModule; return EmscriptenModule;
} }

View File

@@ -23,7 +23,7 @@ sqlite3InitModuleState.debugModule('globalThis.location =',globalThis.location);
1) If URL param named the same as `path` is set, it is returned. 1) If URL param named the same as `path` is set, it is returned.
2) If sqlite3InitModuleState.sqlite3Dir is set, then (thatName + path) 2) If sqlite3InitModuleState.sqlite3Dir is set, then (thatName + path)
is returned (note that it's assumed to end with '/'). is returned (it's assumed to end with '/').
3) If this code is running in the main UI thread AND it was loaded 3) If this code is running in the main UI thread AND it was loaded
from a SCRIPT tag, the directory part of that URL is used from a SCRIPT tag, the directory part of that URL is used

View File

@@ -1,5 +1,5 @@
C Add\stest\scase\sfor\spushing\sWHERE\sconstraints\sinto\sa\sUNION\ssub-query\sthat\suses\svirtual\stables. C Random\swasm\sinternal\sdoc\scleanups.\sNo\scode\schanges.
D 2025-09-02T14:59:16.366 D 2025-09-03T13:39:15.597
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -579,7 +579,7 @@ F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
F ext/wasm/GNUmakefile 35e730a01b32481f5483ea5bd72c3d4609e25f34cb5aab9f85eb3eba6f0c4935 F ext/wasm/GNUmakefile 35e730a01b32481f5483ea5bd72c3d4609e25f34cb5aab9f85eb3eba6f0c4935
F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
F ext/wasm/README.md b89605f65661cf35bf034ff6d43e448cc169b8017fc105d498e33b81218b482c F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
F ext/wasm/SQLTester/SQLTester.mjs 66e1adc3d79467b68e3e40614fd42c1a577c7e219ec0985db966eded52a941e5 F ext/wasm/SQLTester/SQLTester.mjs 66e1adc3d79467b68e3e40614fd42c1a577c7e219ec0985db966eded52a941e5
F ext/wasm/SQLTester/SQLTester.run.mjs 57f2adb33f43f2784abbf8026c1bfd049d8013af1998e7dcb8b50c89ffc332e0 F ext/wasm/SQLTester/SQLTester.run.mjs 57f2adb33f43f2784abbf8026c1bfd049d8013af1998e7dcb8b50c89ffc332e0
@@ -589,12 +589,12 @@ F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-core 2bcbbfe3b95c043ed6037e2708a2ee078
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-extras cb4fa8842c875b6ee99381523792975c5ebb7371bd27fbd1bd863a43c7f3505a F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-extras cb4fa8842c875b6ee99381523792975c5ebb7371bd27fbd1bd863a43c7f3505a
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287 F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
F ext/wasm/api/README.md c64ec8e84449c069e0217706d9d7d31b3bd53627228b2ba0c3cddbdc2350ca66 F ext/wasm/api/README.md 7f029c5fe83b3493931d2fb915e2febd3536267d538a56408a6fef284ea38d29
F ext/wasm/api/extern-post-js.c-pp.js 3fcd904f1204685dea84e5ae90d8b7e65a1dcebab1e838386d8328b74cce46c9 F ext/wasm/api/extern-post-js.c-pp.js d8f5ffa354c790d89681d0a23594c02347d28046d60151bd598712fbdff6056c
F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41 F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41
F ext/wasm/api/post-js-footer.js 365405929f41ca0e6d389ed8a8da3f3c93e11d3ef43a90ae151e37fa9f75bf41 F ext/wasm/api/post-js-footer.js 365405929f41ca0e6d389ed8a8da3f3c93e11d3ef43a90ae151e37fa9f75bf41
F ext/wasm/api/post-js-header.js 53740d824e5d9027eb1e6fd59e216abbd2136740ce260ea5f0699ff2acb0a701 F ext/wasm/api/post-js-header.js 53740d824e5d9027eb1e6fd59e216abbd2136740ce260ea5f0699ff2acb0a701
F ext/wasm/api/pre-js.c-pp.js a614a2c82b12c4d96d8e3ba77330329efc53c4d56a8a7e60ade900f341866cfb F ext/wasm/api/pre-js.c-pp.js 58f823de197e2c10d76179aa05410a593b7ae03e1ece983bb42ffd818e8857e1
F ext/wasm/api/sqlite3-api-cleanup.js 3ac1786e461ada63033143be8c3b00b26b939540661f3e839515bb92f2e35359 F ext/wasm/api/sqlite3-api-cleanup.js 3ac1786e461ada63033143be8c3b00b26b939540661f3e839515bb92f2e35359
F ext/wasm/api/sqlite3-api-glue.c-pp.js 0b76510f3650053bac67ca8947cb6ab9d050ad2218118a2e7796dd37be832ffa F ext/wasm/api/sqlite3-api-glue.c-pp.js 0b76510f3650053bac67ca8947cb6ab9d050ad2218118a2e7796dd37be832ffa
F ext/wasm/api/sqlite3-api-oo1.c-pp.js 852f2cd6acddbae487fc4f1c3ec952e6c1e2033aa4e6c7091d330d983c87c032 F ext/wasm/api/sqlite3-api-oo1.c-pp.js 852f2cd6acddbae487fc4f1c3ec952e6c1e2033aa4e6c7091d330d983c87c032
@@ -2172,8 +2172,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 55744ca8b8f2f95ba8bd3e01ef89e21e26c8547912c9d5637afe772d17f34486 P 13c80e903ee7f178528918716b11fc0b57fc50b923dcd8aeabf9e6e04e93cdae
R be5632311d45cdba9967fc14583b2918 R d4bf7edf1868ff7033014bf0bf84ebaf
U dan U stephan
Z 29bc2637cfcfc43e3bf668a29f18cbf3 Z d6448a1531d4b5bb134ac998a221cb98
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
13c80e903ee7f178528918716b11fc0b57fc50b923dcd8aeabf9e6e04e93cdae 70923a00cfca2c64b7c7c824325ab75cdd05d452b79d2eaf43297898af891c47