loki icon indicating copy to clipboard operation
loki copied to clipboard

Repository reorganisation

Open mlange05 opened this issue 11 months ago • 3 comments

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

mlange05 avatar Mar 19 '24 14:03 mlange05