Login
Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2025-08-13
21:21
Remove a couple of resolved TODO markers. Move an internal decl deeper internally. Leaf check-in: ed34aaafc7 user: stephan tags: trunk
20:17
Minor doc updates. check-in: b949b6889f user: stephan tags: trunk
20:00
Latest upstream proj.tcl. check-in: d7a53f44f5 user: stephan tags: trunk
17:54
Add a check to ensure that none of the fsl_cx::cache::stmt entries are ever in use twice at once (e.g. via recursion), failing fatally if that happens (as it would be internal API misuse and lead to effectively corrupted statements). Generalize the previous checkin to apply to all cached queries via this new checkin/checkout process (the same process we've long used for various internal scratchpad buffers). check-in: 70824dfb22 user: stephan tags: trunk
16:57
For cached queries which bind more than an RID or two, be sure to clear their bindings after each use so they don't just sit idle holding arbitrarily-large blobs. check-in: f8b6cb8cbe user: stephan tags: trunk
16:47
Add the leaf-rid insert/delete statements to fsl_cx::cache::stmt, resolving a TODO. The fsl__cx_cache_stmt_map() macro made this trivial to do, btw. check-in: 259fe5a182 user: stephan tags: trunk
16:15
Move around and rename some internal APIs. check-in: 33fe9b940c user: stephan tags: trunk
10:35
Docs updates and internal cleanups in fsl_db. check-in: ac86a1a06f user: stephan tags: trunk
2025-08-12
19:25
Add a missing TCL_GLOBAL_ONLY flag. check-in: b3a668d18f user: stephan tags: trunk
19:03
Move the to-verify-at-commit cache into the PTL cache. When popping the PTL for commits, migrate any remaining IDs in the various caches to the previous level so that the 'available' and 'missing' caches work properly. The 'toVerify' entries will have been cleared by the time that happens, so they (correctly) won't bubble up. check-in: 5ac14a34a6 user: stephan tags: trunk
17:50
Make the PTL caches more selective in what they clear. check-in: db73d2beed user: stephan tags: trunk
17:41
Make the PTL caches more selective in what they clear. Closed-Leaf check-in: 8cb51b75c2 user: stephan tags: mistake
17:40
Make the PTL caches more selective in what they clear. check-in: 7b69919951 user: stephan tags: mistake
17:39
Make the PTL caches more selective in what they clear. check-in: 9feefb9e6e user: stephan tags: mistake
17:39
Make the PTL caches more selective in what they clear. Edit: these were supposed to be dry-run checkins! check-in: 07e5cd3a16 user: stephan tags: mistake
13:53
Migrate the "missing" and "available" RID caches to the PTL cache. check-in: 8129e686ce user: stephan tags: trunk
13:08
Plug the per-transaction-level cache into the fsl_cx init, transaction push/pop, and cleanup, but do not yet use it for any of the caches it will be replacing. check-in: ec96a25bf6 user: stephan tags: trunk
12:20
Initial untested work on a per-transaction-level RID cache. check-in: f01a3c6f31 user: stephan tags: trunk
02:10
Minor tcl binding touchups. check-in: 0114c962be user: stephan tags: trunk
01:58
Improve and document the tcl linenoise wrapper. check-in: adeff1a2d0 user: stephan tags: trunk
00:58
Add basic linenoise support to the custom tcl shell. check-in: f4d3cb1e40 user: stephan tags: trunk
2025-08-11
22:23
Get the tcl binding back into working order after recent API upheaval. check-in: d9468aefcb user: stephan tags: trunk
21:57
Change fsl_db to use 3 prepared statements for savepoint management, rather than exec()ing for each savepoint op. This saves memory but we lose the the transaction level in the SQL comments, previously visible with --trace-sql. check-in: 45f6f16ef6 user: stephan tags: trunk
21:06
Add {{user.name}} to fsl_cx_format(). check-in: 23c80ebbc8 user: stephan tags: trunk
19:14
Move fsl_cx_format() and friends into the library and have fsl_outputf() proxy it. Have fsl_strlen() use strlen() if the arg is not NULL, rather than looping, as strlen() is much faster. check-in: 096030bed6 user: stephan tags: trunk
18:16
Get initial skeleton for fsl_cx_format() working. check-in: 7090da4704 user: stephan tags: trunk
17:37
Generic internal cleanups. Fix the recently-added fsl_content_size_v2() to behave properly in the rid-not-found case. check-in: 1d9914873f user: stephan tags: trunk
16:04
Teach the --with-sqilite=DIR config flag to prefer sqlite3-see.c if it's available in the same dir as sqlite3.c. Rework the fsl_see_key_f() interface to use an output buffer instead of an output char pointer and length, as that's just plain simpler to use on both ends of the call. check-in: b7eae9d201 user: stephan tags: trunk
15:19
Reformulate most of fsl_satype_e into a generator macro (or whatever they're called). check-in: da006c18bd user: stephan tags: trunk
14:55
Add fsl_cx_emit() messages for transaction begin/commit/rollback. Fix fsl_db to call its transaction hook for all SAVEPOINT (BEGIN) starts instead of just the top one (like it historically did). check-in: f832f87e90 user: stephan tags: trunk
14:27
Rename fsl_id_bag_reset() to fsl_id_bag_reuse() to match fsl_buffer_reuse(). Add an id bag cache to fsl_cx as an allocation micro-optimization in fsl__content_mark_available(). check-in: 36b409303b user: stephan tags: trunk
13:32
Merge the savepoints branch into trunk. This changes how fsl_db deals with nested transactions, from a pseudo-nesting on top of a single BEGIN/COMMIT pair to the nesting supported by SAVEPOINTs, the most significant of which (for this project) is the ability to dry-run invididual parts of a transaction without rolling back the whole thing. Add sanity-tests.sh. check-in: 761ae5eaea user: stephan tags: trunk
13:24
Get the the verify-commit-not-called check back in shape, and learned the hard way that it's only called for transactions which actually commit _changes_. Closed-Leaf check-in: 90efbdb58c user: stephan tags: savepoints
12:35
Internal refactoring of the fsl_db transaction pieces. Disable the verify-commit-not-called check because a test is inexplicably triggering it, but that needs to be tracked down and the check re-enabled, and this is my reminder to do so. check-in: 747bcd2d6d user: stephan tags: savepoints
12:05
Merge and close the txn-levels branch. The db transaction support now provides enough state that fossil will be able to have certain caches layered by transaction level (still TODO, of course). check-in: 8995cefbaf user: stephan tags: savepoints
11:59
Turns out that ROLLBACK TO SAVEPOINT also requires a RELEASE SAVEPOINT. Disable the verify-COMMIT-not-called check because its semantics no longer fit and they trigger the aforementioned mysterious 'constraint failed' error. Closed-Leaf check-in: a68e4954ae user: stephan tags: txn-levels
11:57
Merge in trunk for SSH signing, which is now necessary for f-sanity to pass. check-in: 3af4cad96a user: stephan tags: txn-levels
11:09
Teach the deck parser to be able to skip SSH-signing wrappers, analog to PGP signatures, as per [fossil:/timeline?r=ssh-signing], with thanks to Daniel D. for (A) implementing it upstream and (B) providing test artifact [b9169a12ef]. check-in: da865d979b user: stephan tags: trunk
08:48
Two small corrections. check-in: bdb5cadbea user: brickviking tags: trunk
2025-08-10
22:19
Extend fsl_db's multi-level transaction handling and hooks, moving towards having fsl_cx use a cache which accounts for the current transaction level. This inexplicably breaks fsl_repo_create(), f-status, f-ci, et. al. (but not f-sanity), with a curious 'constraint failed' error when RELEASE SAVEPOINT is run. No clue what that's about but this needs to be checked in before getting some sleep. check-in: c07c6399a5 user: stephan tags: txn-levels
19:51
Work towards improving dry-run modes vis-a-vis the transaction stack and stale caches. check-in: c85387bcd9 user: stephan tags: savepoints
18:54
Bump lib version to 0.6-ish because of the fundamental change how transactions are handled. Docs and internal cleanups. Try adding fsl_checkin_opt::dryRun flag but it trips over stale cache entries via the verify-at-commit pieces. check-in: 3f7c6edf9d user: stephan tags: savepoints
17:06
This is an SSH-signed check-in. Leaf check-in: b9169a12ef user: danield tags: ssh-signed
13:59
Merge in trunk. check-in: 02712dee9e user: stephan tags: savepoints
13:58
Generic internal cleanups. Reformulate FSL__WARN_OOM as a now-public fsl_warn_oom symbol and give builders the option to override it. check-in: 3d403eb399 user: stephan tags: trunk
13:07
Merge in trunk to remove fsl_db run-SQL-on-commit pieces. check-in: b0d80cd72b user: stephan tags: savepoints
13:05
Remove the fsl_db run-this-SQL-before-commit bits, as they've never been used outside of test code and their use raises more questions than it solves. It was originally created as a way to run fossil's pre-commit checks, but that has long-since been handled via a callback hook. Oh, and the lock errors while shelling out are affecting f-sanity but not f-ci, which is encouraging. check-in: 8d40ce7824 user: stephan tags: trunk
13:01
More savepoint work. Add an assert in prep for removal of the fsl_db run-sql-before-commit bits, as they're unused except for in test code. This transition to savepoints leads to 100% reliable locking errors when shelling out to fossil(1) for syncing, which is a genuine problem and, so far, the only one which argues for keeping plain-vanilla transactions instead of savepoints. check-in: 2ab51a23d9 user: stephan tags: savepoints
12:21
More experimentation with the savepoint transition. check-in: 300c7d8151 user: stephan tags: savepoints
05:54
Merge in trunk. check-in: c9529b4c38 user: stephan tags: savepoints