diff options
author | stephan <stephan@noemail.net> | 2025-04-16 17:47:16 +0000 |
---|---|---|
committer | stephan <stephan@noemail.net> | 2025-04-16 17:47:16 +0000 |
commit | 259532c0ad20acdf5fea8b2165c7d32a2c7a4c0f (patch) | |
tree | 5ecc474aa03b2235514be83ec3729ac38871cb45 | |
parent | 6fe2a9a8f1e5c59f0b9dd491fe6f3e10a49ecc86 (diff) | |
download | sqlite-259532c0ad20acdf5fea8b2165c7d32a2c7a4c0f.tar.gz sqlite-259532c0ad20acdf5fea8b2165c7d32a2c7a4c0f.zip |
Update doc/tcl-extension-testing.md for Unix systems, consolidating the Tcl 8.x and 9.x sections.
FossilOrigin-Name: c4c5dcb79c57f6e38cfe9b68b00e60e42d03ef30aeaefc5bf9dafed994849e1d
-rw-r--r-- | doc/tcl-extension-testing.md | 92 | ||||
-rw-r--r-- | manifest | 14 | ||||
-rw-r--r-- | manifest.uuid | 2 |
3 files changed, 49 insertions, 59 deletions
diff --git a/doc/tcl-extension-testing.md b/doc/tcl-extension-testing.md index df5f6537b..fec7e0d66 100644 --- a/doc/tcl-extension-testing.md +++ b/doc/tcl-extension-testing.md @@ -35,84 +35,69 @@ perspective on how to compile SQLite on unix-like systems. ### 2.1 Setup <ol type="1"> -<li value="1"> - [Fossil](https://fossil-scm.org/) installed. +<li value="1"> + [Fossil][] installed. <li> Check out source code and set environment variables: <ol type="a"> <li> **TCLSOURCE** → - The top-level directory of a Fossil check-out of the TCL source tree. + The top-level directory of a [Fossil][] check-out of the + [TCL source tree][tcl-fossil]. <li> **SQLITESOURCE** → A Fossil check-out of the SQLite source tree. - <li> **TCLBUILD** → + <li> **TCLHOME** → A directory that does not exist at the start of the test and which will be deleted at the end of the test, and that will contain the test builds of the TCL libraries and the SQLite TCL Extensions. + It is the top-most installation directory, i.e. the one provided + to Tcl's `./configure --prefix=/path/to/tcl`. + <li> **TCLVERSION** → + The `X.Y`-form version of Tcl being used: 8.6, 9.0, 9.1... </ol> </ol> -### 2.2 Testing TCL 8.6 on unix +### 2.2 Testing TCL 8.x and 9.x on unix + +From a checked-out copy of [the core Tcl tree][tcl-fossil] <ol type="1"> -<li value="3"> `mkdir -p $TCLBUILD/tcl86` -<li> `cd $TCLSOURCE/unix` -<li> `fossil up core-8-6-16` <br> - ↑ Or some other version of Tcl8.6. +<li value="3">`TCLVERSION=8.6` <br> + ↑ A version of your choice. This process has been tested with + values of 8.6, 9.0, and 9.1 (as of 2025-04-16). The out-of-life + version 8.5 fails some of `make devtest` for undetermined reasons. +<li>`TCLHOME=$HOME/tcl/$TCLVERSION` +<li>`TCLSOURCE=/path/to/tcl/checkout` +<li>`SQLITESOURCE=/path/to/sqlite/checkout` +<li>`rm -fr $TCLHOME` <br> + ↑ Ensure that no stale Tcl installation is laying around. +<li> `cd $TCLSOURCE` +<li> `fossil up core-8-6-branch` <br> + ↑ The branch corresponding to `$TCLVERSION`, e.g. + `core-9-0-branch` or `trunk`. <li> `fossil clean -x` -<li> `./configure --prefix=$TCLBUILD/tcl86 --disable-shared` <br> - ↑ The --disable-shared is to avoid the need to set LD_LIBRARY_PATH +<li> `cd unix` +<li> `./configure --prefix=$TCLHOME --disable-shared` <br> + ↑ The `--disable-shared` is to avoid the need to set `LD_LIBRARY_PATH` when using this Tcl build. <li> `make install` <li> `cd $SQLITESOURCE` <li> `fossil clean -x` -<li> `./configure --with-tclsh=$TCLBUILD/tcl86/bin/tclsh8.6 --all` +<li> `./configure --with-tcl=$TCLHOME --all` <li> `make tclextension-install` <br> - ↑ Verify extension installed at $TCLBUILD/tcl86/lib/tcl8.6/sqlite3.* + ↑ Verify extension installed at + `$TCLHOME/lib/tcl${TCLVERSION}/sqlite<SQLITE_VERSION>`. <li> `make tclextension-list` <br> ↑ Verify TCL extension correctly installed. <li> `make tclextension-verify` <br> ↑ Verify that the correct version is installed. -<li> `$TCLBUILD/tcl86/bin/tclsh8.6 test/testrunner.tcl release --explain` <br> +<li> `$TCLHOME/bin/tclsh[89].[0-9] test/testrunner.tcl release --explain` <br> ↑ Verify thousands of lines of output with no errors. Or consider running "devtest" without --explain instead of "release". </ol> -### 2.3 Testing TCL 9.0 on unix - -<ol> -<li value="16"> `mkdir -p $TCLBUILD/tcl90` -<li> `fossil up core-9-0-0` <br> - ↑ Or some other version of Tcl9 -<li> `fossil clean -x` -<li> `./configure --prefix=$TCLBUILD/tcl90 --disable-shared` <br> - ↑ The --disable-shared is to avoid the need to set LD_LIBRARY_PATH - when using this Tcl build. -<li> `make install` -<li> `cp -r ../library $TCLBUILD/tcl90/lib/tcl9.0` <br> - ↑ The Tcl library is not installed by "make install" for Tcl9.0 unless - you also include the --disable-zipfs to ./configure. But if you do that - then the generated tclsh9.0 is no longer stand-alone. On the other hand, - if you don't install the Tcl library, other programs like testfixture - won't be able to find the Tcl library and hence won't work. This - extra installation step resolves the dilemma. - This step is not required when building Tcl8.6, which lacks support for - zipfs and hence always installs its Tcl library. -<li> `cd $SQLITESOURCE` -<li> `fossil clean -x` -<li> `./configure --with-tclsh=$TCLBUILD/tcl90/bin/tclsh9.0 --all` -<li> `make tclextension-install` <br> - ↑ Verify extension installed at $TCLBUILD/tcl90/lib/sqlite3.* -<li> `make tclextension-list` <br> - ↑ Verify TCL extension correctly installed. -<li> `make tclextension-verify` -<li> `$TCLBUILD/tcl90/bin/tclsh9.0 test/testrunner.tcl release --explain` <br> - ↑ Verify thousands of lines of output with no errors. Or - consider running "devtest" without --explain instead of "release". -</ol> - -### 2.4 Cleanup +### 2.3 Cleanup <ol type="1"> -<li value="29"> `rm -rf $TCLBUILD` +<li value="29"> `rm -rf $TCLHOME` </ol> <a id="windows"></a> @@ -123,9 +108,11 @@ perspective on how to compile SQLite on Windows. ### 3.1 Setup for Windows +(These docs are not as up-to-date as the Unix docs, above.) + <ol type="1"> -<li value="1"> - [Fossil](https://fossil-scm.org/) installed. +<li value="1"> + [Fossil][] installed. <li> Unix-like command-line tools installed. Example: [unxutils](https://unxutils.sourceforge.net/) @@ -206,3 +193,6 @@ perspective on how to compile SQLite on Windows. <ol type="1"> <li value="35"> `rm -rf %TCLBUILD%` </ol> + +[Fossil]: https://fossil-scm.org/home +[tcl-fossil]: https://core.tcl-lang.org/tcl @@ -1,5 +1,5 @@ -C Attempt\sto\sprovide\sEBCDIC\stranslations\sto\sthe\stables\sin\sthe\sJSON\nimplementation.\s\sThe\sSQLite\sdevelopers\sdo\snot\shave\saccess\sto\sany\ncomputers\susing\sEBCDIC\sand\sso\shave\sno\sway\sto\stest\sthis\spatch,\sand\ncannot\svouch\sfor\sits\saccuracy. -D 2025-04-16T17:36:26.944 +C Update\sdoc/tcl-extension-testing.md\sfor\sUnix\ssystems,\sconsolidating\sthe\sTcl\s8.x\sand\s9.x\ssections. +D 2025-04-16T17:47:16.773 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -63,7 +63,7 @@ F doc/json-enhancements.md e356fc834781f1f1aa22ee300027a270b2c960122468499bf347b F doc/jsonb.md ede3238186e3a90bb79d20b2a6a06d0f9429a38e069e9da0efbad0f2ed48b924 F doc/lemon.html 89ea833a6f71773ab1a9063fbb7fb9b32147bc0b1057b53ecab94a3b30c0aef5 F doc/pager-invariants.txt 83aa3a4724b2d7970cc3f3461f0295c46d4fc19a835a5781cbb35cb52feb0577 -F doc/tcl-extension-testing.md 864875c3b672db79e7d42348dd726f9a4fbd852b1d8e5efcf09fe3d1ff6bf2a2 +F doc/tcl-extension-testing.md b10538db54c3eda7f8682c05328ced8a2043d3de7ddbd22ae3f2b6cc770006ce F doc/testrunner.md 15583cf8c7d8a1c3378fd5d4319ca769a14c4d950a5df9b015d01d5be290dc69 F doc/trusted-schema.md 33625008620e879c7bcfbbfa079587612c434fa094d338b08242288d358c3e8a F doc/vdbesort-memory.md 4da2639c14cd24a31e0af694b1a8dd37eaf277aff3867e9a8cc14046bc49df56 @@ -2216,8 +2216,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 8ae437301ed0cf71ef0e07be07917d9702221d27bdc98491209d8f28c7a500e2 -R c64f1aa94a03741a3b8d9bb200ed893f -U drh -Z 0fc17037f0ec1a61cba3bc34abd61d37 +P 84e698f38429c142caaa66ac086410f2035691b2ad39ad2fc4e0ebc31dd58a5b +R 10019481ad9fb3b387e600d039fce87e +U stephan +Z 32c947866489f54b1e21c649b883e5ef # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 12bf84746..fbdd7c571 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -84e698f38429c142caaa66ac086410f2035691b2ad39ad2fc4e0ebc31dd58a5b +c4c5dcb79c57f6e38cfe9b68b00e60e42d03ef30aeaefc5bf9dafed994849e1d |