Changelog of nornir-mimir-exec
Semantic versioning; each release is checked with cargo semver-checks against the one before.
0.1.3 (2026-11-08)
- On nornir-mimir-ingest 0.2.0 (the binary stream keeps native blocks). The executor itself is unchanged (cargo semver-checks: no semver update required).
0.1.2 (2026-11-08)
- Signal handlers are entries (kind
signal): the fn handed tosignal/bsd_signal/sysv_signal/sigset, and the fns stored intosigaction's struct, found with the value pass's fn-pointer facts and a walk of the local struct (src/exec/signals.rs); signal-hook's registry handler and std's stack-overflow handler included. A handler that cannot be followed is widened to the fn pointers of a handler's signature, with the notesignal handler widened. exec.marksnames every entry's symbol (columnsymbol, rustc's v0 symbol of the entry's instance; nornir-mimir-store 0.1.2), so a loader maps a handler's address to its entry.- The C runtime's own calls are sites: the process entry starts with the C start-up (
_start,libc_map::startup), every thread entry with the libc thread start (start_thread,libc_map::thread_start); node id<root>#start; only gains. - musl 1.2.5's own wrapper answers (nornir-mimir-ingest 0.1.1
libc_map::MUSL):epoll_waitisepoll_pwait,getpgrpisgetpgid,alarmissetitimer, and the ENOSYS / EINVAL / EBADF / by-flags fallbacks ofepoll_create,eventfd,inotify_init,signalfd,pipe2,accept4,dup3,socket,open,utimensat,preadv2,fstat,statx,sigaction…. - Thread-local initialisers are reached: a fn pointer from a data row whose signature is a closure shim's
RustCallform matches the plainfn(..)it is called as (LocalKey::with; std'sRandomState::new→hashmap_random_keys→getrandom).
Measured against 0.1.1 on the same dumps (no node row, pair or possible call lost in any):
| program | entries | possible calls | gained |
| the nine fixtures | +1 each (std's stack-overflow handler) | +6 each | the start-up's arch_prctl, set_tid_address, set_robust_list, rseq, readlinkat, getrandom |
| signal-handler fixture | +4 signal | 30 → 39 | getuid, getgid, getegid (the handlers) + the start-up's |
| heimdall (glibc) | 11 → 16 (+5 signal: its three, std's, wasmtime's trap handler) | 92 → 97 | the start-up's |
| rusternetes (musl) | 388 → 390 | 109 → 120 | epoll_pwait, arch_prctl, set_tid_address, accept, chown, epoll_create, eventfd, futimesat, nanosleep, newfstatat, pipe |
| rusternetes-youki-shim (musl) | 3 → 4 | 111 → 118 | getrandom (std's hashmap keys), arch_prctl, set_tid_address, accept, nanosleep, newfstatat, pipe |
0.1.1 (2026-11-08)
Indirect asm system calls are named: a backward slice from the asm site's number operand (Values::slice_operand) finds the numbers its callers build, so a shared asm door (syscall(nr, …) wrappers) is named by every number that reaches it. Measured: indirect asm sites holger 11 → 0, holger_scan_worker 9 → 0, heimdall 6 → 0; only names gained, none lost, every other key identical (nornir 5e31252a).
0.1.0 (2026-11-07)
The first release on crates.io (before: a path crate inside nornir).