Skip to content

Commit 53f1d42

Browse files
chore(beads): close bd-uk9lgb (zero-alloc fread + fgetc)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent d257c38 commit 53f1d42

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

.beads/issues.jsonl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4644,6 +4644,7 @@
46444644
{"id":"bd-uio1","title":"CONFORMANCE: libc sys/uio.h diff matrix","description":"Differential harness shipped (see commit). 4 functions: readv, writev (cross fl<->lc transfer via socketpair, 5-chunk gather), preadv, pwritev (offset-based on tempfile, 2-chunk gather/scatter at offset 16). Plus invalid iovcnt edge. 4 tests, 0 divergences against glibc.","status":"closed","priority":1,"issue_type":"task","assignee":"cod-frankenlibc","created_at":"2026-04-24T10:30:00Z","created_by":"cod-frankenlibc","updated_at":"2026-04-24T10:30:00Z","closed_at":"2026-04-24T10:30:00Z","close_reason":"Harness shipped; 0 divergences.","source_repo":".","compaction_level":0,"original_size":0,"labels":["conformance","differential","scatter-gather","uio"]}
46454645
{"id":"bd-uivdf","title":"Add pthread rwlock/cancel fixture wave-02 coverage","description":"Child of bd-l8i5b. Source evidence: fixture_coverage_prioritizer ranks fcq-pthread-sync fourth with current coverage 27.66% and next symbols [__pthread_register_cancel_defer, __pthread_rwlock_destroy, __pthread_rwlock_init, __pthread_rwlock_rdlock, __pthread_rwlock_tryrdlock, __pthread_rwlock_trywrlock, __pthread_rwlock_unlock, __pthread_rwlock_wrlock, __pthread_setspecific, __pthread_unregister_cancel, __pthread_unregister_cancel_restore, __pthread_unwind_next]. Add deterministic strict+hardened fixture coverage using bounded same-thread rwlock/TLS/cancel-safe scenarios with no real deadlock, no leaked threads, and stable errno/status classes. Validation: jq, rustfmt, coverage/prioritizer gates, br cycles, remote-only rch focused test/check/clippy.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-13T11:48:46.116860052Z","created_by":"ubuntu","updated_at":"2026-05-13T13:12:51.706802661Z","closed_at":"2026-05-13T13:12:51.706575862Z","close_reason":"Implemented pthread sync wave02 fixture coverage for __pthread_register_cancel_defer, rwlock aliases, __pthread_setspecific, unregister-cancel aliases, and __pthread_unwind_next in strict+hardened mode. Added non-host executor replay with bounded same-thread rwlock/TLS scenarios and fork-isolated unwind abort classification; added harness test and refreshed symbol/per-symbol/prioritizer artifacts. Validation: jq empty; rustfmt --edition 2024 --check on touched Rust; git diff --check on intended paths; scripts/check_symbol_fixture_coverage.sh PASS covered_count=766 uncovered_count=3353; scripts/check_per_symbol_fixture_tests.sh --validate-only PASS 764 fixture-linked symbols and 1978 cases; scripts/check_fixture_coverage_prioritizer.sh PASS wave02 lifecycle; br --no-db dep cycles --json count 0; remote-only rch focused test cargo test -p frankenlibc-harness --test pthread_sync_wave02_conformance_test -- --nocapture PASS 5/5 on vmi1227854; remote-only rch focused check PASS on vmi1153651; remote-only rch clippy --no-deps PASS for frankenlibc_conformance --lib and frankenlibc-harness pthread_sync_wave02 test on vmi1227854. Full dependency clippy remains blocked by unrelated dirty/reserved crates/frankenlibc-abi/src/glibc_internal_abi.rs needless_bool_assign lint; not part of this bead and not staged.","source_repo":".","compaction_level":0,"original_size":0,"labels":["conformance","fixtures","idea-wizard","pthread"],"dependencies":[{"issue_id":"bd-uivdf","depends_on_id":"bd-l8i5b","type":"parent-child","created_at":"2026-05-13T11:51:47.355777911Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
46464646
{"id":"bd-ujxkk","title":"PORT: __sigprocmask + __sigwait + __sigwaitinfo + __sigqueue + __pause + __raise + __kill + __killpg + __sigignore + __sighold + __sigrelse (glibc reserved aliases)","description":"Port the glibc reserved-namespace aliases for the signal-management entry points: __sigprocmask, __sigwait, __sigwaitinfo, __sigqueue, __pause, __raise, __kill, __killpg, __sigignore, __sighold, __sigrelse. glibc emits these as both internal-use entry points and as the symbols libstdc++ cancellation cleanup, libpthread internals, and NPTL interruption paths link against. Implementation: thin no_mangle Rust extern \"C\" wrappers delegating to the public counterparts in signal_abi (most) and unistd_abi (sigqueue/sigwaitinfo). Tests verify each alias produces the same observable behavior as its public counterpart on a representative input.","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-04-26T13:07:34.125693849Z","created_by":"ubuntu","updated_at":"2026-04-26T13:11:53.963332356Z","closed_at":"2026-04-26T13:11:53.961328402Z","close_reason":"shipped: 11 glibc reserved-namespace signal aliases (__sigprocmask/__sigwait/__sigwaitinfo/__sigqueue/__pause/__raise/__kill/__killpg/__sigignore/__sighold/__sigrelse) delegating to existing public-name impls + 5 abi tests, all green","source_repo":".","compaction_level":0,"original_size":0}
4647+
{"id":"bd-uk9lgb","title":"[perf] fread allocated a throwaway Vec per call (membrane-malloc in shipped lib)","description":"fread did mem_read(total)->Vec + copy (mem path, allocated TWICE) / buffered_read(n)->Vec + copy (fd path). In shipped libc.so each Vec alloc routes through the ~65-130ns security-membrane malloc. FIX: zero-copy FileState::mem_read_into/buffered_read_into (mem via backing peek+consume, fd via buffer.read slice); fread fills caller buffer directly. Byte-identical (fread_partial + fmemopen differential vs glibc + core stdio::file 38 green). Bench-parity under system allocator; small-record fread 0.90x->0.83x glibc. alloc->0 floor. FOLLOW-UP (open): fgetc/getc (mem_read(1)/buffered_read(1)) and scanf (mem_read(limit)) still allocate per-call 1-byte/limit Vecs — route through *_into with a stack buffer; fgetc is per-byte hot so the membrane-malloc-per-getc removal is higher value.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-06-13T07:59:14.148954100Z","created_by":"ubuntu","updated_at":"2026-06-13T08:10:41.545971264Z","closed_at":"2026-06-13T08:10:41.545876755Z","close_reason":"done","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"labels":["perf","stdio"],"comments":[{"id":1599,"issue_id":"bd-uk9lgb","author":"ubuntu","text":"fgetc/getc ALSO done (cc): single-byte read now uses mem_read_into/buffered_read_into into a [0u8;1] stack buffer — no per-getc Vec/membrane-malloc. Byte-identical (fgets_differential + getc probe + stdio::file 38 green). fread + fgetc both alloc->0 now. REMAINING: scanf mem_read(limit) at stdio_abi.rs:5057 still allocs (lower priority — scanf is less hot + the limit-Vec is reused-ish).","created_at":"2026-06-13T08:10:41Z"}]}
46474648
{"id":"bd-ukn2","title":"Conformance: execute string_ops fixture cases","description":"Add deterministic execute_fixture_case coverage for the string_ops fixture family, especially the currently unsupported strlcpy/strlcat fixture cases, and extend the harness test so every string_ops fixture case runs through frankenlibc_fixture_exec. Verify with focused rch test/check/clippy.","status":"closed","priority":2,"issue_type":"task","assignee":"SilverHarbor","created_at":"2026-04-18T02:34:21.226932794Z","created_by":"SilverHarbor","updated_at":"2026-04-18T02:41:23.278651539Z","closed_at":"2026-04-18T02:41:23.276674868Z","close_reason":"Implemented string_ops execute_fixture_case coverage for strlcpy/strlcat and harness fixture execution; verified with rch test/check/clippy","source_repo":".","compaction_level":0,"original_size":0,"labels":["conformance","string","testing"]}
46484649
{"id":"bd-ukn6h","title":"add mounted-path ext4 fallocate-on-directory EISDIR coverage","description":"Survey finding: ext4 mounted-path FUSE E2E proves fallocate success and invalid-mode rejection on regular files, while ffs-core already rejects fallocate on directories with IsDirectory/EISDIR. Scope: add an ext4 mounted-path probe that opens a directory fd on a writable FUSE mount, invokes libc fallocate on it, asserts exact EISDIR, and verifies directory entries remain unchanged. Acceptance: fuse_e2e freezes the public ext4 directory-fd fallocate refusal contract.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-04-21T09:09:58.927607120Z","created_by":"ubuntu","updated_at":"2026-04-21T23:35:58.906309314Z","closed_at":"2026-04-21T23:35:58.903749647Z","source_repo":".","compaction_level":0,"original_size":0}
46494650
{"id":"bd-ukuxr","title":"PORT: 12 _nss_files_setXX NSS plugin stubs","description":"Add the 12 _nss_files_setXX NSS plugin \"begin iteration\" entries that pair with the endXX stubs from bd-fsknj. Each returns NSS_STATUS_SUCCESS (= 1) since we never actually open any backing file. Signatures vary per family per the NSS files-module convention: setaliasent takes no args; setetherent / setgrent / sethostent / setnetent / setprotoent / setpwent / setrpcent / setservent / setsgent / setspent take an int stayopen flag (ignored, retained for ABI compat); setnetgrent takes (const char *netgroup, struct __netgrent *result) and we ignore both. All are exposed via small no-mangle wrappers.","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-04-26T19:21:50.680454018Z","created_by":"ubuntu","updated_at":"2026-04-26T19:41:48.517137090Z","closed_at":"2026-04-26T19:25:42.477650471Z","close_reason":"shipped: 12 _nss_files_setXX stubs (1 no-arg + 10 stayopen + 1 setnetgrent) returning NSS_STATUS_SUCCESS via focused wrappers and ABI tests","source_repo":".","compaction_level":0,"original_size":0}

0 commit comments

Comments
 (0)