Login
Timeline
Login

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

30 most recent check-ins

2025-06-30
10:38
Simplify how fcli finds the fossil binary. Add fsl__find_bin(). Minor tinkering with the sync pieces. Leaf check-in: 21143f6cc2 user: stephan tags: trunk
10:07
Fix test cases broken by an API change in [9cb314549426]. check-in: 90878aa9fb user: stephan tags: trunk
2025-06-29
08:57
Portability fix: do not shift 32 bits in an enum. check-in: 620b0c8e7d user: stephan tags: trunk
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. 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