Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Passing unknown debug option (-Z) should cause error #7142

Closed
frewsxcv opened this issue Aug 10, 2015 · 5 comments
Closed

Passing unknown debug option (-Z) should cause error #7142

frewsxcv opened this issue Aug 10, 2015 · 5 comments
Labels
A-platform/utils C-assigned There is someone working on resolving the issue E-less-complex Straightforward. Recommended for a new contributor. I-refactor No impact; the issue is one of maintainability or tidiness. Proposed solution requires refactoring.

Comments

@frewsxcv
Copy link
Contributor

How rustc behaves:

> rustc -Z helloworld
error: unknown debugging option: `helloworld`

How servo behaves:

./mach run -d -Z helloworld /tmp/hi.html
<no error here, window appears>

Relevant file: components/util/opts.rs

@jdm jdm added E-less-complex Straightforward. Recommended for a new contributor. A-platform/utils labels Aug 10, 2015
@jdm
Copy link
Member

jdm commented Aug 10, 2015

I suspect the best way to deal with this is to create a DebugOptions struct with boolean members for each option, create a function which takes the string of debug options (https://github.com/servo/servo/blob/master/components/util/opts.rs#L325) and returns Result<DebugOptions, String>, and reports any Err value returned as an unrecognized option.

@jdm jdm added the I-refactor No impact; the issue is one of maintainability or tidiness. Proposed solution requires refactoring. label Aug 10, 2015
@g-k
Copy link
Contributor

g-k commented Aug 11, 2015

dibs?

@jdm
Copy link
Member

jdm commented Aug 11, 2015

It's yours!

@jdm jdm added the C-assigned There is someone working on resolving the issue label Aug 11, 2015
g-k added a commit to g-k/servo that referenced this issue Aug 12, 2015
g-k added a commit to g-k/servo that referenced this issue Aug 12, 2015
g-k added a commit to g-k/servo that referenced this issue Aug 13, 2015
g-k added a commit to g-k/servo that referenced this issue Aug 13, 2015
bors-servo pushed a commit that referenced this issue Aug 14, 2015
Fail on unrecognized debug option

Refs: #7142

Ran some basic functional tests:

```
 $ ./mach run -d -Z bubble-widths,disable-canvas-aa,trace-layout tests/ref/blur_ref.html
 $ ./mach run -d -Z help
Usage: /Users/greg/servo/target/debug/servo debug option,[options,...]
	where options include

Options:
	bubble-widths                       Bubble intrinsic widths separately like other engines.
	disable-text-aa                     Disable antialiasing of rendered text.
	disable-canvas-aa                   Disable antialiasing on the HTML canvas element.
	dump-flow-tree                      Print the flow tree after each layout.
	dump-display-list                   Print the display list after each layout.
	dump-display-list-json              Print the display list in JSON form.
	dump-display-list-optimized         Print optimized display list (at paint time).
	relayout-event                      Print notifications when there is a relayout.
	profile-tasks                       Instrument each task, writing the output to a file.
	show-compositor-borders             Paint borders along layer and tile boundaries.
	show-fragment-borders               Paint borders along fragment boundaries.
	show-parallel-paint                 Overlay tiles with colors showing which thread painted them.
	show-parallel-layout                Mark which thread laid each flow out with colors.
	paint-flashing                      Overlay repainted areas with a random color.
	trace-layout                        Write layout trace to an external file for debugging.
	validate-display-list-geometry      Display an error when display list geometry escapes overflow region.
	disable-share-style-cache           Disable the style sharing cache.
	parallel-display-list-building      Build display lists in parallel.
	replace-surrogates                  Replace unpaires surrogates in DOM strings with U+FFFD. See #6564
	gc-profile                          Log GC passes and their durations.

$ ./mach run -d -Z blah
error: unrecognized debug option: blah
Servo exited with return value 1
```

Didn't check that setting debug flags actually did anything.
Haven't written much Rust so this feels more verbose than necessary.
Added `disable-canvas-aa` to debug options help.

Should DebugOptions struct derive Clone like Opts does?

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7165)
<!-- Reviewable:end -->
@wafflespeanut
Copy link
Contributor

#7165 closes this.

@frewsxcv
Copy link
Contributor Author

Yep. Thanks @g-k! ✨

jrmuizel pushed a commit to jrmuizel/gecko-cinnabar that referenced this issue Jun 12, 2017
…ctor-debug-options); r=ms2ger

Refs: servo/servo#7142

Ran some basic functional tests:

