Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
6 changes: 4 additions & 2 deletions SUBMISSION.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -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).

Expand Down
28 changes: 11 additions & 17 deletions docs/demo-script.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 |
Expand Down Expand Up @@ -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.
50 changes: 25 additions & 25 deletions docs/demo/02-suite-default.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/demo/demo.mp4
Binary file not shown.
4 changes: 2 additions & 2 deletions docs/demo/segments/02-suite-default.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 5 additions & 5 deletions docs/evidence/allocfault-asan.log
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down Expand Up @@ -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
10 changes: 5 additions & 5 deletions docs/evidence/allocfault.log
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down Expand Up @@ -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
2 changes: 1 addition & 1 deletion docs/evidence/coverage-c-expanded.info
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/evidence/coverage-c-upstream.info
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading
Loading