Skip to content

daslang.io: the cross-language page carries dasProfile's Zig lane, a startup board, and the Linux record - #3962

Merged
borisbat merged 7 commits into
masterfrom
bbatkin/site-zig-startup
Sep 8, 2026
Merged

daslang.io: the cross-language page carries dasProfile's Zig lane, a startup board, and the Linux record#3962
borisbat merged 7 commits into
masterfrom
bbatkin/site-zig-startup

Conversation

@borisbat

@borisbat borisbat commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Behavior change: the cross-language page and the front-page cycler render whichever of the darwin, linux and windows records the deploy fetches from dasProfile - once borisbat/dasProfile#14 lands, that is macOS (M1 Max) and Linux (zen4), each with a Zig column and a startup board, and no Windows entry until a Windows capture lands.

Why. dasProfile gains a zig lane, a startup table (hello world in every language on the boards) and a Linux record, and drops the old Windows one; the page that renders its records has to know all of it.

What changes.

  • LANES["AOT or JIT"] and the front-page cycler's BENCH_COLS carry ZIG after C++; the C++ label carries no flag (the lane builds at the configuration's default optimization); the page's copy counts eight runtimes with C++ and Zig as the native floor; the provenance line names the zig version when the record carries one.
  • A third board, startup, one row per runtime: startupRows reads the record's Startup section (its hello world row, one entry per language, in the record's order), a cell shows the launch time with its spread and, on an exe lane, the artifact size; the hint says what a row is.
  • The platform buttons are built from the records that loaded, labeled by each record's CPU, in the order darwin, linux, windows; both the page and the cycler list linux; pages.yml fetches the linux record too; a platform whose record is missing upstream is dropped client-side. site/README.md says so.

Observable behavior.

  • Before dasProfile#14 merges: the page shows the old macOS and Windows records with a Zig column of - and an empty startup board.
  • After: macOS and Linux, each with a filled Zig column and a startup board of fifteen runtimes; no Windows button.

Where to look. site/benchmarks.html - LANES, STARTUP_LABELS, PLATFORM_ORDER, normalize, startupRows, render; site/files/forge.js - PLATFORMS, BENCH_COLS; .github/workflows/pages.yml - the fetch loop.

Validation, claims, ledger

Validation

  • All three boards previewed locally against the branch's records (python3 -m http.server in site/, the records staged as files/profile_results_<platform>.json) with two and with three platforms; site/REVIEW.das green; the fast preflight gates (untracked, format, review-md, md-ascii, hash-refs) green.

Not done

  • Nothing pending in this repo; the numbers arrive with dasProfile#14.

…asProfile's ZIG lane after C++ on the AOT or JIT board, and the page's copy counts eight runtimes with C++ and Zig as the native floor; the provenance line names the zig version when the record carries one
…e's Startup section, one row per program, the wall time of one launch as a script, under the JIT, as a standalone exe and as its zig twin, with the artifact size on the exe cells; the hero counts three boards
…launch time in every language on the boards, from the record's Startup section, the artifact size beside an exe lane's time; the hero says what the third board is
…ane builds at the configuration's default optimization, -O3 on clang and gcc, /O2 on MSVC
…the records the deploy fetched, labeled by each record's CPU, and both it and the front-page cycler list linux beside darwin and windows; pages.yml fetches the linux record too - a platform whose record is missing is dropped client-side
…tches and that a missing one is dropped client-side
@borisbat
borisbat force-pushed the bbatkin/site-zig-startup branch from 489085c to d65ed80 Compare September 8, 2026 01:49
@borisbat borisbat changed the title daslang.io: the cross-language page carries dasProfile's Zig lane and a startup board daslang.io: the cross-language page carries dasProfile's Zig lane, a startup board, and the Linux record Sep 8, 2026
@borisbat
borisbat marked this pull request as ready for review September 8, 2026 01:49
Copilot AI lite review requested due to automatic review settings September 8, 2026 01:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The workflow/docs curl commands use flags that won’t fail on upstream 404s, which can silently write invalid “JSON” files into site/files/ instead of cleanly skipping missing platforms.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates the daslang.io benchmarks UI and deploy pipeline to align with upcoming dasProfile records: add a Zig lane, add a Startup board, and make platform selection/rendering driven by whichever per-platform records are available (darwin/linux/windows).

Changes:

  • Extend the benchmark lane definitions to include Zig (and adjust C++ labeling) in both the cross-language page and the front-page cycler.
  • Add a third “Startup” board on benchmarks.html, including optional artifact-size display and dynamic platform buttons based on fetched records.
  • Update Pages deploy workflow and site docs to fetch/describe profile_results_<platform>.json for darwin/linux/windows.
File summaries
File Description
site/README.md Updates local dev + documentation to the new per-platform dasProfile record scheme (darwin/linux/windows).
site/files/forge.js Adds Zig to the “AOT or JIT” columns and includes linux in the platform fetch list for the front-page cycler.
site/benchmarks.html Adds Zig lane + Startup board and makes platform buttons/data driven by whichever records load successfully.
.github/workflows/pages.yml Extends deploy-time fetch loop to include linux record alongside darwin/windows.
Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/pages.yml Outdated
Comment thread site/README.md
…he file on failure - without -f a missing record upstream wrote the 404 body as profile_results_<platform>.json and the warning never printed; the README's local snippet does the same
Copilot AI review requested due to automatic review settings September 8, 2026 01:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

site/benchmarks.html currently accumulates startupOrder with possible duplicates (can render duplicate rows) and site/README.md has an internal inconsistency about the optional Windows record.

Review details

Suppressed comments (2)

Previously missed (2) — in code that hasn't changed since the last review.

site/benchmarks.html:517

  • In normalize(), out.startupOrder is appended to for every entry in the Startup section, which can produce duplicate lane names if the upstream JSON ever contains multiple Startup tests (or repeats a language). That would render duplicate rows in the Startup board and makes the order unstable. Deduplicate while preserving first-seen order.
    site/README.md:35
  • The file-tree listing omits profile_results_windows.json, but later the README describes profile_results_<platform>.json for darwin, linux, and windows and provides a curl loop that fetches windows too. Listing the Windows file here (as optional/may be missing upstream) keeps the documentation internally consistent.
  • Files reviewed: 4/4 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@borisbat
borisbat merged commit 5457c7b into master Sep 8, 2026
30 checks passed
@borisbat
borisbat deleted the bbatkin/site-zig-startup branch September 8, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants