User Details
- User Since
- Jul 1 2014, 6:02 PM (612 w, 4 d)
Fri, Mar 27
Fri, Mar 13
Mon, Mar 9
Thu, Mar 5
Feb 24 2026
Feb 23 2026
Feb 19 2026
Feb 18 2026
Feb 17 2026
Feb 2 2026
Jan 23 2026
Jan 20 2026
Jan 19 2026
I like the idea of the split, but I'm not convinced queue.3 should go away entirely. If nothing else this commit fails to remove all references to queue(3) in the tree and I suspect it's in some people's finger memory. I'd suggest transforming queue.3 into an intro-like manpage with a brief comparison of each of the relevant list/queue types.
Jan 16 2026
Jan 15 2026
In practice, this would be fine with default CHERI C, but broken with subobject bounds.
Jan 14 2026
I'm not sure if this is the right sorting, but otherwise it's good.
The whole stack of review builds including subdirectories that aren't connected to the build (other then sndio since I didn't have libsndio installed). However, these changes are untested and I've only verified this last change by building and examining the library with nm to verity that they don't include surprising undefined symbols.
Jan 9 2026
Fix up comment removing errors
Rename CACHE_ZONE_ALIGNMENT to CACHE_ZONE_ALIGN_MASK and use it
consistenly.
Jan 8 2026
Drop *_zero functions entierly
For additional context, I took a look at the disassembly on amd64 and the memsets are all expanded in place:
; memset(pi, 0, sizeof(*pi));
8461: 48 c7 85 78 ff ff ff 00 00 00 00 movq $0x0, -0x88(%rbp)
846c: 48 c7 85 70 ff ff ff 00 00 00 00 movq $0x0, -0x90(%rbp)
8477: 48 c7 85 68 ff ff ff 00 00 00 00 movq $0x0, -0x98(%rbp)
8482: 48 c7 85 60 ff ff ff 00 00 00 00 movq $0x0, -0xa0(%rbp)
848d: 48 c7 85 58 ff ff ff 00 00 00 00 movq $0x0, -0xa8(%rbp)
8498: 48 c7 85 50 ff ff ff 00 00 00 00 movq $0x0, -0xb0(%rbp)
...
; memset(ri, 0, sizeof(*ri));
8b1d: 48 c7 85 78 ff ff ff 00 00 00 00 movq $0x0, -0x88(%rbp)
8b28: 48 c7 85 70 ff ff ff 00 00 00 00 movq $0x0, -0x90(%rbp)
8b33: 48 c7 85 60 ff ff ff 00 00 00 00 movq $0x0, -0xa0(%rbp)
8b3e: 48 c7 85 58 ff ff ff 00 00 00 00 movq $0x0, -0xa8(%rbp)
8b49: 48 8b 85 48 ff ff ff movq -0xb8(%rbp), %rax
...
; memset(pi, 0, sizeof(*pi));
a9aa: 48 c7 45 a0 00 00 00 00 movq $0x0, -0x60(%rbp)
a9b2: 48 c7 45 98 00 00 00 00 movq $0x0, -0x68(%rbp)
a9ba: 48 c7 45 90 00 00 00 00 movq $0x0, -0x70(%rbp)
a9c2: 48 c7 45 88 00 00 00 00 movq $0x0, -0x78(%rbp)
a9ca: 48 c7 45 80 00 00 00 00 movq $0x0, -0x80(%rbp)
a9d2: 48 c7 85 78 ff ff ff 00 00 00 00 movq $0x0, -0x88(%rbp)
a9dd: 48 c7 85 70 ff ff ff 00 00 00 00 movq $0x0, -0x90(%rbp)
...
; memset(ri, 0, sizeof(*ri));
bc7c: 48 c7 45 b0 00 00 00 00 movq $0x0, -0x50(%rbp)
bc84: 48 c7 45 a8 00 00 00 00 movq $0x0, -0x58(%rbp)
bc8c: 48 c7 45 a0 00 00 00 00 movq $0x0, -0x60(%rbp)
bc94: 48 c7 45 98 00 00 00 00 movq $0x0, -0x68(%rbp)
bc9c: 48 c7 45 90 00 00 00 00 movq $0x0, -0x70(%rbp)
...
; memset(pi, 0, sizeof(*pi));
dc56: 48 c7 45 c8 00 00 00 00 movq $0x0, -0x38(%rbp)
dc5e: 48 c7 45 c0 00 00 00 00 movq $0x0, -0x40(%rbp)
dc66: 48 c7 45 b8 00 00 00 00 movq $0x0, -0x48(%rbp)
dc6e: 48 c7 45 b0 00 00 00 00 movq $0x0, -0x50(%rbp)
dc76: 48 c7 45 a8 00 00 00 00 movq $0x0, -0x58(%rbp)
dc7e: 48 c7 45 a0 00 00 00 00 movq $0x0, -0x60(%rbp)
dc86: 48 c7 45 98 00 00 00 00 movq $0x0, -0x68(%rbp)CHERI adds yet another branch to the ifdefs and makes this worse and harder to maintain so it's time for it to go. The compiler is also free to recognize the pattern here as memset and replace the code with a libcall so this optimization isn't reliable in any way.
Update the CACHE_PATH_CUTOFF comment adding more context and values.
Restore CACHE_ZONE_ALIGNMENT
Jan 6 2026
Address most of @jhb's feedback. Remvoe CACHE_ZONE_ALIGNMENT entierly
in favor of _Alignof(struct namecache_ts).
Dec 26 2025
This passes a universe build with:
Dec 22 2025
Dec 19 2025
LGTM. Out of paranoia, I verified using compiler explorer that it's reliably const enough to use in a macro even at -O0 with an old clang.
Dec 18 2025
I don't care how it's fixed, but I will commit this pretty soon if a broader fix isn't added. The linuxkpi fix should never have been committed without a fallback.
Dec 17 2025
Bump compiler version to 19.1.0 since development versions may not
include __builtin_popcountg.
