Skip to content

Conversation

@Narfinger
Copy link
Contributor

@Narfinger Narfinger commented May 30, 2025

This includes some small refactoring and some small breaking changes as
listed below. Other than these I tried to keep the functionality exactly
the same but because in the old code the parsing and settings of
preferences was intermingled it was difficult to figure out.

Small Breaking:

  • Size and resources-path were unused but appeared in the help.
  • soft-fail and hard-fail: Soft-fail flag got removed because it is too
    difficult to keep both. The default is now soft-fail and hard-fail can
    be enabled.
  • The help strings are obviously formatted differently now.
  • -V does not work anymore but -v and --version.

Ideally, we want to have the ServoShellPreferences and Preferences be directly the Argument structure but that needs a bit more discussion because it would break backwards compatibility with the commandline.

This increases the binary size by ~280kb.

Testing: The testcases are still working but they do not cover much.
I added a unit test for the -p flag because it is the most difficult to parse in general.
Fixes: This will fix a small number of various parsing misshaps. It will also show if we are removing an option via unused lint.

@Narfinger Narfinger force-pushed the using-bpaf branch 2 times, most recently from 92096de to e9e6f59 Compare May 30, 2025 10:54
Copy link
Member

@mrobinson mrobinson left a comment

Choose a reason for hiding this comment

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

Nice. A few initial comments, but I also need to give this a more thorough review. Thanks.

@mrobinson mrobinson changed the title Servoshell: Replace getopts with bpaf for parsing arguments. servoshell: Replace getopts with bpaf for argument parsing May 30, 2025
Copy link

@pacak pacak left a comment

Choose a reason for hiding this comment

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

Let me know if you have any problems with it :)

@Narfinger Narfinger force-pushed the using-bpaf branch 3 times, most recently from cae7d2c to 3f1ecde Compare June 2, 2025 11:10
@Narfinger Narfinger force-pushed the using-bpaf branch 6 times, most recently from 753850b to 5c4c0f1 Compare June 3, 2025 07:59
@Narfinger Narfinger marked this pull request as ready for review June 3, 2025 08:36
@Narfinger Narfinger requested review from atbrakhi and jschwe as code owners June 3, 2025 08:36
Copy link

@pacak pacak left a comment

Choose a reason for hiding this comment

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

Some more potential improvements for user experience:

Right now your "Usage" line contains all the things with full names - a few lines of text. You can remove less important bits with hide_usage [1] - items will still show up in the full help and will work as usual.

Right now everything goes into a single big product type which is a good start, but it might be useful to split that big structure into smaller sections like I'm doing in cargo-show-asm: [2]. Benefits to me as a developer is that it makes it easier to decide where to put a new option and decouples running and rendering parts - I know for sure that anything in cargo options shouldn't affect rendering. Benefits to me as a user is that in --help output I don't have to go though a wall of text and can figure out what section I want first and then look though that section.

  1. https://docs.rs/bpaf/latest/bpaf/trait.Parser.html#method.hide_usage

  2. https://github.com/pacak/cargo-show-asm/blob/master/src/opts.rs

Copy link
Member

@mrobinson mrobinson left a comment

Choose a reason for hiding this comment

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

Generally looks good, though I have a few requests:

@github-actions
Copy link

github-actions bot commented Sep 3, 2025

