Skip to content

Split storm-dft.h into analysis, io and transformation - #1034

Open
volkm wants to merge 5 commits into
stormchecker:masterfrom
volkm:dft-includes
Open

Split storm-dft.h into analysis, io and transformation#1034
volkm wants to merge 5 commits into
stormchecker:masterfrom
volkm:dft-includes

Conversation

@volkm

@volkm volkm commented Aug 23, 2026

Copy link
Copy Markdown
Contributor
  • Split storm-dft.h into analysis.h, io.h and transformation.h
  • Added forward declarations in DFT parsers
  • cleaned up includes in DFT tests

@@ -1,26 +1,46 @@
#include "storm-dft/api/storm-dft.h"
#include "analysis.h"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wrong naming scheme? Or is this the new naming scheme?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest, I thought this was the new naming scheme. But I am not sure whether we agreed on it.

* @param dft DFT.
* @return Pair of GSPN and id of failed place corresponding to the top level element.
*/
template<typename ValueType>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The transform to GSPN/JANI feel a bit like the odd-ones-out. They are more like conversion compare do the other questions?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(and they drag in a lot of headers)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could split it into translation and transformation. Maybe call it gspn_translation to avoid confusion.

#include "storm-dft/utility/RelevantEvents.h"
#include "storm-parsers/api/properties.h"
#include "storm/api/properties.h"
#include "storm/storage/jani/Property.h"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a bit ugly that you need to invoke three proper-related headers :-)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but this is a separate issue in my view. In particular the inclusion of jani/Property is very ugly because it is only forward declared otherwise.

@sjunges

sjunges commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

LGTM! Should also help compile times?!

@sjunges

sjunges commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

I briefly looked into the storm-dft/storage/Dft.h. There were some headers like layoutinfo that may be removed via forward refs and there are a few implementations in the header that may be able to go to the cpp (and then there may be more headers to move out of that?) I looked at it as it is basically the main header that the dft-tests import via io.

@volkm

volkm commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

I did not measure the compile times so far but it should be better encapsulated now.
I did not check all header includes for now, but mainly api and the tests. I will make another path through the whole library at some later point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants