loki
loki copied to clipboard
Repository reorganisation
As we are maturing the outward-facing components of Loki, we have been contemplating a slight repository reorganisation to better encapsulate the different layers of the API and organise the re-use within these. I'm filing this as an issue here to draw up a first draft of the overall shape and contours of the sub-packages that we would long-term envision. This is primarily meant for discussion and is open to input from all.
Moreover, I think @reuterbal had also suggested in offline discussions to potentially split up the test base and move the specific tests into the respective sub-packages, allowing us to tighten up the interfaces a little.
Here a first draft organisation that we should probably evolve over time:
-loki
- analyse
- backend | fgen, cgen, pygen, etc
- batch | scheduler and associated items, configs etc
- tests
- scheduler
- items
- config
- filter
-cli
- expression | The expression/symbol layer alongside it's pymbolic interfaces and visitors
- tests
- symbols | Only variables / literals?
- operations | I'd like to separate operations (inlinecall, subscript, sum, ...) from the symbols/literals
- symbolic
- expr_visitor
- frontend
- ir | I'd like to merge the middle-layer (IR plus IR-visitors); better name needed!
- tests
- nodes
- visitor
- transformer
- pragma_utils
- scope
- program_unit
- subroutine/module
- sourcefile
- transformations
- tests
- general
- inline_outline
- single_column
- transpile
- temporaries
- offload
Just a few general ideas, open for comments... @reuterbal @awnawab @MichaelSt98