Closed maul-esel closed 1 year ago
I've started by grouping the concurrency-related settings into containers, and adding some labels.
I have not yet removed any obsolete settings. I'm pretty much happy with the concurrency settings as they are. I think @Heizmann had some settings on his list, related to trace checks IIRC. I suggest we discuss them next week and integrate those changes with this PR before we merge.
rendering of the container headings
Just for clarification: The UltimatePreferenceItemContainer
s are reflected in the list on the left. I suspect you mean the labels acting as dividers between blocks of settings in one page? Then I'd agree; perhaps we should to introduce another grouping mechanism (UltimatePreferenceItemGroup
or similar).
I suspect you mean the labels acting as dividers between blocks of settings in one page?
Yes, I mean the labels of the dividers between setting blocks. Your suggestion sounds great.
@bahnwaerter
@maul-esel
PreferenceType.Label
to separate groups? Did you not know or did you think them too ugly? But I agree, the newest iteration looks nice :) -tc "trunk/examples/toolchains/AutomizerC.xml" --help --experimental
? Right now, neither the containers nor the new groupings are represented there. --experimental
flag that shows options that are experimental. Right now, all options without a description are experimental. In the GUI, descriptions translate to tool tips, and labels are directly translated to CLI options. I realize that some of you either don't use the commandline enough, or don't know about the mechanisms behind our help system there. Option names like --traceabstraction.independence.relation.used.for.por.in.concurrent.analysis.#2 <arg>
are not nice (I need to remove the character #
as well). Anyways, having some kind of "Advanced user" toggle in the GUI as well as descriptions for all options and an additional "advanced" flag for all options might help users. But on the other hand, this might just be way too much work for to little benefit. I would recommend against that. After all, this is a scientific tool. Ah and, as long as this PR does not remove any settings, I approve 👍
PreferenceType.Label
before--experimental
, that currently means I am not allowed to document it. That's a bad incentive structure, no? Even if we don't immediately give a description to all options (a lot of effort, I agree), it might be good to separate these two things.UltimatePreferenceItemGroup
gives more semantic information than these divider labels. So, in addition to the nicer display in the UI, we have more possibilities in the future (just speculating: maybe --help independence.relation
to only show options in a group?)One more thing for future development: The settings and groups could be delivered dynamically via the Web-API, so that only a small whitelist configuration for the webserver is necessary. An explicit conversion of *.epf
files in a config.json
is then no longer necessary. The Web frontend can then decide which permitted settings it presents to the user.
@bahnwaerter : I don't understand how this should work. The settings are already delivered dynamically from the website to the backend. And the backend can run arbitrary toolchains, so we need to consider all settings for the whitelist. It would be desirable to extend the whitelist mechanism with option values or validators instead of just allowing the option.
@maul-esel I could add grouping to the CLI. Perhaps also introduce the experimental-flag and change PreferenceItems to a fluid API.
Last chance for comments; otherwise I'll merge tomorrow morning
As proposed by @Heizmann, this PR is meant to clean up the various settings for
TraceAbstraction
byThe idea is that everyone looks at the settings for which they feel responsible, and ideally we discuss the changes in person at some point. Feel free to commit proposed changes to this branch.