```
 $ ./mach run -d -Z bubble-widths,disable-canvas-aa,trace-layout tests/ref/blur_ref.html
 $ ./mach run -d -Z help
Usage: /Users/greg/servo/target/debug/servo debug option,[options,...]
	where options include

Options:
	bubble-widths                       Bubble intrinsic widths separately like other engines.
	disable-text-aa                     Disable antialiasing of rendered text.
	disable-canvas-aa                   Disable antialiasing on the HTML canvas element.
	dump-flow-tree                      Print the flow tree after each layout.
	dump-display-list                   Print the display list after each layout.
	dump-display-list-json              Print the display list in JSON form.
	dump-display-list-optimized         Print optimized display list (at paint time).
	relayout-event                      Print notifications when there is a relayout.
	profile-tasks                       Instrument each task, writing the output to a file.
	show-compositor-borders             Paint borders along layer and tile boundaries.
	show-fragment-borders               Paint borders along fragment boundaries.
	show-parallel-paint                 Overlay tiles with colors showing which thread painted them.
	show-parallel-layout                Mark which thread laid each flow out with colors.
	paint-flashing                      Overlay repainted areas with a random color.
	trace-layout                        Write layout trace to an external file for debugging.
	validate-display-list-geometry      Display an error when display list geometry escapes overflow region.
	disable-share-style-cache           Disable the style sharing cache.
	parallel-display-list-building      Build display lists in parallel.
	replace-surrogates                  Replace unpaires surrogates in DOM strings with U+FFFD. See servo/servo#6564
	gc-profile                          Log GC passes and their durations.

$ ./mach run -d -Z blah
error: unrecognized debug option: blah
Servo exited with return value 1
```

Didn't check that setting debug flags actually did anything.
Haven't written much Rust so this feels more verbose than necessary.
Added `disable-canvas-aa` to debug options help.

Should DebugOptions struct derive Clone like Opts does?

Source-Repo: https://github.com/servo/servo
Source-Revision: f5e97ef1b54b7f85d9c5a55712e802dd70a89f8e
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this issue Sep 30, 2019
…ctor-debug-options); r=ms2ger

Refs: servo/servo#7142

Ran some basic functional tests:

```
 $ ./mach run -d -Z bubble-widths,disable-canvas-aa,trace-layout tests/ref/blur_ref.html
 $ ./mach run -d -Z help
Usage: /Users/greg/servo/target/debug/servo debug option,[options,...]
	where options include

Options:
	bubble-widths                       Bubble intrinsic widths separately like other engines.
	disable-text-aa                     Disable antialiasing of rendered text.
	disable-canvas-aa                   Disable antialiasing on the HTML canvas element.
	dump-flow-tree                      Print the flow tree after each layout.
	dump-display-list                   Print the display list after each layout.
	dump-display-list-json              Print the display list in JSON form.
	dump-display-list-optimized         Print optimized display list (at paint time).
	relayout-event                      Print notifications when there is a relayout.
	profile-tasks                       Instrument each task, writing the output to a file.
	show-compositor-borders             Paint borders along layer and tile boundaries.
	show-fragment-borders               Paint borders along fragment boundaries.
	show-parallel-paint                 Overlay tiles with colors showing which thread painted them.
	show-parallel-layout                Mark which thread laid each flow out with colors.
	paint-flashing                      Overlay repainted areas with a random color.
	trace-layout                        Write layout trace to an external file for debugging.
	validate-display-list-geometry      Display an error when display list geometry escapes overflow region.
	disable-share-style-cache           Disable the style sharing cache.
	parallel-display-list-building      Build display lists in parallel.
	replace-surrogates                  Replace unpaires surrogates in DOM strings with U+FFFD. See servo/servo#6564
	gc-profile                          Log GC passes and their durations.

$ ./mach run -d -Z blah
error: unrecognized debug option: blah
Servo exited with return value 1
```

Didn't check that setting debug flags actually did anything.
Haven't written much Rust so this feels more verbose than necessary.
Added `disable-canvas-aa` to debug options help.

Should DebugOptions struct derive Clone like Opts does?

Source-Repo: https://github.com/servo/servo
Source-Revision: f5e97ef1b54b7f85d9c5a55712e802dd70a89f8e

UltraBlame original commit: 303fdd818d2c935023e269881fc349dd0a25bc29
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this issue Oct 1, 2019
…ctor-debug-options); r=ms2ger

Refs: servo/servo#7142

Ran some basic functional tests:

