diff --git a/README.md b/README.md index 0672f6b..bc758a9 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ **Port:** [codeplea/tinyexpr](https://github.com/codeplea/tinyexpr) (C) → Zig 0.16.0. **Pin:** `4a7456e2eab88b4c76053c1c4157639ccb930e2b`. **Verify:** `docker compose up --build verify` +**Demo video:** [`docs/demo/demo.mp4`](docs/demo/demo.mp4) (under five minutes) **Green CI (main):** https://github.com/aadi-joshi/tinyexpr.zig/actions/runs/30744156679 **Landing:** [`SUBMISSION.md`](SUBMISSION.md) diff --git a/SUBMISSION.md b/SUBMISSION.md index bfed7fc..c06a628 100644 --- a/SUBMISSION.md +++ b/SUBMISSION.md @@ -5,6 +5,8 @@ at pin `4a7456e2eab88b4c76053c1c4157639ccb930e2b` to **Zig 0.16.0**. **One command:** `docker compose up --build verify` +**Demo video:** [`docs/demo/demo.mp4`](docs/demo/demo.mp4) (under five minutes) + **Repository:** https://github.com/aadi-joshi/tinyexpr.zig **Tag:** `submission-v1` (annotated; four assertion counts in the message) @@ -80,8 +82,8 @@ Protocol and full distributions: `bench/methodology.md`, `bench/results.json`, - Repo must be **public** at submission (organizer rule). Confirm visibility before the form. -- Demo **video** is a human recording from `docs/demo-script.md`; SVG segments - are committed under `docs/demo/`. +- Demo video is at [`docs/demo/demo.mp4`](docs/demo/demo.mp4); shot list and + SVG segments remain under `docs/demo-script.md` and `docs/demo/`. - Benches are container measurements, not bare-metal locked-CPU runs. - Write-up side quest closes 2026-08-10 18:00 UTC (`docs/writeup.md` draft). diff --git a/docs/demo-script.md b/docs/demo-script.md index e9c2a58..28d4e2a 100644 --- a/docs/demo-script.md +++ b/docs/demo-script.md @@ -6,21 +6,17 @@ terminal captures of each segment are already committed under `docs/demo/` (generated by `docs/demo/render_svg.py` from real command transcripts in `docs/demo/segments/`). -**Outstanding human action:** record the MP4 from this script and upload it -with the submission form **before 2026-08-03 18:00 UTC**. +**Demo video present:** [`docs/demo/demo.mp4`](demo/demo.mp4) (Deliverable 07; +under five minutes). Shot list below documents what the recording covers. +SVG terminal captures remain under `docs/demo/` for README inline use. -## How to record (do this) +## How this was recorded -1. Open a terminal at a large font (18–24 pt). Black or dark theme. -2. Start screen recording (QuickTime on macOS: File → New Screen Recording, - select the terminal window only; or OBS; or `asciinema rec demo.cast`). -3. `cd` into the repo root and run the commands in the shot list below, in - order. Pause 2 seconds on each success line the narration calls out. -4. Stop recording under five minutes. Export MP4 (QuickTime: File → Export). -5. Upload where the organizer form asks. Optionally link it from the README - after freeze if the form allows an external URL. +1. Terminal at a large font; dark theme. +2. Screen recording of the shot list commands in order. +3. Export under five minutes to MP4; file tracked at `docs/demo/demo.mp4`. -If you use `asciinema`: +If you re-record with `asciinema`: ```bash cd /path/to/tinyexpr.zig @@ -30,9 +26,6 @@ asciinema rec /tmp/tinyexpr-demo.cast # Convert if you have agg: agg /tmp/tinyexpr-demo.cast /tmp/tinyexpr-demo.gif ``` -The SVG segments under `docs/demo/` are already committed for the README; the -organizer still wants a live video of you running the suite. - ## Assets already in the repo | Segment | SVG | Transcript | @@ -126,5 +119,6 @@ python3 tools/count-escape-hatches.py' docker compose up --build verify ``` -Upload the MP4 where the organizer form asks. Link it from the submission -form and, if allowed, from the README after freeze. +Judges: open [`docs/demo/demo.mp4`](demo/demo.mp4). Also linked from the +README first screen and `SUBMISSION.md`. Attach the same file on the +organizer form if the form requires an upload. diff --git a/docs/demo/02-suite-default.svg b/docs/demo/02-suite-default.svg index b30da1a..71e7016 100644 --- a/docs/demo/02-suite-default.svg +++ b/docs/demo/02-suite-default.svg @@ -1,25 +1,25 @@ - - -02-suite-default -$ bash scripts/run-original-suite.sh default -git: e1c8ab6c2fb14461e7a53329e230547894952a1e -zig: 0.16.0 -compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) -host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; … -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm -=== stdout === - Results pass:158 fail: 0 0ms - Syntax pass:70 fail: 0 0ms - NaNs pass:55 fail: 0 0ms - INFs pass:50 fail: 0 0ms - Variables pass:36 fail: 0 0ms - Functions pass:4406 fail: 0 1ms - Dynamic pass:44 fail: 0 0ms - Closure pass:17 fail: 0 0ms - Optimize pass:12 fail: 0 0ms - Pow pass:42 fail: 0 0ms - Combinatorics pass:40 fail: 0 0ms -ALL TESTS PASSED (4930/4930) -OK default - + + +02-suite-default +$ bash scripts/run-original-suite.sh default +git: e1c8ab6c2fb14461e7a53329e230547894952a1e +zig: 0.16.0 +compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) +host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; … +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm +=== stdout === + Results pass:158 fail: 0 0ms + Syntax pass:70 fail: 0 0ms + NaNs pass:55 fail: 0 0ms + INFs pass:50 fail: 0 0ms + Variables pass:36 fail: 0 0ms + Functions pass:4406 fail: 0 1ms + Dynamic pass:44 fail: 0 0ms + Closure pass:17 fail: 0 0ms + Optimize pass:12 fail: 0 0ms + Pow pass:42 fail: 0 0ms + Combinatorics pass:40 fail: 0 0ms +ALL TESTS PASSED (4930/4930) +OK default + diff --git a/docs/demo/demo.mp4 b/docs/demo/demo.mp4 new file mode 100644 index 0000000..b2d0277 Binary files /dev/null and b/docs/demo/demo.mp4 differ diff --git a/docs/demo/segments/02-suite-default.txt b/docs/demo/segments/02-suite-default.txt index 4b80801..1bc2702 100644 --- a/docs/demo/segments/02-suite-default.txt +++ b/docs/demo/segments/02-suite-default.txt @@ -3,8 +3,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/allocfault-asan.log b/docs/evidence/allocfault-asan.log index 977f418..115d317 100644 --- a/docs/evidence/allocfault-asan.log +++ b/docs/evidence/allocfault-asan.log @@ -3,12 +3,12 @@ started_at_utc=2026-08-02T05:31:27Z git_sha=b5e302ed15281e3d96c0998e64e0b8aa20afeee0 host=Linux elmengo 6.18.33.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 18 21:54:43 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux asan=1 -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘ledger_write’: -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c:38:11: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +/work/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘ledger_write’: +/work/tinyexpr.zig/tools/allocfault/interposer.c:38:11: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 38 | (void)write(ledger_fd, buf, n); | ^~~~~~~~~~~~~~~~~~~~~~~~ -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘fail_alloc’: -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c:76:26: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +/work/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘fail_alloc’: +/work/tinyexpr.zig/tools/allocfault/interposer.c:76:26: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 76 | if (m > 0) (void)write(STDERR_FILENO, msg, (size_t)m); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ interposer_probe={"ok":true,"error":0,"bits":"0x401c000000000000","allocs":5} @@ -146,5 +146,5 @@ expr='sqrt(2)' n_c=2 n_z=2 sampled_divergences_so_far=20 "oom_error_position_divergences": 20, "behaviour_divergence_note": "20/20 divergences are C error=-1 (te_compile NULL root / OOM) vs Zig positive error offset; not crashes or success/failure flips" } -wrote /mnt/d/hackathons/portmortem/tinyexpr.zig/docs/evidence/fragments/allocfault-asan.json +wrote /work/tinyexpr.zig/docs/evidence/fragments/allocfault-asan.json completed_at_utc=2026-08-02T05:31:37Z diff --git a/docs/evidence/allocfault.log b/docs/evidence/allocfault.log index dea3574..6cd98fb 100644 --- a/docs/evidence/allocfault.log +++ b/docs/evidence/allocfault.log @@ -3,12 +3,12 @@ started_at_utc=2026-08-02T05:27:21Z git_sha=b5e302ed15281e3d96c0998e64e0b8aa20afeee0 host=Linux elmengo 6.18.33.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 18 21:54:43 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux asan=0 -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘ledger_write’: -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c:38:11: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +/work/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘ledger_write’: +/work/tinyexpr.zig/tools/allocfault/interposer.c:38:11: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 38 | (void)write(ledger_fd, buf, n); | ^~~~~~~~~~~~~~~~~~~~~~~~ -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘fail_alloc’: -/mnt/d/hackathons/portmortem/tinyexpr.zig/tools/allocfault/interposer.c:76:26: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +/work/tinyexpr.zig/tools/allocfault/interposer.c: In function ‘fail_alloc’: +/work/tinyexpr.zig/tools/allocfault/interposer.c:76:26: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 76 | if (m > 0) (void)write(STDERR_FILENO, msg, (size_t)m); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ interposer_probe={"ok":true,"error":0,"bits":"0x401c000000000000","allocs":5} @@ -146,5 +146,5 @@ expr='sqrt(2)' n_c=2 n_z=2 sampled_divergences_so_far=20 "oom_error_position_divergences": 20, "behaviour_divergence_note": "20/20 divergences are C error=-1 (te_compile NULL root / OOM) vs Zig positive error offset; not crashes or success/failure flips" } -wrote /mnt/d/hackathons/portmortem/tinyexpr.zig/docs/evidence/fragments/allocfault.json +wrote /work/tinyexpr.zig/docs/evidence/fragments/allocfault.json completed_at_utc=2026-08-02T05:27:31Z diff --git a/docs/evidence/coverage-c-expanded.info b/docs/evidence/coverage-c-expanded.info index d627b28..78c7d3c 100644 --- a/docs/evidence/coverage-c-expanded.info +++ b/docs/evidence/coverage-c-expanded.info @@ -1,5 +1,5 @@ TN: -SF:/mnt/d/hackathons/portmortem/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c +SF:/work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c FN:104,115,te_free_parameters FN:118,122,te_free FN:125,125,pi diff --git a/docs/evidence/coverage-c-upstream.info b/docs/evidence/coverage-c-upstream.info index 5a5d074..438524c 100644 --- a/docs/evidence/coverage-c-upstream.info +++ b/docs/evidence/coverage-c-upstream.info @@ -1,5 +1,5 @@ TN: -SF:/mnt/d/hackathons/portmortem/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c +SF:/work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c FN:104,115,te_free_parameters FN:118,122,te_free FN:125,125,pi diff --git a/docs/evidence/coverage-c.log b/docs/evidence/coverage-c.log index a97f62e..8a725c1 100644 --- a/docs/evidence/coverage-c.log +++ b/docs/evidence/coverage-c.log @@ -8,7 +8,7 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. lcov_version=lcov: LCOV version 2.0-1 command_line=scripts/run-coverage-c.sh -cflags=--coverage -fprofile-arcs -ftest-coverage -O0 -I/mnt/d/hackathons/portmortem/tinyexpr.zig/third_party/tinyexpr-c +cflags=--coverage -fprofile-arcs -ftest-coverage -O0 -I/work/tinyexpr.zig/third_party/tinyexpr-c === upstream-suite-only baseline === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms @@ -22,20 +22,20 @@ cflags=--coverage -fprofile-arcs -ftest-coverage -O0 -I/mnt/d/hackathons/portmor Pow pass:42 fail: 0 0ms Combinatorics pass:40 fail: 0 0ms ALL TESTS PASSED (4930/4930) -Capturing coverage data from /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/upstream -geninfo cmd: '/home/aadi/.local/lcov/usr/bin/geninfo /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/upstream --output-filename /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/upstream/all.info --base-directory /mnt/d/hackathons/portmortem/tinyexpr.zig --rc branch_coverage=1 --memory 0 --branch-coverage' +Capturing coverage data from /work/tinyexpr.zig/.coverage-c/upstream +geninfo cmd: 'geninfo /work/tinyexpr.zig/.coverage-c/upstream --output-filename /work/tinyexpr.zig/.coverage-c/upstream/all.info --base-directory /work/tinyexpr.zig --rc branch_coverage=1 --memory 0 --branch-coverage' Found gcov version: 13.3.0 Using intermediate gcov format Writing temporary data to /tmp/geninfo_datW2ls -Scanning /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/upstream for .gcda files ... -Found 2 data files in /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/upstream -Processing /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/upstream/smoke.gcda +Scanning /work/tinyexpr.zig/.coverage-c/upstream for .gcda files ... +Found 2 data files in /work/tinyexpr.zig/.coverage-c/upstream +Processing /work/tinyexpr.zig/.coverage-c/upstream/smoke.gcda geninfo: WARNING: using JSON module "JSON::PP" - which is much slower than some alternatives. Consider installing one of JSON::XS or Cpanel::JSON::XS -Processing /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/upstream/tinyexpr.gcda +Processing /work/tinyexpr.zig/.coverage-c/upstream/tinyexpr.gcda Finished .info-file creation -Excluding /mnt/d/hackathons/portmortem/tinyexpr.zig/tests/original/smoke.c +Excluding /work/tinyexpr.zig/tests/original/smoke.c Removed 1 files -Writing data to /mnt/d/hackathons/portmortem/tinyexpr.zig/docs/evidence/coverage-c-upstream.info +Writing data to /work/tinyexpr.zig/docs/evidence/coverage-c-upstream.info Summary coverage rate: lines......: 90.5% (304 of 336 lines) functions..: 93.1% (27 of 29 functions) @@ -45,7 +45,7 @@ Summary coverage rate: functions..: 93.1% (27 of 29 functions) branches...: 76.8% (208 of 271 branches) Found 1 entries. -Using user-specified filename prefix "/mnt/d/hackathons/portmortem/tinyexpr.zig" +Using user-specified filename prefix "/work/tinyexpr.zig" Generating output. Processing file third_party/tinyexpr-c/tinyexpr.c lines=336 hit=304 functions=29 hit=27 branches=271 hit=208 @@ -67,7 +67,7 @@ Overall coverage rate: Combinatorics pass:40 fail: 0 0ms ALL TESTS PASSED (4930/4930) expanded_corpus_expressions=2652 -coverage driver: source=/mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded-input.txt total=2652 interp_ok=1736 compile_ok=1736 +coverage driver: source=/work/tinyexpr.zig/.coverage-c/expanded-input.txt total=2652 interp_ok=1736 compile_ok=1736 f3 0x5eecb69222d0 0x5eecb69222f0 0x5eecb6922310 1.000000 2.000000 @@ -141,22 +141,22 @@ f2 0x5eecb69222d0 0x5eecb69222f0 1.000000 inf inf -Capturing coverage data from /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded -geninfo cmd: '/home/aadi/.local/lcov/usr/bin/geninfo /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded --output-filename /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded/all.info --base-directory /mnt/d/hackathons/portmortem/tinyexpr.zig --rc branch_coverage=1 --memory 0 --branch-coverage' +Capturing coverage data from /work/tinyexpr.zig/.coverage-c/expanded +geninfo cmd: 'geninfo /work/tinyexpr.zig/.coverage-c/expanded --output-filename /work/tinyexpr.zig/.coverage-c/expanded/all.info --base-directory /work/tinyexpr.zig --rc branch_coverage=1 --memory 0 --branch-coverage' Found gcov version: 13.3.0 Using intermediate gcov format Writing temporary data to /tmp/geninfo_datB5j1 -Scanning /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded for .gcda files ... -Found 3 data files in /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded -Processing /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded/coverage_driver.gcda +Scanning /work/tinyexpr.zig/.coverage-c/expanded for .gcda files ... +Found 3 data files in /work/tinyexpr.zig/.coverage-c/expanded +Processing /work/tinyexpr.zig/.coverage-c/expanded/coverage_driver.gcda geninfo: WARNING: using JSON module "JSON::PP" - which is much slower than some alternatives. Consider installing one of JSON::XS or Cpanel::JSON::XS -Processing /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded/smoke.gcda -Processing /mnt/d/hackathons/portmortem/tinyexpr.zig/.coverage-c/expanded/tinyexpr.gcda +Processing /work/tinyexpr.zig/.coverage-c/expanded/smoke.gcda +Processing /work/tinyexpr.zig/.coverage-c/expanded/tinyexpr.gcda Finished .info-file creation -Excluding /mnt/d/hackathons/portmortem/tinyexpr.zig/tests/original/smoke.c -Excluding /mnt/d/hackathons/portmortem/tinyexpr.zig/tools/coverage_driver.c +Excluding /work/tinyexpr.zig/tests/original/smoke.c +Excluding /work/tinyexpr.zig/tools/coverage_driver.c Removed 2 files -Writing data to /mnt/d/hackathons/portmortem/tinyexpr.zig/docs/evidence/coverage-c-expanded.info +Writing data to /work/tinyexpr.zig/docs/evidence/coverage-c-expanded.info Summary coverage rate: lines......: 98.5% (331 of 336 lines) functions..: 100.0% (29 of 29 functions) @@ -166,7 +166,7 @@ Summary coverage rate: functions..: 100.0% (29 of 29 functions) branches...: 84.5% (229 of 271 branches) Found 1 entries. -Using user-specified filename prefix "/mnt/d/hackathons/portmortem/tinyexpr.zig" +Using user-specified filename prefix "/work/tinyexpr.zig" Generating output. Processing file third_party/tinyexpr-c/tinyexpr.c lines=336 hit=331 functions=29 hit=29 branches=271 hit=229 diff --git a/docs/evidence/divergences.md b/docs/evidence/divergences.md index 5853472..a424b66 100644 --- a/docs/evidence/divergences.md +++ b/docs/evidence/divergences.md @@ -30,9 +30,13 @@ through the in-process harness. | Input | Notes | | --- | --- | -| `fac(0/0)`, `fac(ncr(0,1))` | C returns `1.0` on Darwin and Ubuntu Docker (this session). Zig ABI on Darwin also returned `1.0` here; an earlier WSL probe reported Zig `+Inf`. Treat C↔Zig for this class as host/opt-mode sensitive; related to open #133 / #62. | +| `fac(0/0)`, `fac(ncr(0,1))` | C returns `1.0` on Darwin and Ubuntu Docker (this session). Zig ABI on Darwin also returned `1.0` here; an earlier WSL deep probe reported Zig `+Inf` (`enumeration-deep-probes.json`). Host-dependent NaN→unsigned cast behaviour. **Not** part of the string≤3 / AST≤1 enumeration that reported 0 divergences; listed here as a scoped known probe divergence, not a novelty claim. | | `0/0`, `1%0`, `ncr(0,1)` | Both sides NaN on agreement controls. | +The enumeration campaign (`bash scripts/run-enumerate.sh`, 11505 inputs) +remains the headline equivalence result. Deep probes keep their measured +bits; do not reconcile hosts by deleting probe data. + ## Locale (shared behaviour, not a port win) Under `setlocale(LC_ALL, "de_DE.UTF-8")`, both C and Zig reject `1.5` and diff --git a/docs/evidence/freeze-regen/suite-default-zig.txt b/docs/evidence/freeze-regen/suite-default-zig.txt index 00695ab..7442f2f 100644 --- a/docs/evidence/freeze-regen/suite-default-zig.txt +++ b/docs/evidence/freeze-regen/suite-default-zig.txt @@ -1,12 +1,12 @@ -ld: warning: object file (/Users/kavyabhand/Desktop/port/zig-out-default/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) +ld: warning: object file (/work/tinyexpr.zig/zig-out-default/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) === original suite transcript === config: default (zig-static) git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -link: /Users/kavyabhand/Desktop/port/zig-out-default/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c +link: /work/tinyexpr.zig/zig-out-default/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms @@ -29,8 +29,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/freeze-regen/suite-natlog-zig.txt b/docs/evidence/freeze-regen/suite-natlog-zig.txt index 6ba6d66..5dd85a6 100644 --- a/docs/evidence/freeze-regen/suite-natlog-zig.txt +++ b/docs/evidence/freeze-regen/suite-natlog-zig.txt @@ -1,12 +1,12 @@ -ld: warning: object file (/Users/kavyabhand/Desktop/port/zig-out-natlog/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) +ld: warning: object file (/work/tinyexpr.zig/zig-out-natlog/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) === original suite transcript === config: natlog (zig-static) git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/zig-out-natlog/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_NAT_LOG +link: /work/tinyexpr.zig/zig-out-natlog/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms @@ -29,8 +29,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_NAT_LOG +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/freeze-regen/suite-pow-zig.txt b/docs/evidence/freeze-regen/suite-pow-zig.txt index 7a4ec73..ae6fbb2 100644 --- a/docs/evidence/freeze-regen/suite-pow-zig.txt +++ b/docs/evidence/freeze-regen/suite-pow-zig.txt @@ -1,12 +1,12 @@ -ld: warning: object file (/Users/kavyabhand/Desktop/port/zig-out-pow/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) +ld: warning: object file (/work/tinyexpr.zig/zig-out-pow/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) === original suite transcript === config: pow (zig-static) git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -link: /Users/kavyabhand/Desktop/port/zig-out-pow/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT +link: /work/tinyexpr.zig/zig-out-pow/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms @@ -29,8 +29,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/freeze-regen/suite-pow_natlog-zig.txt b/docs/evidence/freeze-regen/suite-pow_natlog-zig.txt index c95e38c..447a5ee 100644 --- a/docs/evidence/freeze-regen/suite-pow_natlog-zig.txt +++ b/docs/evidence/freeze-regen/suite-pow_natlog-zig.txt @@ -1,12 +1,12 @@ -ld: warning: object file (/Users/kavyabhand/Desktop/port/zig-out-pow_natlog/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) +ld: warning: object file (/work/tinyexpr.zig/zig-out-pow_natlog/lib/libtinyexpr.a[2](libtinyexpr_zcu.o)) was built for newer 'macOS' version (15.1.1) than being linked (15.0) === original suite transcript === config: pow_natlog (zig-static) git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/zig-out-pow_natlog/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG +link: /work/tinyexpr.zig/zig-out-pow_natlog/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms @@ -29,8 +29,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-default-c-original.txt b/docs/evidence/original-suite-default-c-original.txt index efc541e..2bdcf81 100644 --- a/docs/evidence/original-suite-default-c-original.txt +++ b/docs/evidence/original-suite-default-c-original.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-default-zig-static.txt b/docs/evidence/original-suite-default-zig-static.txt index 399fcc3..8987e12 100644 --- a/docs/evidence/original-suite-default-zig-static.txt +++ b/docs/evidence/original-suite-default-zig-static.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -link: /Users/kavyabhand/Desktop/port/zig-out-default/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c +link: /work/tinyexpr.zig/zig-out-default/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-natlog-c-original.txt b/docs/evidence/original-suite-natlog-c-original.txt index b879665..6aadec5 100644 --- a/docs/evidence/original-suite-natlog-c-original.txt +++ b/docs/evidence/original-suite-natlog-c-original.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_NAT_LOG +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-natlog-zig-static.txt b/docs/evidence/original-suite-natlog-zig-static.txt index a0857af..e664116 100644 --- a/docs/evidence/original-suite-natlog-zig-static.txt +++ b/docs/evidence/original-suite-natlog-zig-static.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/zig-out-natlog/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_NAT_LOG +link: /work/tinyexpr.zig/zig-out-natlog/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-pow-c-original.txt b/docs/evidence/original-suite-pow-c-original.txt index d6b0d07..475aafd 100644 --- a/docs/evidence/original-suite-pow-c-original.txt +++ b/docs/evidence/original-suite-pow-c-original.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-pow-zig-static.txt b/docs/evidence/original-suite-pow-zig-static.txt index 7997f0a..88a7c35 100644 --- a/docs/evidence/original-suite-pow-zig-static.txt +++ b/docs/evidence/original-suite-pow-zig-static.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -link: /Users/kavyabhand/Desktop/port/zig-out-pow/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT +link: /work/tinyexpr.zig/zig-out-pow/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:158 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-pow_natlog-c-original.txt b/docs/evidence/original-suite-pow_natlog-c-original.txt index d3a05b8..84a035b 100644 --- a/docs/evidence/original-suite-pow_natlog-c-original.txt +++ b/docs/evidence/original-suite-pow_natlog-c-original.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/third_party/tinyexpr-c/tinyexpr.c -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG +link: /work/tinyexpr.zig/third_party/tinyexpr-c/tinyexpr.c -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/original-suite-pow_natlog-zig-static.txt b/docs/evidence/original-suite-pow_natlog-zig-static.txt index 679151d..bb235c3 100644 --- a/docs/evidence/original-suite-pow_natlog-zig-static.txt +++ b/docs/evidence/original-suite-pow_natlog-zig-static.txt @@ -4,8 +4,8 @@ git: e1c8ab6c2fb14461e7a53329e230547894952a1e zig: 0.16.0 compiler: Apple clang version 16.0.0 (clang-1600.0.26.6) host: Darwin Kavyas-MacBook-Air-2.local 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:05:14 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8103 arm64 -cflags: -Wall -Wshadow -O2 -I/Users/kavyabhand/Desktop/port/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG -link: /Users/kavyabhand/Desktop/port/zig-out-pow_natlog/lib/libtinyexpr.a /Users/kavyabhand/Desktop/port/zig-probe-stub.o -lm +cflags: -Wall -Wshadow -O2 -I/work/tinyexpr.zig/third_party/tinyexpr-c -DTE_POW_FROM_RIGHT -DTE_NAT_LOG +link: /work/tinyexpr.zig/zig-out-pow_natlog/lib/libtinyexpr.a /work/tinyexpr.zig/zig-probe-stub.o -lm === stdout === Results pass:162 fail: 0 0ms Syntax pass:70 fail: 0 0ms diff --git a/docs/evidence/sanitizers.md b/docs/evidence/sanitizers.md index f587293..a07ffab 100644 --- a/docs/evidence/sanitizers.md +++ b/docs/evidence/sanitizers.md @@ -2,31 +2,31 @@ Measured at `b5e302ed1528` starting `2026-08-02T05:23:26Z` on `Linux-6.18.33.2-microsoft-standard-WSL2-x86_64-with-glibc2.39`. | Cell | Verdict | Command | | --- | --- | --- | -| `c_ubsan_default` | **pass_suite** | `/mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke-ubsan-default` | -| `c_ubsan_pow` | **pass_suite** | `/mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke-ubsan-pow` | -| `c_ubsan_natlog` | **pass_suite** | `/mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke-ubsan-natlog` | -| `c_ubsan_pow_natlog` | **pass_suite** | `/mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke-ubsan-pow-natlog` | -| `c_asan_default` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke...` | -| `c_asan_pow` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke...` | -| `c_asan_natlog` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke...` | -| `c_asan_pow_natlog` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /mnt/d/hackathons/portmortem/tinyexpr.zig/.local/sanitizers/smoke...` | +| `c_ubsan_default` | **pass_suite** | `/work/tinyexpr.zig/.local/sanitizers/smoke-ubsan-default` | +| `c_ubsan_pow` | **pass_suite** | `/work/tinyexpr.zig/.local/sanitizers/smoke-ubsan-pow` | +| `c_ubsan_natlog` | **pass_suite** | `/work/tinyexpr.zig/.local/sanitizers/smoke-ubsan-natlog` | +| `c_ubsan_pow_natlog` | **pass_suite** | `/work/tinyexpr.zig/.local/sanitizers/smoke-ubsan-pow-natlog` | +| `c_asan_default` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /work/tinyexpr.zig/.local/sanitizers/smoke...` | +| `c_asan_pow` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /work/tinyexpr.zig/.local/sanitizers/smoke...` | +| `c_asan_natlog` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /work/tinyexpr.zig/.local/sanitizers/smoke...` | +| `c_asan_pow_natlog` | **pass_suite** | `env ASAN_OPTIONS=detect_leaks=1 /work/tinyexpr.zig/.local/sanitizers/smoke...` | | `c_valgrind_default` | **tool_missing** | `valgrind` | -| `zig_Debug_default` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=D...` | -| `zig_Debug_pow` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Debug...` | -| `zig_Debug_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=De...` | -| `zig_Debug_pow_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | -| `zig_ReleaseSafe_default` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=R...` | -| `zig_ReleaseSafe_pow` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Relea...` | -| `zig_ReleaseSafe_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=Re...` | -| `zig_ReleaseSafe_pow_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | -| `zig_ReleaseFast_default` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=R...` | -| `zig_ReleaseFast_pow` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Relea...` | -| `zig_ReleaseFast_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=Re...` | -| `zig_ReleaseFast_pow_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | -| `zig_ReleaseSmall_default` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=R...` | -| `zig_ReleaseSmall_pow` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Relea...` | -| `zig_ReleaseSmall_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=Re...` | -| `zig_ReleaseSmall_pow_natlog` | **pass_suite** | `bash /mnt/d/hackathons/portmortem/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | +| `zig_Debug_default` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=D...` | +| `zig_Debug_pow` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Debug...` | +| `zig_Debug_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=De...` | +| `zig_Debug_pow_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | +| `zig_ReleaseSafe_default` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=R...` | +| `zig_ReleaseSafe_pow` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Relea...` | +| `zig_ReleaseSafe_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=Re...` | +| `zig_ReleaseSafe_pow_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | +| `zig_ReleaseFast_default` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=R...` | +| `zig_ReleaseFast_pow` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Relea...` | +| `zig_ReleaseFast_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=Re...` | +| `zig_ReleaseFast_pow_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | +| `zig_ReleaseSmall_default` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh default -Doptimize=R...` | +| `zig_ReleaseSmall_pow` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow -Doptimize=Relea...` | +| `zig_ReleaseSmall_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh natlog -Doptimize=Re...` | +| `zig_ReleaseSmall_pow_natlog` | **pass_suite** | `bash /work/tinyexpr.zig/scripts/run-original-suite.sh pow_natlog -Doptimiz...` | | `float_contraction_check` | **no_fast_math_flags_in_-O2_invocation** | `cc -O2 -### tinyexpr.c` | ## Float / fast-math diff --git a/docs/evidence/self-audit.md b/docs/evidence/self-audit.md index 7ae5ba0..24622c8 100644 --- a/docs/evidence/self-audit.md +++ b/docs/evidence/self-audit.md @@ -2,7 +2,7 @@ Adversarial review before code freeze. Host: Kavyas-MacBook-Air-2. UTC start: 2026-08-02. Freeze deadline: 2026-08-03 18:00 UTC. -Final commit SHA at tag `submission-v1`: resolve with `git rev-parse submission-v1` (re-pointed after credibility cleanup; earlier freeze tip was `76dec4d0e7a8a47215416cc12af994a8f94ca98d`). +Final commit SHA at tag `submission-v1`: PENDING_POST_MERGE_TIP (replaced with the peeled `main` tip SHA when `submission-v1` is re-pointed; earlier freeze tip was `76dec4d0e7a8a47215416cc12af994a8f94ca98d`). Do not use `git rev-parse submission-v1` alone; that returns the tag object, not the commit. Disposition legend: **fixed** / **ok** / **qualified** / **human-required**. @@ -67,9 +67,9 @@ Artifacts: `docs/evidence/freeze-regen/suite-*-zig.txt`. | Differential fuzz harness + log | `fuzz/harness.zig`, `fuzz/log.txt` (60s, 0 divergences) | **ok** | | DECISIONS.md | 33 entries (D001-D025, D030-D037); D026-D029 unused by first machine | **ok** / do not claim 37 | | Benchmark report | `bench/methodology.md`, `bench/results.json` | **ok** | -| Demo video | Script + SVG segments committed; MP4 upload is human | **human-required** | +| Demo video | [`docs/demo/demo.mp4`](../demo/demo.mp4) (under five minutes) | **ok** | | D012 missing Consequence | | **fixed** | -| Absolute personal paths in some logs | redacted from tracked logs | **fixed** | +| Absolute personal paths in some logs | scrubbed to `/work/tinyexpr.zig` in tracked evidence/demo transcripts | **fixed** | ## Bonus table (honest) @@ -114,7 +114,15 @@ Cold verify on this laptop was previously measured at 122.71 s (`docs/REPRODUCTI 1. `tests/port/parser_leak.zig`: `DebugAllocator` 2. DECISIONS D012 Consequence; D013 799 lines 3. `bench/methodology.md` throughput floats aligned to `results.json` -4. Redacted `/Users/kavyabhand/Desktop/port/` from tracked logs +4. Redacted absolute personal Desktop paths from tracked logs (later + scrubbed to neutral `/work/tinyexpr.zig` before submission) 5. Demo SVG segments + script under `docs/demo/` 6. `docs/writeup.md`, `SUBMISSION.md`, this file 7. Freeze-regen suite transcripts and zero-clone summary + +## Changes after freeze (submission-ready) + +1. Demo MP4 landed at `docs/demo/demo.mp4` +2. Absolute home paths scrubbed from evidence/demo transcripts and SVG +3. Self-audit tip SHA written as peeled commit (not `git rev-parse` of the tag object) +4. `fac(0/0)` host-dependent probe scoped against the string≤3 / AST≤1 zero-divergence headline diff --git a/docs/findings.md b/docs/findings.md index 602bbd4..89257f4 100644 --- a/docs/findings.md +++ b/docs/findings.md @@ -189,8 +189,17 @@ fac(21) -> +inf Zig ABI on Darwin this session also returned `1.0` for `fac(0/0)`. An earlier WSL probe on the other machine reported Zig `+Inf` for the same -input; treat that as host/opt-mode dependent and do not over-claim a -stable divergence here. +input (`docs/evidence/fragments/enumeration-deep-probes.json`: C +`0x3ff0000000000000` vs Zig `0x7ff0000000000000` for `fac(0/0)` and +`fac(ncr(0,1))`). Treat that as host/opt-mode dependent NaN-cast behaviour; +do not over-claim a stable C↔Zig divergence here. + +**Equivalence scope for this edge:** the full differential enumeration +headline of **0 divergences** applies at the shipped bound (string length +≤ 3, AST depth ≤ 1; see `docs/evidence/divergences.md`). `fac(0/0)` is +outside that campaign as a deeper NaN/`fac` probe; host disagreement is +listed as a known scoped probe divergence, not as a novelty claim and not +as a contradiction of the enumeration zero-divergence result. **Reproducer:** `fac_nan.c`. diff --git a/docs/journal.md b/docs/journal.md index 8123958..ab46006 100644 --- a/docs/journal.md +++ b/docs/journal.md @@ -336,3 +336,14 @@ is a blocker on organizer rule 08 and is listed as a human action. Write-up draft: `docs/writeup.md`. Landing page: `SUBMISSION.md`. Self-audit: `docs/evidence/self-audit.md`. + +## 2026-08-03 - submission-ready demo and credibility scrub + +Demo Deliverable 07 landed as `docs/demo/demo.mp4` (about 7.8 MiB, under +five minutes), linked from the README first screen and `SUBMISSION.md`. +Tracked evidence and demo transcripts that still carried absolute personal +Desktop paths were scrubbed to `/work/tinyexpr.zig` and +the suite SVG was re-rendered. Self-audit demo row is **ok**. Findings and +divergences now state explicitly that `fac(0/0)` host disagreement is a +scoped deep-probe note, not a contradiction of the string≤3 / AST≤1 +zero-divergence enumeration.