Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 most recent check-ins
2025-06-27
| ||
12:43 | Ensure that fsl_buffer_escape_arg() always sets the buffer's error code on error. Shorten temp file names a bit. Cleanup handling of the curl URL CLI arg. Remove some duplicate debug output. Leaf check-in: 9cb3145494 user: stephan tags: trunk | |
12:19 | Fix the tracer fsl_sc by copying the flags of the channel it proxies. Add missing sealRequest() method to the tracer. check-in: ef71a875e6 user: stephan tags: trunk | |
12:07 | Remove two broken asserts and some debug output which cannot work since changes in the previous checkin. check-in: 71fe58ddb6 user: stephan tags: trunk | |
12:03 | Move the sync URL from the fsl_sc_popen class to the fsl_sc class, as we need it there for fsl__xfer to be able to construct the request headers. Start creating such headers, but don't feed them to the fsl_sc yet. check-in: b273e21603 user: stephan tags: trunk | |
10:22 | Internal refactoring in prep for some fsl_sc experimentation. check-in: be6e412cfa user: stephan tags: trunk | |
09:10 | Remove a bunch of dead code. Start extending the fsl_sc interface to be able to farm out generation of the HTTP request headers to fsl__xfer (which opens new question about how to handle the login sync card from the curl-based impl), but it's still in flux. Start adding a fsl_sc_popen impl which uses (fossil test-http) for the transport (like fossil itself does), but that one will require lib-side generation of HTTP headers, so we need to sidetrack a bit. check-in: 9eb9331fa2 user: stephan tags: trunk | |
2025-06-26
| ||
18:17 | Add the FSL_SC_F_NO_READ_LINE support. It has caveats, like being well more than an order of magnitude slower than a "native" read-one-line operation. Teach fsl__xfer, in conjunction with FSL_SC_F_RESPONSE_HEADERS, to look for the Content-Length header and, if appropriate for the current mode, use that value to pre-allocate the response payload buffer. check-in: d18c63d0e8 user: stephan tags: trunk | |
14:12 | Replace a magic number (blob upper size limit) with FSL_BLOB_MAX_SIZE. Add fsl_flag32_t typedef. check-in: 69fd413c05 user: stephan tags: trunk | |
12:57 | Latest upstream sqlite3. check-in: 0ba44a1f27 user: stephan tags: trunk | |
12:34 | Add some as-yet-untested code to have fsl__xfer be able to strip HTTP headers from a response. Add fsl_timer_scope(). Remove many extraneous const qualifiers from func decls (as opposed to impls) because it's not actually part of the formal function signature, so is just noise. check-in: a8d0b624f2 user: stephan tags: trunk | |
10:19 | Remove a done TODO comment. Add the fsl_rc_cstr() to the fsl_sc_error() error string prefix. check-in: 54f7425dfe user: stephan tags: trunk | |
09:58 | Fix the new compressed size comparison to be >= instead of > because that's how fossil does it. check-in: 578cecec20 user: stephan tags: trunk | |
09:56 | Strengthen fsl_data_is_compressed() a bit against false positives by ruling out data where the first 4 bytes do not add up to a value in range for a fossil-encoded buffer. check-in: 90c030cf58 user: stephan tags: trunk | |
2025-06-25
| ||
20:35 | Eliminate the distinction between fsl_sc client- and library-level flags. All lib-level flags are in fsl__xfer. check-in: cef0b547dc user: stephan tags: trunk | |
13:07 | Doc tweaks and license header copyright date updates. check-in: 2c505a0aea user: stephan tags: trunk | |
11:42 | Minor internal doc additions. check-in: c5c5856a8e user: stephan tags: trunk | |
11:28 | Add a TODO. check-in: 27aa774e4c user: stephan tags: trunk | |
11:22 | Add timing info for full-body response decompression (clone v1/v2). check-in: 4618abb040 user: stephan tags: trunk | |
2025-06-24
| ||
19:03 | Fix reading of sync cfile and file card payloads. Add decompression of cfile payloads. Refactor fsl__xfer_updateTime() into fsl_timer_add(). check-in: 2be6ad333c user: stephan tags: trunk | |
17:13 | Add some xfer timing info. Turns out that waiting on a compressed clone-version-2 response takes longer than waiting on the same response uncompressed: 10ms vs 26ms. check-in: b55ad917c8 user: stephan tags: trunk | |
15:54 | Get fossil-compressed clone response bodies processing and make this feature opt-in. This is around 8x slower than uncompressed responses for a full clone (some of that on the remote) but can save considerable bandwidth (roughly 90mb vs 262mb on fossil's canonical repo). This currently affect only clone protocol version 2 responses. Version 3+ compresses the card payloads rather than the whole response, which is almost as small but a whole lot faster and requires much less peak RAM than version 2 does. check-in: 93d3b5e3fe user: stephan tags: trunk | |
11:05 | Reimplement fsl_uuid_is_shunned() to use a cached statement, rename it to fsl_is_shunned_uuid(), add fsl_is_shunned_rid(), then remove it because it's meaningless (as explains in the fsl_is_shunned_uuid() docs). Add missing f-sanity tests for fsl_uuid_is_shunned(). check-in: 1a9f5581fd user: stephan tags: trunk | |
09:43 | Refactoring around fsl__xfer. Add the beginnings of a mechanism through which it can fetch compressed sync responses from the fsl_sc without them having to deal with the compression. That will (once complete) explode the memory costs but will keep that complexity out of the fsl_sc interface (which is intended to be client-extensible). Reminder: fossil's sync uses compression by default but can be told to not compress, and this API currently always does that. check-in: 1a04433d79 user: stephan tags: trunk | |
08:16 | Rename and move some fsl__xfer members. check-in: 5c202bb464 user: stephan tags: trunk | |
2025-06-23
| ||
13:50 | Cosmetic and help text tweaks. check-in: c9529fb59d user: stephan tags: trunk | |
13:38 | Add per-card-type counts to the fsl__xfer object. Fix the double-counting of card counts in the card-reading loop. check-in: 4841413e79 user: stephan tags: trunk | |
12:02 | Sync-internal cleanups. Finer-grained timing shows that file-buffered sync requests/responses are actually significantly faster than memory-buffered ones and a whole log memory-cheaper: 410kb peak RAM vs 9.4MB when pulling a clone of fossil's canonical repo, as measured by valgrind's massif tool. check-in: 21c07df3ac user: stephan tags: trunk | |
11:10 | Milestone: do round-trips when pulling a clone so that we get the whole thing. We still don't do anything with it but the responses are parsing. check-in: 3c66d40b44 user: stephan tags: trunk | |
2025-06-22
| ||
23:56 | Add a type ID pointer to fsl_sc state. check-in: 5171f3f2d5 user: stephan tags: trunk | |
23:24 | More sync API refactoring. check-in: 629e2cb131 user: stephan tags: trunk | |
22:40 | Add a tracer fsl_sc impl which can proxy another and trace its method calls. Remove some dead code. Add some new dead code. check-in: e2f6f00f94 user: stephan tags: trunk | |
20:38 | Lots of refactoring of the sync bits. Move those API decls into sync.h. Rename a bunch of stuff. check-in: bddacdea48 user: stephan tags: trunk | |
17:20 | Cleanups and docs. check-in: 80e36da350 user: stephan tags: trunk | |
17:16 | Add a .clangd, created by the config script, but it doesn't seem to do anything. check-in: 37253b03ea user: stephan tags: trunk | |
17:15 | Docs and internal cleanups. check-in: 84528a09c7 user: stephan tags: trunk | |
16:50 | EOL whitespace cleanups. check-in: 12a545bfb8 user: stephan tags: trunk | |
16:02 | Remove a superfluous member of the curl internal state. check-in: 6811a45bdd user: stephan tags: trunk | |
15:53 | Get (FILE*)-buffered reading of curl's response (via a temp file) working. This is on par with full in-memory buffering in terms of speed. check-in: cda768099e user: stephan tags: trunk | |
15:12 | Refactoring in prep for trying (FILE*)-buffered consumption of the curl output. check-in: 9a7fff1e40 user: stephan tags: trunk | |
14:58 | Correct sync temp file permissions. check-in: 26ee41f48c user: stephan tags: trunk | |
13:06 | Add fsl_output_f_fd(). Get semi-unbuffered input from curl's output working using an intermediary file created from its stdout. This is doing exactly what the completely-non-buffered approach does, except that it transfers all contents from curl to the temp file in one call rather than streaming it in later. Why the latter fails and the former works is a mystery, but it seems to eliminate the need for full buffering, so it's a win (but is noticably slower). check-in: a4d279c05b user: stephan tags: trunk | |
12:01 | Teach f-test-sync to optionally not delete temp files, as they're helpful for debugging. check-in: a55e86fe78 user: stephan tags: trunk | |
11:04 | More tinkering with the sync code. Reading directly from curl's output is always reading 0 for reasons unknown, and curl's --output FILE is not being created for reasons beyond my ken, so we still can't buffer from there. check-in: 52506e0451 user: stephan tags: trunk | |
09:26 | Add .clang-format config file to stop clangd's clang-format from changing my code formatting. check-in: b0789e6c58 user: stephan tags: trunk | |
08:01 | Random minor cleanups in/around the sync testing code. check-in: 7cfa0a3161 user: stephan tags: trunk | |
08:01 | Move deps generation feature check up in the configure script for the same reason as [124af9547536]. Remove the makefile's reliance on bash except for the amalgamation generation script (which currently requires bash but should probably be rewritten in tcl so we can use the embedded jimtcl to build it). check-in: b519b242af user: stephan tags: trunk | |
06:57 | A makefile syntax fix for the previous checkin (it was incorrectly modified after testing). check-in: a64803458e user: stephan tags: trunk | |
06:55 | Deps fixes for compile_commands.json. check-in: d69321e1b0 user: stephan tags: trunk | |
06:40 | Move the --compile-commands check up in the configure script because CFLAGS added later break it. (This is why CFLAGS and LDFLAGS should never be updated globally by configure tests. Ordering of the feature tests should be irrelevant.) check-in: 124af95475 user: stephan tags: trunk | |
2025-06-21
| ||
16:46 | Minor tweaks prompted by experimentation with an lsp server via emacs. check-in: 607af30fdc user: stephan tags: trunk | |