Skip to content

Remove winnow from gix-actor public API#2546

Draft
Sebastian Thiel (Byron) wants to merge 2 commits intomainfrom
fix-2545
Draft

Remove winnow from gix-actor public API#2546
Sebastian Thiel (Byron) wants to merge 2 commits intomainfrom
fix-2545

Conversation

@Byron
Copy link
Copy Markdown
Member

@Byron Sebastian Thiel (Byron) commented Apr 26, 2026

It's too easy to not detect winnow updates as a breaking change, and then make patch releases that break existing builds.

Tasks

  • remove winnow from gix-actor (as breaking change) + refackiew
  • remove it everywhere else
  • re-release gix as v0.83 naturally.
  • yank v0.82 and gix-actor 0.40.1 to unbreak v0.81

Benches

It turns out that removing winnow leads to a simpler but faster parser implementation, and it's probably one that I can maintain as well.

Gnuplot not found, using plotters backend
CommitRef(sig)          time:   [586.25 ns 587.91 ns 589.57 ns]
                        change: [−0.3843% −0.0407% +0.2820%] (p = 0.81 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

CommitRefIter(sig)      time:   [659.49 ns 661.38 ns 663.30 ns]
                        change: [−2.7568% −1.7906% −0.9377%] (p = 0.00 < 0.05)
                        Change within noise threshold.

TagRef(sig)             time:   [87.066 ns 87.621 ns 88.194 ns]
                        change: [−9.8364% −9.3431% −8.8210%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  8 (8.00%) high mild
  1 (1.00%) high severe

TagRefIter(sig)         time:   [116.69 ns 117.66 ns 118.57 ns]
                        change: [−7.7757% −7.2615% −6.7593%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
  11 (11.00%) high mild

TreeRef()               time:   [60.310 ns 60.455 ns 60.601 ns]
                        change: [−0.9553% −0.5936% −0.2337%] (p = 0.00 < 0.05)
                        Change within noise threshold.

TreeRefIter()           time:   [27.065 ns 27.146 ns 27.238 ns]
                        change: [−8.5788% −7.2494% −6.0198%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

@Byron Sebastian Thiel (Byron) force-pushed the fix-2545 branch 2 times, most recently from 2aab086 to 193eade Compare April 26, 2026 03:25
Codex (codex) and others added 2 commits April 26, 2026 13:33
)

It's too easy to not detect `winnow` updates as a breaking change,
and then make patch releases that break existing builds.

Co-authored-by: Sebastian Thiel <sebastian.thiel@icloud.com>
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.

Beta version of cargo (as a library) is broken by gix

2 participants