🔨 Triggering try run (#17432746321) for Linux (Unit Tests, Build libservo, WPT, Bencher), MacOS (Unit Tests, Build libservo), Windows (Unit Tests, Build libservo), Android, OpenHarmony, Lint

@jschwe
Copy link
Member

jschwe commented Sep 3, 2025

Hopefully fixed. Let's see if I forgot any other targets.

FYI, you can do a full try run in your fork with ./mach try [--remote remote_name]

@github-actions
Copy link

github-actions bot commented Sep 3, 2025

🐰 Bencher Report

Branch37194/PR
Testbedubuntu-22.04

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

🚨 1 Alert

BenchmarkMeasure
Units
ViewBenchmark Result
(Result Δ%)
Upper Boundary
(Limit %)
Speedometer/Scorescore
Measure (units)
📈 plot
🚷 threshold
🚨 alert (🔔)
5.08 units
(+13.45%)Baseline: 4.48 units
4.82 units
(105.50%)

Click to view all benchmark results
BenchmarkFile SizeBenchmark Result
megabytes (MB)
(Result Δ%)
Upper Boundary
megabytes (MB)
(Limit %)
Latencymilliseconds (ms)Throughputoperations / second (ops/s)scoreBenchmark Result
Measure (units)
(Result Δ%)
Lower Boundary
Measure (units)
(Limit %)
Upper Boundary
Measure (units)
(Limit %)
Dromaeo/dom📈 view plot
⚠️ NO THRESHOLD
647.13 ops/s
Dromaeo/dom-attr📈 view plot
⚠️ NO THRESHOLD
4,398.57 ops/s
Dromaeo/dom-attr/element_expando📈 view plot
⚠️ NO THRESHOLD
56,702.80 ops/s
Dromaeo/dom-attr/element_expando = value📈 view plot
⚠️ NO THRESHOLD
19,936.60 ops/s
Dromaeo/dom-attr/element_property📈 view plot
⚠️ NO THRESHOLD
17,240.00 ops/s
Dromaeo/dom-attr/element_property = value📈 view plot
⚠️ NO THRESHOLD
123.75 ops/s
Dromaeo/dom-attr/getAttribute📈 view plot
⚠️ NO THRESHOLD
34,391.40 ops/s
Dromaeo/dom-attr/setAttribute📈 view plot
⚠️ NO THRESHOLD
87.31 ops/s
Dromaeo/dom-modify📈 view plot
⚠️ NO THRESHOLD
85.20 ops/s
Dromaeo/dom-modify/appendChild📈 view plot
⚠️ NO THRESHOLD
44.36 ops/s
Dromaeo/dom-modify/cloneNode📈 view plot
⚠️ NO THRESHOLD
36.18 ops/s
Dromaeo/dom-modify/createElement📈 view plot
⚠️ NO THRESHOLD
435.81 ops/s
Dromaeo/dom-modify/createTextNode📈 view plot
⚠️ NO THRESHOLD
377.54 ops/s
Dromaeo/dom-modify/innerHTML📈 view plot
⚠️ NO THRESHOLD
12.32 ops/s
Dromaeo/dom-modify/insertBefore📈 view plot
⚠️ NO THRESHOLD
117.62 ops/s
Dromaeo/dom-query📈 view plot
⚠️ NO THRESHOLD
1,175.24 ops/s
Dromaeo/dom-query/getElementById📈 view plot
⚠️ NO THRESHOLD
504.50 ops/s
Dromaeo/dom-query/getElementById (not in document)📈 view plot
⚠️ NO THRESHOLD
626.27 ops/s
Dromaeo/dom-query/getElementsByName📈 view plot
⚠️ NO THRESHOLD
0.15 ops/s
Dromaeo/dom-query/getElementsByName (not in document)📈 view plot
⚠️ NO THRESHOLD
0.23 ops/s
Dromaeo/dom-query/getElementsByTagName (not in document)📈 view plot
⚠️ NO THRESHOLD
62,353.20 ops/s
Dromaeo/dom-query/getElementsByTagName(*)📈 view plot
⚠️ NO THRESHOLD
50,212.00 ops/s
Dromaeo/dom-query/getElementsByTagName(a)📈 view plot
⚠️ NO THRESHOLD
50,259.60 ops/s
Dromaeo/dom-query/getElementsByTagName(div)📈 view plot
⚠️ NO THRESHOLD
50,017.20 ops/s
Dromaeo/dom-query/getElementsByTagName(p)📈 view plot
⚠️ NO THRESHOLD
50,336.60 ops/s
Dromaeo/dom-traverse📈 view plot
⚠️ NO THRESHOLD
252.59 ops/s
Dromaeo/dom-traverse/childNodes📈 view plot
⚠️ NO THRESHOLD
169.49 ops/s
Dromaeo/dom-traverse/firstChild📈 view plot
⚠️ NO THRESHOLD
261.03 ops/s
Dromaeo/dom-traverse/lastChild📈 view plot
⚠️ NO THRESHOLD
112.24 ops/s
Dromaeo/dom-traverse/nextSibling📈 view plot
⚠️ NO THRESHOLD
455.04 ops/s
Dromaeo/dom-traverse/previousSibling📈 view plot
⚠️ NO THRESHOLD
455.04 ops/s
Speedometer/Charts-observable-plot📈 view plot
⚠️ NO THRESHOLD
157.57 ms
Speedometer/Charts-observable-plot/Dotted📈 view plot
⚠️ NO THRESHOLD
33.49 ms
Speedometer/Charts-observable-plot/Dotted/Async📈 view plot
⚠️ NO THRESHOLD
5.62 ms
Speedometer/Charts-observable-plot/Dotted/Sync📈 view plot
⚠️ NO THRESHOLD
27.86 ms
Speedometer/Charts-observable-plot/Stacked by 20📈 view plot
⚠️ NO THRESHOLD
65.52 ms
Speedometer/Charts-observable-plot/Stacked by 20/Async📈 view plot
⚠️ NO THRESHOLD
10.70 ms
Speedometer/Charts-observable-plot/Stacked by 20/Sync📈 view plot
⚠️ NO THRESHOLD
54.82 ms
Speedometer/Charts-observable-plot/Stacked by 6📈 view plot
⚠️ NO THRESHOLD
58.57 ms
Speedometer/Charts-observable-plot/Stacked by 6/Async📈 view plot
⚠️ NO THRESHOLD
4.86 ms
Speedometer/Charts-observable-plot/Stacked by 6/Sync📈 view plot
⚠️ NO THRESHOLD
53.72 ms
Speedometer/Geomean📈 view plot
⚠️ NO THRESHOLD
197.49 ms
Speedometer/Iteration-0-Total📈 view plot
⚠️ NO THRESHOLD
325.95 ms
Speedometer/Iteration-1-Total📈 view plot
⚠️ NO THRESHOLD
356.23 ms
Speedometer/Iteration-2-Total📈 view plot
⚠️ NO THRESHOLD
319.48 ms
Speedometer/Iteration-3-Total📈 view plot
⚠️ NO THRESHOLD
299.62 ms
Speedometer/Iteration-4-Total📈 view plot
⚠️ NO THRESHOLD
301.40 ms
Speedometer/Iteration-5-Total📈 view plot
⚠️ NO THRESHOLD
311.22 ms
Speedometer/Iteration-6-Total📈 view plot
⚠️ NO THRESHOLD
302.96 ms
Speedometer/Iteration-7-Total📈 view plot
⚠️ NO THRESHOLD
300.03 ms
Speedometer/Iteration-8-Total📈 view plot
⚠️ NO THRESHOLD
301.87 ms
Speedometer/Iteration-9-Total📈 view plot
⚠️ NO THRESHOLD
304.31 ms
Speedometer/Score📈 view plot
🚷 view threshold
🚨 view alert (🔔)
5.08 units
(+13.45%)Baseline: 4.48 units
4.14 units
(81.50%)
4.82 units
(105.50%)

Speedometer/TodoMVC-Angular📈 view plot
⚠️ NO THRESHOLD
157.56 ms
Speedometer/TodoMVC-Angular/Adding100Items📈 view plot
⚠️ NO THRESHOLD
91.18 ms
Speedometer/TodoMVC-Angular/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
8.45 ms
Speedometer/TodoMVC-Angular/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
82.73 ms
Speedometer/TodoMVC-Angular/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
36.24 ms
Speedometer/TodoMVC-Angular/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.99 ms
Speedometer/TodoMVC-Angular/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
28.25 ms
Speedometer/TodoMVC-Angular/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
30.14 ms
Speedometer/TodoMVC-Angular/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
2.36 ms
Speedometer/TodoMVC-Angular/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
27.78 ms
Speedometer/TodoMVC-JavaScript-ES5📈 view plot
⚠️ NO THRESHOLD
736.57 ms
Speedometer/TodoMVC-JavaScript-ES5/Adding100Items📈 view plot
⚠️ NO THRESHOLD
593.00 ms
Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
18.56 ms
Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
574.45 ms
Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
90.22 ms
Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
15.28 ms
Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
74.94 ms
Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
53.35 ms
Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
2.63 ms
Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
50.72 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack📈 view plot
⚠️ NO THRESHOLD
973.40 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items📈 view plot
⚠️ NO THRESHOLD
785.89 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
10.82 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
775.07 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
111.55 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
11.18 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
100.37 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
75.97 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
2.58 ms
Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
73.39 ms
Speedometer/TodoMVC-Preact📈 view plot
⚠️ NO THRESHOLD
69.04 ms
Speedometer/TodoMVC-Preact/Adding100Items📈 view plot
⚠️ NO THRESHOLD
35.89 ms
Speedometer/TodoMVC-Preact/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
30.92 ms
Speedometer/TodoMVC-Preact/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
4.97 ms
Speedometer/TodoMVC-Preact/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
24.60 ms
Speedometer/TodoMVC-Preact/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
18.06 ms
Speedometer/TodoMVC-Preact/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
6.54 ms
Speedometer/TodoMVC-Preact/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
8.56 ms
Speedometer/TodoMVC-Preact/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
5.91 ms
Speedometer/TodoMVC-Preact/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
2.64 ms
Speedometer/TodoMVC-React📈 view plot
⚠️ NO THRESHOLD
158.50 ms
Speedometer/TodoMVC-React-Redux📈 view plot
⚠️ NO THRESHOLD
178.11 ms
Speedometer/TodoMVC-React-Redux/Adding100Items📈 view plot
⚠️ NO THRESHOLD
80.53 ms
Speedometer/TodoMVC-React-Redux/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
9.24 ms
Speedometer/TodoMVC-React-Redux/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
71.29 ms
Speedometer/TodoMVC-React-Redux/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
62.46 ms
Speedometer/TodoMVC-React-Redux/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
9.50 ms
Speedometer/TodoMVC-React-Redux/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
52.96 ms
Speedometer/TodoMVC-React-Redux/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
35.12 ms
Speedometer/TodoMVC-React-Redux/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
2.60 ms
Speedometer/TodoMVC-React-Redux/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
32.52 ms
Speedometer/TodoMVC-React/Adding100Items📈 view plot
⚠️ NO THRESHOLD
78.77 ms
Speedometer/TodoMVC-React/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
10.64 ms
Speedometer/TodoMVC-React/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
68.12 ms
Speedometer/TodoMVC-React/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
50.04 ms
Speedometer/TodoMVC-React/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
8.72 ms
Speedometer/TodoMVC-React/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
41.32 ms
Speedometer/TodoMVC-React/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
29.70 ms
Speedometer/TodoMVC-React/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
2.50 ms
Speedometer/TodoMVC-React/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
27.19 ms
Speedometer/TodoMVC-Svelte📈 view plot
⚠️ NO THRESHOLD
67.69 ms
Speedometer/TodoMVC-Svelte/Adding100Items📈 view plot
⚠️ NO THRESHOLD
32.68 ms
Speedometer/TodoMVC-Svelte/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
25.02 ms
Speedometer/TodoMVC-Svelte/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
7.66 ms
Speedometer/TodoMVC-Svelte/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
24.97 ms
Speedometer/TodoMVC-Svelte/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
18.92 ms
Speedometer/TodoMVC-Svelte/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
6.04 ms
Speedometer/TodoMVC-Svelte/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
10.05 ms
Speedometer/TodoMVC-Svelte/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.01 ms
Speedometer/TodoMVC-Svelte/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
3.04 ms
linux-release📈 view plot
🚷 view threshold
193.18 MB
(-0.69%)Baseline: 194.51 MB
194.71 MB
(99.21%)
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link

github-actions bot commented Sep 3, 2025

🐰 Bencher Report

Branch37194/PR
TestbedHUAWEI Mate 60 Pro

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkDataMeasure (units) x 1e3Latencymilliseconds (ms)MemoryBytesscoreMeasure (units)
release/E2E/file:///parse_from_string.html/📈 view plot
⚠️ NO THRESHOLD
1.74 units x 1e3
release/E2E/https://www.google.com/JS/gc-heap/admin📈 view plot
⚠️ NO THRESHOLD
26,752.00
release/E2E/https://www.google.com/JS/gc-heap/decommitted📈 view plot
⚠️ NO THRESHOLD
409,600.00
release/E2E/https://www.google.com/JS/gc-heap/unused📈 view plot
⚠️ NO THRESHOLD
140,256.00
release/E2E/https://www.google.com/JS/gc-heap/used📈 view plot
⚠️ NO THRESHOLD
471,968.00
release/E2E/https://www.google.com/JS/malloc-heap📈 view plot
⚠️ NO THRESHOLD
5,051,251.00
release/E2E/https://www.google.com/JS/non-heap📈 view plot
⚠️ NO THRESHOLD
262,144.00
release/E2E/https://www.google.com/LayoutThread/box-tree📈 view plot
⚠️ NO THRESHOLD
107,659.00
release/E2E/https://www.google.com/LayoutThread/display-list📈 view plot
⚠️ NO THRESHOLD
0.00
release/E2E/https://www.google.com/LayoutThread/font-context📈 view plot
⚠️ NO THRESHOLD
8,632.00
release/E2E/https://www.google.com/LayoutThread/fragment-tree📈 view plot
⚠️ NO THRESHOLD
112.00
release/E2E/https://www.google.com/LayoutThread/stacking-context-tree📈 view plot
⚠️ NO THRESHOLD
14,272.00
release/E2E/https://www.google.com/LayoutThread/stylist📈 view plot
⚠️ NO THRESHOLD
5,104.00
release/E2E/https://www.google.com/Load📈 view plot
⚠️ NO THRESHOLD
686.22 ms
release/E2E/https://www.google.com/Resident📈 view plot
⚠️ NO THRESHOLD
180,427,161.00
release/E2E/https://www.google.com/image-cache📈 view plot
⚠️ NO THRESHOLD
35,760.00
release/E2E/https://www.google.com/resident-smaps📈 view plot
⚠️ NO THRESHOLD
183,337,779.00
release/E2E/https://www.servo.org/Load📈 view plot
⚠️ NO THRESHOLD
1,208.94 ms
release/E2E/https://www.servo.org/Resident📈 view plot
⚠️ NO THRESHOLD
260,559,667.00
release/E2E/https://www.servo.org/resident-smaps📈 view plot
⚠️ NO THRESHOLD
261,590,220.00
release/Speedometer/Charts-observable-plot📈 view plot
⚠️ NO THRESHOLD
766.83 ms
release/Speedometer/Charts-observable-plot/Dotted📈 view plot
⚠️ NO THRESHOLD
88.76 ms
release/Speedometer/Charts-observable-plot/Dotted/Async📈 view plot
⚠️ NO THRESHOLD
8.86 ms
release/Speedometer/Charts-observable-plot/Dotted/Sync📈 view plot
⚠️ NO THRESHOLD
79.91 ms
release/Speedometer/Charts-observable-plot/Stacked by 20📈 view plot
⚠️ NO THRESHOLD
375.47 ms
release/Speedometer/Charts-observable-plot/Stacked by 20/Async📈 view plot
⚠️ NO THRESHOLD
16.87 ms
release/Speedometer/Charts-observable-plot/Stacked by 20/Sync📈 view plot
⚠️ NO THRESHOLD
358.59 ms
release/Speedometer/Charts-observable-plot/Stacked by 6📈 view plot
⚠️ NO THRESHOLD
302.60 ms
release/Speedometer/Charts-observable-plot/Stacked by 6/Async📈 view plot
⚠️ NO THRESHOLD
9.33 ms
release/Speedometer/Charts-observable-plot/Stacked by 6/Sync📈 view plot
⚠️ NO THRESHOLD
293.26 ms
release/Speedometer/Geomean📈 view plot
⚠️ NO THRESHOLD
667.52 ms
release/Speedometer/Iteration-0-Total📈 view plot
⚠️ NO THRESHOLD
811.76 ms
release/Speedometer/Iteration-1-Total📈 view plot
⚠️ NO THRESHOLD
808.45 ms
release/Speedometer/Iteration-2-Total📈 view plot
⚠️ NO THRESHOLD
794.91 ms
release/Speedometer/Iteration-3-Total📈 view plot
⚠️ NO THRESHOLD
960.66 ms
release/Speedometer/Iteration-4-Total📈 view plot
⚠️ NO THRESHOLD
1,069.14 ms
release/Speedometer/Iteration-5-Total📈 view plot
⚠️ NO THRESHOLD
1,064.04 ms
release/Speedometer/Iteration-6-Total📈 view plot
⚠️ NO THRESHOLD
806.81 ms
release/Speedometer/Iteration-7-Total📈 view plot
⚠️ NO THRESHOLD
813.10 ms
release/Speedometer/Iteration-8-Total📈 view plot
⚠️ NO THRESHOLD
977.00 ms
release/Speedometer/Iteration-9-Total📈 view plot
⚠️ NO THRESHOLD
1,077.52 ms
release/Speedometer/Score📈 view plot
⚠️ NO THRESHOLD
1.52 units
release/Speedometer/TodoMVC-Angular📈 view plot
⚠️ NO THRESHOLD
977.04 ms
release/Speedometer/TodoMVC-Angular/Adding100Items📈 view plot
⚠️ NO THRESHOLD
464.78 ms
release/Speedometer/TodoMVC-Angular/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
31.51 ms
release/Speedometer/TodoMVC-Angular/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
433.27 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
316.68 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
35.66 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
281.02 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
195.58 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
6.93 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
188.65 ms
release/Speedometer/TodoMVC-JavaScript-ES5📈 view plot
⚠️ NO THRESHOLD
1,390.83 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items📈 view plot
⚠️ NO THRESHOLD
1,126.09 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
52.34 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
1,073.76 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
168.19 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
38.95 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
129.24 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
96.55 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
6.79 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
89.76 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack📈 view plot
⚠️ NO THRESHOLD
1,980.41 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items📈 view plot
⚠️ NO THRESHOLD
1,588.98 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
30.15 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
1,558.83 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
243.27 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
38.82 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
204.45 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
148.17 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.15 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
141.02 ms
release/Speedometer/TodoMVC-Preact📈 view plot
⚠️ NO THRESHOLD
155.08 ms
release/Speedometer/TodoMVC-Preact/Adding100Items📈 view plot
⚠️ NO THRESHOLD
76.87 ms
release/Speedometer/TodoMVC-Preact/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
69.77 ms
release/Speedometer/TodoMVC-Preact/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
7.10 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
62.40 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
50.40 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
12.00 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
15.81 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
9.58 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
6.23 ms
release/Speedometer/TodoMVC-React📈 view plot
⚠️ NO THRESHOLD
871.91 ms
release/Speedometer/TodoMVC-React-Redux📈 view plot
⚠️ NO THRESHOLD
1,070.63 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items📈 view plot
⚠️ NO THRESHOLD
344.17 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
34.57 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
309.60 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
475.99 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
37.64 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
438.35 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
250.47 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.62 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
242.85 ms
release/Speedometer/TodoMVC-React/Adding100Items📈 view plot
⚠️ NO THRESHOLD
300.91 ms
release/Speedometer/TodoMVC-React/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
36.90 ms
release/Speedometer/TodoMVC-React/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
264.02 ms
release/Speedometer/TodoMVC-React/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
366.42 ms
release/Speedometer/TodoMVC-React/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
39.75 ms
release/Speedometer/TodoMVC-React/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
326.66 ms
release/Speedometer/TodoMVC-React/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
204.58 ms
release/Speedometer/TodoMVC-React/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.50 ms
release/Speedometer/TodoMVC-React/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
197.08 ms
release/Speedometer/TodoMVC-Svelte📈 view plot
⚠️ NO THRESHOLD
133.98 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items📈 view plot
⚠️ NO THRESHOLD
71.72 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
55.14 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
16.58 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
47.16 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
38.43 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
8.73 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
15.09 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
10.51 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
4.58 ms
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link

github-actions bot commented Sep 3, 2025

⚠️ Try run (#17432746321) failed.

@pacak
Copy link

pacak commented Sep 3, 2025

Lots of errors from the cli parser it seems.

  └ Error: `-u` is not expected in this context

I don't see any obvious reasons for it to fail this way - it could be that -u was passed multiple times. Not sure what the inputs are...

@Narfinger
Copy link
Contributor Author

Yeah there are a couple of things that have slightly different parameters than expected. Going to figure them out and post when I get a successful mach try run.

@Narfinger Narfinger marked this pull request as draft September 3, 2025 14:57
@Narfinger Narfinger force-pushed the using-bpaf branch 3 times, most recently from c038ade to 677ead6 Compare September 4, 2025 11:26
@Narfinger
Copy link
Contributor Author

Ok finally we should be there. here is also a completed try run, to prove that I didn't forget anything this time :D https://github.com/Narfinger/servo/actions/runs/17458323904/job/49579707316

@Narfinger Narfinger marked this pull request as ready for review September 4, 2025 11:26
@jdm jdm added this pull request to the merge queue Sep 4, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 4, 2025
@jdm
Copy link
Member

jdm commented Sep 5, 2025

The PR that will never merge:

error[E0425]: cannot find value `log_to_file` in this scope
   --> ports/servoshell/prefs.rs:649:9
    |
649 |         log_to_file,
    |         ^^^^^^^^^^^ not found in this scope

@Narfinger
Copy link
Contributor Author

Clearly I just wanted to test if the merge queue works -.-
Let's try again.

This includes some small refactoring and some small breaking changes as
listed below. Other than these I tried to keep the functionality exactly
the same but because in the old code the parsing and settings of
preferences was intermingled it was difficult to figure out.

Small Breaking:
- Size and resources-path were unused but appeared in the help.
- soft-fail and hard-fail: Soft-fail flag got removed because it is too
  difficult to keep both. The default is now soft-fail and hard-fail can
be enabled.

Thanks to @pacak for all the help!

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
@jdm jdm enabled auto-merge September 5, 2025 07:59
@jdm jdm added this pull request to the merge queue Sep 5, 2025
Merged via the queue into servo:main with commit ed66e0b Sep 5, 2025
22 checks passed
@Narfinger Narfinger deleted the using-bpaf branch September 5, 2025 11:37
mukilan added a commit to servo/internal-wpt-dashboard that referenced this pull request Sep 8, 2025
Due to servo/servo#37194, the output format of `--version` has
changed. Update the regex used accordingly.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
mukilan added a commit to servo/internal-wpt-dashboard that referenced this pull request Sep 8, 2025
Due to servo/servo#37194, the output format of `--version` has
changed. Update the regex used accordingly.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.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.

5 participants