If I understand it right, currently nim and koch keep parsing all dependencies every time I compile project's main file. Right? It gives me a real problem with diagnostic clutter:- I keep getting diagnostics of foreign modules - such as depreciation warnings, I think I should not be bothered, especially if these come from nimble
- Upon next compilation I keep getting warnings from files I haven't modified. Again very annoying coz I need to get trough many lines where there may be absolutely no problem with module file I modified.
So I think that since nim uses nimcache it should NOT output diagnostics:
- For files that were not modified since last build (unless we changed some compiler flags)
- Foreign modules, eg. files living out of the project root, shouldn't output anything but errors
- Hints about some nimble paths added to search path, unless I enable it to be verbose
Actually I would strongly advise to not output anything unless there is a problem (error or warning) with my code, or I explicitly enabled verbose output.
I think this is pretty important prior getting 1.0 out of the wild. Also I am pretty concerned about recompilation & development process of projects containing many files... because it already takes few seconds to re-run nimforum - so what about much bigger project?
Finally I would strongly advise to mimic diagnostic output (eg. file names:line no) way gcc/clang/existing compilers do. This is because it will make easier existing editors or IDEs to provide automatic links between build log entries and actually places in the files.
Opinions?