sosy-lab/sv-benchmarks

How to proceed with the `.cfg` files?

MartinSpiessl opened this issue · 4 comments

Since we now use the new task definition format (2.0), we could just delete the .cfg files.
The only piece of information that they contain in addition to 32bit vs. 64bit is a short human-readable description of what the corresponding .set file is about.

The alternative would be to keep this textual description only, but then we could also inline this as a comment into the set files (if they allow it, which I hope they do).

So moving the textual description as comment into the .set files and then deleting the .cfg files seems like the best approach here, any other ideas/concerns?

Yes, .cfg files should go away.

check.py currently uses them, but the only relevant remaining check is that the architecture declared in the .cfg file matches the architecture in the folder-specific Makefile. This would need to be changed into a check that compares the architecture in the task-definitions with the architecture in the Makefiles. Even better would be to read the architecture from the task-definition files during compilation and remove the architecture from Makefiles, but I am not sure whether this is easy, it has been on the todo list for 4 years already (#194).

compare.py also reads the architecture from the .cfg file, it should read it from the task-definition files instead (which it actually already uses, so this should be easy).

BenchExec allows comments in set files (e.g., lines starting with #) and both check.py and compare.py also already ignore lines starting with #. So this is doable. In theory, other people could have written their own scripts to handle set files and did not implement comment handling, these scripts would then need to be changed. But I would find this acceptable.

Yes, the plan is to get rid of those files ASAP.

Thanks a lot for starting to work on this.

A dependency that was not mentioned is the definition of categories in competitions, like SV-COMP and Test-Comp.

I would take care of fixing those web sites (for the future competitions, the architecture should not be mentioned any more, and old competitions should use tags).

How about starting a PR that removes the .cfg files and then peu-a-peu fix check.py and compare.py?

@dbeyer I have implemented this and will push a PR after #1142 is merged. The only remaining question is whether we should remove the description without replacement or where it should be put now.

The only remaining question is whether we should remove the description without replacement or where it should be put now.

I would say either remove only the architecture field from the .cfg files and leave the description in them, or move the description to the .set files (as comment). I would slightly prefer the second, because then we have only one file per category to maintain.

Would you like to add this to #1143?