User profiles #2142
Replies: 3 comments 17 replies
-
@tesnimab, @bugarela, @shonfeder, @thpani, @Kukovec, @rodrigo7491, what are your thoughts on that? |
Beta Was this translation helpful? Give feedback.
-
Not a big fan of user profiles, I think we can do without. More detailed thoughts on individual points:
These two are general feedback on the output we generate.
I don't see how we would address this with user profiles?
I think we should do this either way?
Why? Especially experts will want to understand bottlenecks in checking their spec.
The preferred way to do this would be via the server mode and chai?
We already have
Not sure if this is well-motivated. If an invariant is violated, the user also learns something, yet we don't check invariants by default.
I think the passes before BMC are stable enough to do this in any case (modulo type-checking for user feedback).
I don't think beginner users care much about these files. The relevant output should be on the console. If beginners have to go searching for files, there's something wrong with what we're printing to stdout. |
Beta Was this translation helpful? Give feedback.
-
I'm more or less with Thomas on this, the need for a "beginner" profile just signals sensible defaults, whereas "experts" know how to configure individual flags. We already have "profiles" as user-customizable sets of flags (not as something we predefine): |
Beta Was this translation helpful? Give feedback.
-
In the recent months, we were oscillating between turning off and on by default some of the command line parameters. Here are some of the related issues that showed up:
--save-runs
#2047: disabling--save-runs
(now called--output-traces
) by default as it may affect performance.--no-deadlock
should be disabled by default, as it may produce unclear output and may affect performance.It is more or less clear that we have a conflict between the beginner's settings and expert settings. As @bugarela suggested, we probably should introduce user profiles, to choose between different combinations of default parameters.
I would like to open a discussion on this. In my opinion, it would be great to have at least two profiles. Most likely, we will need an additional profile for external tools later.
Expert profile
The main goal is to do exactly what the user is asking for, and no more than that.
--output-traces
is disabled--no-deadlock
is enableddetailed.log
(as they are now).The tools that call Apalache probably fall into this category too.
Beginner profile
Maximize whatever can be computed by the tool in a single run. Assuming that the user is discovering how the tool can help them.
--output-traces
is enabled. If the tool reports no error, the user may at least inspect the example trace and check their intuition about the spec. Obviously, no beginner would know that--output-traces
even exists.--no-deadlock
is disabled. If we manage to find a deadlock, the user will learn something new. Although deadlock detection is incomplete (see [BUG] Deadlock detection may report false negatives #711), it may still be useful.PASS 13: Bounded checker
, which are important for learning where Apalache is searching and how. Importantly, timestamps are shown, so the user may learn about bottlenecks in their specs../results
. So a beginner user does not have to struggle with weird-looking directory names.Beta Was this translation helpful? Give feedback.
All reactions