Issue1102

Title remove usage of deprecated --evaluator etc.
Priority bug Status chatting
Superseder Nosy List florian, jendrik, malte
Assigned To Keywords
Optional summary

Created on 2023-07-31.17:29:59 by malte, last changed by malte.

Messages
msg11587 (view) Author: malte Date: 2024-02-09.17:52:51
BTW, from your comment perhaps we're also unclear about what this issue is about? The goal of this issue is not to to stop supporting the old syntax but to stop using it ourselves internally.

That is something I am still much in favour of. I understand the concern for end users, but I think it is really better if we ourselves use the syntax that matches what goes on under the hood.
msg11586 (view) Author: malte Date: 2024-02-09.17:49:42
Good for a meeting, yes.

First comment for now: I see what you mean. I think it makes little sense to allow assignment for evaluators and landmark factories, but nothing else. So the syntax as it currently stands is not something I'd like to keep indefinitely.

But at a glance I see nothing wrong with something which is like our current syntax but without the words "--evaluator" etc., as in:

h1=ff()
h2=lmcount()
eager_greedy([h1,h2])

or whatever, with support for all plugin types, not just evaluators and landmark factories.

I also don't think it's that much more difficult to write this as

let(h1,ff(),
let(h2,lmcount(),
eager_greedy([h1,h2])
))

but I guess it looks foreign without exposure to functional programming.
msg11585 (view) Author: jendrik Date: 2024-02-09.17:06:00
Couldn't we just keep the --evaluator and --landmarks syntax indefinitely? I much prefer it over the let statements, especially if there are multiple predefinitions which leads to deeply nested brackets. This could be a topic for a Fast Downward meeting, I guess.
msg11245 (view) Author: malte Date: 2023-07-31.17:29:59
We currently still use the deprecated syntax --heuristic and --evaluator in some places, including ones that end up on the documentation. These should be removed in favour of the let syntax, especially if we want to remove support for the old syntax eventually. These are the hits (outside of experiments) in the current codebase for --heuristic, --evaluator and --landmarks:

--evaluator:

./misc/tests/configs.py
./driver/portfolio_runner.py
./driver/arguments.py
./src/search/search_algorithms/plugin_eager_greedy.cc
./src/search/search_algorithms/iterated_search.cc
./src/search/search_algorithms/plugin_lazy_greedy.cc
./src/search/search_algorithms/plugin_astar.cc
./src/search/search_algorithms/plugin_lazy_wastar.cc
./src/search/command_line.cc
./src/search/plugins/doc_printer.cc

--heuristic:

./driver/portfolio_runner.py
./src/search/search_algorithms/plugin_eager_greedy.cc
./src/search/search_algorithms/plugin_lazy_greedy.cc
./src/search/search_algorithms/plugin_lazy_wastar.cc
./src/search/command_line.cc
./src/search/plugins/doc_printer.cc

--landmarks:

./src/search/command_line.cc
./src/search/plugins/doc_printer.cc

Note that some of the uses of --heuristic and --evaluator and perhaps all of the usages of --landmarks are OK (= to provide the implementation of the legacy option support). We didn't filter this list.
History
Date User Action Args
2024-02-09 17:52:51maltesetmessages: + msg11587
2024-02-09 17:49:42maltesetmessages: + msg11586
2024-02-09 17:06:00jendriksetmessages: + msg11585
2023-07-31 17:29:59maltecreate