Skip to content

Drop eframe's unused links feature: cut 32 s from the cold build - #175

Merged
Blogbotana merged 1 commit into
masterfrom
chore/eframe-links-cold-build
Oct 22, 2026
Merged

Blogbotana merged 1 commit into
masterfrom
chore/eframe-links-cold-build

Conversation

@axisrow

@axisrow axisrow commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

What this changes

beamcraft-ui never opens a hyperlink: no OpenUrl command and no hyperlink widget is
used anywhere in the crate, so eframe's links feature only pulled the unused
webbrowser → url → idna → ICU dependency graph into every build (284 Cargo.lock
lines, ~25 crates compiled per cold build on every platform).

Dropping the feature shrinks the dependency graph with no behavior change:

  • Cold build on the reference Apple M5 (tools/build-timings.sh --target aarch64-apple-darwin, registry prefetched, wrappers off): 75 s → 43 s
    (elapsed_seconds: 43, metadata and cargo-timing.html retained) — well inside the
    Apibim-com/BeamCraft#153 gate of
    at most two minutes.

Roadmap entry

  • 2026-10-22: dropped eframe's links feature; the cold aarch64-apple-darwin build on
    the reference Apple M5 went from 75 s to 43 s.

How you verified it

  • No OpenUrl, webbrowser, or hyperlink use in apps/beamcraft-ui/src
  • Cargo.lock diff is removal-only (−284 lines: webbrowser, url, idna, the icu/zerovec/yoke graph)
  • cargo fmt --all -- --check
  • cargo clippy -p beamcraft-ui -- -D warnings
  • Release build; the window opens and renders on the Apple M5 (Metal, 4× MSAA) with the
    links-free eframe 0.37
  • Cold-build timing before/after on the same machine, toolchain and protocol (75 s → 43 s)

Never-crash

  • No Rust code changed (one dependency feature removed, lock regenerated)

Provenance (clean-room)

  • Dependency-graph removal only; no vendored code, no assets

🤖 Generated with Claude Code

Issue tracking

Fixes #369

beamcraft-ui never opens a hyperlink, so eframe's "links" feature only pulled
the unused webbrowser/URL/ICU graph (284 lock lines) into every build. On the
reference Apple M5 the cold aarch64-apple-darwin build goes from 75 s to 43 s.

Co-Authored-By: Claude Code <[email protected]>
@axisrow
axisrow requested a review from Blogbotana as a code owner October 22, 2026 03:51
@axisrow

axisrow commented Oct 22, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

@axisrow axisrow left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Ревью PR #175 — одобряю

Один коммит против base 9291a96: из eframe 0.37 убрана неиспользуемая фича links и её транзитивный граф (webbrowser, url, ICU — минус 284 строки в Cargo.lock, только удаления).

Проверил: Hyperlink, OpenUrl и webbrowser не используются нигде в apps и crates — фича действительно мёртвый вес в каждой сборке; комментарий в Cargo.toml объясняет, почему фича выкинута. Консистентность лока под страховкой CI с --locked. Это согласуется с работой по холодной сборке (#153): меньше транзитивных крейсов — быстрее холодный билд и меньше поверхность аудита зависимостей.

@Blogbotana Blogbotana left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Agree

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.

PR #175: Drop eframe's unused links feature: cut 32 s from the cold build

2 participants