By specifying:
option "--X=Y";
in the Scyther input file, command-line options can be directly integrated.
For example, one can specify:
option "--one-role-per-agent";
Given that sk/pk/k are now hardcoded, we can exploit their occurrences with this
new heuristic.
The heuristic can now scan for the lowest term depth at which either sk or k occur.
This will cause the heuristic to favor looking for sk, then sk(x), and only later
other terms. In a small test this was twice as fast. For protocols based on pk only
the performance loss should be negligible.
The old heuristic was 162, now it is 162+512 = 674.
In the near future, the default exit code behavior should be made obsolete anyway,
as the exit codes are not a nice way to report status.
It used to be convenient for shell scripting in early times,
when the parallel tests were run using the forward model
checker, but no modern script should be relying on it.
This switch was previously known as '--state-space', but the new name is
much better.
Backwards compatibility:
'-c' was previously used by '--check', so check is now abbreviated to
'-C'.
'-s,--state-space' still works but is from now on considered to be
deprecated.
The old version numbers were retrieved from SVN; of course this no longer works. Now no versions are retrieved on normal building. Instead, this is covered by the dist building script.
order in which Scyther searches for files is now.
1. From the prefix of the previously found file.
2. Current directory.
3. Anything in SPDLDIRS
Here, 1 is new.
- When using -E (--expert), scyther shows any files it reads on stderr.
implicitly, older goals are resolved first, if some goals have equal
weights. This is encoded in the "w <=" comparison; if this is set to
"w <", the heuristic becomes much less effective.
Preliminary results:
1. For typed matching, either heuristic 32 or 34 are best, and far
superior to the previous best (3).
2. For untyped matching, partial tests indicate that heuristic 1 is
best, which is rather interesting.