incremental psyclone
Todo: Needs definition. What are the things which, when changed, must trigger reprocessing of a file?
- Obviously the preprocessed x90 is one.
- There can be multiple "kernel root" folders too. Should we rebuild if anything in those changes, or can/should we parse and discover just the files?
- Anything else?
Something's been updated in LFRic since we pinned the version, too. I believe it now uses big X90s and little x90s to differentiate preprocessed source.
"...the basic rule is that PSyclone needs to be re-run if the algorithm (.x90) file, the kernels (included by the .x90) or the transformation script change."
"The transformation script is passed to PSyclone as an argument. That script is a python script..."
I believe the psyclone step now already supports incremental builds with prebuild hash calculations: https://github.com/MetOffice/fab/blob/03422d7e4ecfbe71bb7ccbe969631a95219f2d1f/source/fab/steps/psyclone.py#L348 The hash includes the x90 file hash, the kernel hashes, the transformation script hash, the command line argument hash and also the api hash. I have been using it in NGARCH project for some time and the reprocess triggering behavior seems correct up to now.
We need to confirm this and close the issue if incremental psyclone works as expected