8000 Align distribution LTO and binary-size policy with shipped artifacts · Issue #796 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content

Align distribution LTO and binary-size policy with shipped artifacts #796

Closed

Description

@adityamukho

Follow-up to #772. The size gate builds --release (full LTO), but profile.dist overrides it with thin LTO. On v3 baseline 3d19abbce5dd8d5244641ff0d7ba8bad5424d07f, Rust 1.99.1 and the audit lock, the same CLI is:

  • release/full LTO: 1,263,592 bytes
  • dist/thin LTO: 1,502,888 bytes

Using the existing full-LTO settings for distribution is a measured 239,296-byte (15.9%) reduction opportunity. It does not create that much gate headroom: the gate already measures full LTO and has just 24 bytes free against its current 1,263,616-byte cap.

Deliver a focused profile/workflow change that makes the size policy's relationship to shipped artifacts explicit. Evaluate full LTO for dist across the release target matrix, measure build time and representative runtime on the bench, and verify cargo-dist packaging. If a target needs thin LTO, document and measure that choice rather than implying the release gate checks it.

Preserve API, format, MSRV, portability, size cap and coverage floors. Do not claim the historical 1,259,520-byte cap or another compiler's output is this baseline. Source-level reduction follow-ups remain necessary even if dist changes.

Audit runtime evidence: eight socket-swapped pairs on the idle bench, each process ingesting 2,000 facts then executing 400 checked counts, favored full LTO in all pairs (median elapsed time -9.09%). This bounded workload includes startup/ingestion/printing and does not replace the broader cross-platform gates above.

Activity

  1. added this to the v3.0.0 milestone on Oct 29, 2026
  2. added 2 commits that reference this issue on Oct 30, 2026
  3. adityamukho commented on Oct 30, 2026

    @adityamukho
    CollaboratorAuthor

    Done in #801 (merged on v3): dist keeps release's full LTO and binary-size.yml measures --profile dist. Measurements: docs/benchmarks/796-dist-lto.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestperformanceBenchmark performance regressions

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0