```
 $ ./mach run -d -Z bubble-widths,disable-canvas-aa,trace-layout tests/ref/blur_ref.html
 $ ./mach run -d -Z help
Usage: /Users/greg/servo/target/debug/servo debug option,[options,...]
	where options include

Options:
	bubble-widths                       Bubble intrinsic widths separately like other engines.
	disable-text-aa                     Disable antialiasing of rendered text.
	disable-canvas-aa                   Disable antialiasing on the HTML canvas element.
	dump-flow-tree                      Print the flow tree after each layout.
	dump-display-list                   Print the display list after each layout.
	dump-display-list-json              Print the display list in JSON form.
	dump-display-list-optimized         Print optimized display list (at paint time).
	relayout-event                      Print notifications when there is a relayout.
	profile-tasks                       Instrument each task, writing the output to a file.
	show-compositor-borders             Paint borders along layer and tile boundaries.
	show-fragment-borders               Paint borders along fragment boundaries.
	show-parallel-paint                 Overlay tiles with colors showing which thread painted them.
	show-parallel-layout                Mark which thread laid each flow out with colors.
	paint-flashing                      Overlay repainted areas with a random color.
	trace-layout                        Write layout trace to an external file for debugging.
	validate-display-list-geometry      Display an error when display list geometry escapes overflow region.
	disable-share-style-cache           Disable the style sharing cache.
	parallel-display-list-building      Build display lists in parallel.
	replace-surrogates                  Replace unpaires surrogates in DOM strings with U+FFFD. See servo/servo#6564
	gc-profile                          Log GC passes and their durations.

$ ./mach run -d -Z blah
error: unrecognized debug option: blah
Servo exited with return value 1
```

Didn't check that setting debug flags actually did anything.
Haven't written much Rust so this feels more verbose than necessary.
Added `disable-canvas-aa` to debug options help.

Should DebugOptions struct derive Clone like Opts does?

Source-Repo: https://github.com/servo/servo
Source-Revision: f5e97ef1b54b7f85d9c5a55712e802dd70a89f8e

UltraBlame original commit: 303fdd818d2c935023e269881fc349dd0a25bc29
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this issue Oct 1, 2019
…ctor-debug-options); r=ms2ger

Refs: servo/servo#7142

Ran some basic functional tests:

```
 $ ./mach run -d -Z bubble-widths,disable-canvas-aa,trace-layout tests/ref/blur_ref.html
 $ ./mach run -d -Z help
Usage: /Users/greg/servo/target/debug/servo debug option,[options,...]
	where options include

Options:
	bubble-widths                       Bubble intrinsic widths separately like other engines.
	disable-text-aa                     Disable antialiasing of rendered text.
	disable-canvas-aa                   Disable antialiasing on the HTML canvas element.
	dump-flow-tree                      Print the flow tree after each layout.
	dump-display-list                   Print the display list after each layout.
	dump-display-list-json              Print the display list in JSON form.
	dump-display-list-optimized         Print optimized display list (at paint time).
	relayout-event                      Print notifications when there is a relayout.
	profile-tasks                       Instrument each task, writing the output to a file.
	show-compositor-borders             Paint borders along layer and tile boundaries.
	show-fragment-borders               Paint borders along fragment boundaries.
	show-parallel-paint                 Overlay tiles with colors showing which thread painted them.
	show-parallel-layout                Mark which thread laid each flow out with colors.
	paint-flashing                      Overlay repainted areas with a random color.
	trace-layout                        Write layout trace to an external file for debugging.
	validate-display-list-geometry      Display an error when display list geometry escapes overflow region.
	disable-share-style-cache           Disable the style sharing cache.
	parallel-display-list-building      Build display lists in parallel.
	replace-surrogates                  Replace unpaires surrogates in DOM strings with U+FFFD. See servo/servo#6564
	gc-profile                          Log GC passes and their durations.

$ ./mach run -d -Z blah
error: unrecognized debug option: blah
Servo exited with return value 1
```

Didn't check that setting debug flags actually did anything.
Haven't written much Rust so this feels more verbose than necessary.
Added `disable-canvas-aa` to debug options help.

Should DebugOptions struct derive Clone like Opts does?

Source-Repo: https://github.com/servo/servo
Source-Revision: f5e97ef1b54b7f85d9c5a55712e802dd70a89f8e

UltraBlame original commit: 303fdd818d2c935023e269881fc349dd0a25bc29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-platform/utils C-assigned There is someone working on resolving the issue E-less-complex Straightforward. Recommended for a new contributor. I-refactor No impact; the issue is one of maintainability or tidiness. Proposed solution requires refactoring.
Projects
None yet
Development

No branches or pull requests

4 participants