Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 most recent check-ins
|
2026-06-04
| ||
| 12:48 | Getting the history right Leaf check-in: 7325f8916b user: dan tags: trunk | |
| 12:33 | Big comment refactor. Clean docs for relaunch release. check-in: 9fe0ea0614 user: dan tags: trunk | |
| 12:32 | Update docs for 2026 and compsci facts check-in: e4c1ee5546 user: dan tags: trunk | |
| 05:18 | More thinking about --version check-in: aa47586d77 user: dan tags: trunk | |
| 04:58 | Remembering how we got to the first usable release in 2026... check-in: 6333949733 user: dan tags: trunk | |
|
2026-06-03
| ||
| 13:19 | Clean up comments check-in: 1ccdb681e7 user: dan tags: trunk | |
| 13:17 | LMDB backend fixes uncovered by fuzzing for queries returning wrong rowcounts and in one case a spurious SQLITE_CORRUPT. The fuzz harnesses are full of SQL that no sane person would use. It might make sense for LumoSQL to have its own fuzzer in test/ . There's a structural choice here with ephemeral btrees now storing the whole record as the LMDB key. Hope it doesn't have a performance impact, but we'll see. lumoCursorSpills needed some fixing which isn't surprising. LEFT JOIN counts were off and that was really tricky cursor stuff. Thanks to anonymous for doing the hard work on that one. check-in: 92c8aa280c user: dan tags: trunk | |
|
2026-06-02
| ||
| 22:46 | More build testing and doc improvements. Finally add 'make doctor' script. check-in: 2c4b0f189b user: dan tags: trunk | |
| 17:52 | Better examples in the Fossil/libfossil doc check-in: 47b6b6ac2f user: dan tags: trunk | |
| 17:34 | One line fix to btree.c to fix ORDER BY ... DESC with a constraint. Both backends. Add SQL test repro_order-by.sql , and added tests to order.test. Ported the txt read->write upgrade fix from 0.9 to v1.0. We're going to have to be very careful to keep these in synch. check-in: 2dbf12f452 user: dan tags: trunk | |
| 15:34 | Lots of more testing, more doc fixes... check-in: 74720f9c46 user: dan tags: trunk | |
| 14:24 | Remove rowsum reference in Fossil docs, it's a pointless exercise. Fossil is already a Merkle DAG of checksums. check-in: ef342cde1c user: dan tags: trunk | |
| 14:18 | Improved documentation a lot: * test all the amalgamation steps * dropped old distros and ancient docker instructions * moved benchmarking stuff out of loft/ into the top level, because its status is clear and good * lots of updates to how-to-install, remove bitrot * update design-corruption-detection-and-magic.md for the fact that most of this is now implemented * improve benchmarking docs Also added: * make doctor to test dependencies * a one-line bug in btree.c that gave 250 'ERR1' rows in benchmarks.sqlite check-in: 08d3eafb8c user: dan tags: trunk | |
|
2026-06-01
| ||
| 11:06 | Improve accuracy check-in: 81afeb4d0c user: dan tags: trunk | |
| 10:01 | Clarify check-in: 86a9844b05 user: dan tags: trunk | |
|
2026-05-31
| ||
| 22:04 | Small doc fixes check-in: d97d55256a user: dan tags: trunk | |
|
2026-05-30
| ||
| 12:43 | Total of the last month of piecemeal changes... this is getting close to LumoSQL v0.8 with LMDBv1.0 now committed with one example of encrytion, Fossil known to work, and much more. The docs now focus on expert users because there is enough now to potentially interest embedded and related developers, and we can take it from there if this actually happens. check-in: fed7b90293 user: dan tags: trunk | |
|
2026-05-29
| ||
| 21:13 | Getting ready for v0.8, which will include LMDBv1.0... check-in: 2811bfc059 user: dan tags: trunk | |
| 20:18 | Tiny change: we now reflect design intention in the test suite. We don't require all rows produced by a rowsum-enabled binary to have a trailing checksum. If its there we verify it, if it isn't we say nothing. This is because we let users choose when they do and don't use rowsums. check-in: 8126e3e817 user: dan tags: trunk | |
| 20:14 | vacuum.test caused a segfault with rowsum=on on some versions of SQLite. gdb showed this was lumoExtensionAdd() not checking parameters. SQLite 3.35's VACUUM bulk-loader path on indexes invokes our OP_IdxInsert hook with an empty key for the destination database, triggering the crash. Later SQLite versions (3.36+) don't implement VACUUM in the same way, so the bug remained but wasn't triggered on later versions. check-in: 58799ba7b9 user: dan tags: trunk | |
| 17:46 | Update the version pinning. These lock files only apply when --use-upstream-lock is passed to build.tcl, and it uses the maximum versions we have said we know. The default is not to set this flag, and the build will opportunistically fetch the latest using not-forking. For most software this is going to eventually fail, walking up the versions like that, but is often surprising how far it is possible to get. With this version lock change, LumoSQL is saying it can now recommend users safely leap forward 4 years of software development. check-in: 64fc9e790b user: dan tags: trunk | |
| 17:18 | Tightened up the .mod files so they are more precise about where the patches should go. check-in: 099c0be77d user: dan tags: trunk | |
| 15:33 | 1000+ benchmark runs plus some callgrind gives pretty reliable comparisons of native vs LMDB backends in various circumstances. check-in: 123cfaddfd user: dan tags: trunk | |
| 15:32 | Lots of work on Fossil/libfossil, including test. check-in: 6e4dacddef user: dan tags: trunk | |
| 11:04 | Spelling check in docs, formatting etc. check-in: 1ba8fb059b user: dan tags: trunk | |
|
2026-05-28
| ||
| 12:53 | Add .timeout 30000 in two places because of intra-process contention. Previously we gave up on inter-process contention (ie multiple build/bench scripts running at once) but there are still cases where multiple workers from one benchmark script carefully calculated not to trip over one another still contend on database access (which is standard SQLite in WAL mode.) check-in: bf7d39da79 user: danshearer tags: trunk | |
|
2026-05-27
| ||
| 17:33 | Oops - need to re-create vcs directory check-in: 91587b208d user: danshearer tags: trunk | |
| 17:24 | Fix concurrency bug by just serialising everything. Not great, but reliable for now. The real problem is contention in the not-fork cache, which needs fixed in not-fork. There was a difference between build.tcl's cache directory and the one set in this script. Script now follows build.tcl. Also add --clean-cache to build matrix which will scrub all vcs directories (but not the repos, the expensive bit to create). This handles the case of broken Fossil checkouts. check-in: 75467453cb user: danshearer tags: trunk | |
| 17:07 | Fixed two bugs: - make benchmark looked like it did a build first, but didn't really. Now it does. - make benchmark got very confused if a build failed part-way through. check-in: b0b7249542 user: danshearer tags: trunk | |
| 13:53 | Latest build / bench scripts for running on a big machine, plus sample benchmark results database check-in: 5c6c0ad15f user: danshearer tags: trunk | |
| 13:40 | Latest comparison analysis check-in: b05471622d user: danshearer tags: trunk | |
| 13:10 | Results of weeks of comparing LMDB to native SQLite btree, getting ready to show the experts who know these codebases down to the instruction count level. TODO is nice and short, and there's some handy hints in loft/basic-change-verification.md but hopefully the various make build and make test/bench targets are good enough most of the time. check-in: ef826a0112 user: danshearer tags: trunk | |
| 12:22 | Fixed two bugs in make test-sql Found another place to change the default rowsum alg to blake3_256 check-in: dae75b830f user: danshearer tags: trunk | |
| 11:16 | Fixed rowsum test for default blake3_256 check-in: d3a6738ace user: danshearer tags: trunk | |
|
2026-05-26
| ||
| 23:08 | Test to go with the change in rowsum default. check-in: ade40e15e4 user: danshearer tags: trunk | |
| 23:07 | Make BLAKE3 the default hashing algorithm, which is ~70% faster than SHA256. It will be still faster again when we enable SIMD, but that is some build system modification requiring a lot of thought. check-in: ecf7f42ab1 user: danshearer tags: trunk | |
| 23:00 | Remove migration of old schemas in test database. If it becomes a problem we can sort it out then. Meanwhile keep it simple. check-in: d0d5aff9f4 user: danshearer tags: trunk | |
| 22:59 | Change default for rowsum on: no longer errors if a rowsum-enabled binary reads a non-rowsum database. The behaviour wasn't wrong, just unexpected and not very useful. check-in: 00ef120c0c user: danshearer tags: trunk | |
| 22:18 | Fix bug with opening an lmdb txn with an invalid dbi handle in some circumstances (such as every `fossil commit`.) check-in: 02a2ca70ff user: danshearer tags: trunk | |
| 12:43 | Updated test system, can now compare on-disk database against multiple binary types Fixed VACUUM and VACUUM INTO on all database types including :memory: Rowsum project complete and covered with tests check-in: 9007ccb4f9 user: danshearer tags: trunk | |
| 11:27 | Doc how to create an SQLite amalgamation with Lumo including LMDB-backed check-in: 37ebef4e32 user: danshearer tags: trunk | |
| 11:25 | Fix rowsum and add the test query tool I've been using for a bit. The query tool closely follows the benchmark query tool. check-in: d2c216d322 user: danshearer tags: trunk | |
| 10:42 | Preparing for new test system. check-in: 412d389db1 user: danshearer tags: trunk | |
| 10:41 | Final version of ROWSUM before next release. This exposes a checksum at the end of every row via an SQLite scalar function, adds test cases. The core functionality was already working but some bugfixes were needed. Proven to be readable still by stock SQLite, and added coverage tests. I'm not happy with the test harness because there is currently no way of trying the same thing with two different binaries (rowsum-enabled and not rowsum-enabled). I have a draft replacement test system to push sometime soon. check-in: 62026ca784 user: danshearer tags: trunk | |
| 08:04 | Proper plan for v1.0, which is now very tight and simple check-in: 94ac4b8286 user: danshearer tags: trunk | |
|
2026-05-25
| ||
| 14:14 | Put benchmark DB in WAL mode. Note that if we used LMDB under LumoSQL for the benchmarking/testing SQLite databases we wouldn't have (or need) WAL made, because LMDB doesn't block readers, but we're wise to use the widely-known standard sqlite3 format for data we wish to share with the world. check-in: 954bb0d25e user: danshearer tags: trunk | |
| 14:02 | Changed strategy for 'make test'. Originally wanted to be as close to SQLite as possible, but this doesn't make sense because (at this stage) LumoSQL is only changing storage engines and all of the SQLite storage engine probes are highly specific to the native SQLite backend. All of the other probes are about parsing SQL and the like, which we are not touching. So until we need it, not importing the SQLite test suite. This also means we don't need to have any copies of SQLite around linked to TCL, which the test suite relies on. This works with LumoSQL, but it's another complication we don't need. Instead we use the sqlite3 CLI only, and test using Lumo-specific commands we know stress the storage layer. Also commit much-modified btree.c/lumo.build from infinite testing against Fossil. This is pretty stable now. Must be getting close to forking everything for LMDBv1.0! check-in: 68789abbb3 user: danshearer tags: trunk | |
| 08:44 | Copied the idea of benchmarking and repurposed it for test. Test results are stored in an sqlite file, and there is a tool to query it. Implemented `make test-sql' Renamed `make test` to `make test-benchmarking-works` Created tool/test-sql-filter.tcl Imported SQL tests from SQLite check-in: 8d21cb9742 user: danshearer tags: trunk | |
|
2026-05-24
| ||
| 18:59 | Fix VACUUM INTO bug, which wasn't obvious check-in: 63f51f1157 user: danshearer tags: trunk | |
| 18:23 | Add version knowledge, so that probes can skip tests that will fail because particular features weren't available in that version. It only does backwards in time not ranges, but since SQLite is pretty keen on backwards compatibility that won't be a problem we hope. check-in: 01552793a3 user: danshearer tags: trunk | |