Hi Peter,
thanks for the feedback!
Just pulled your latest revision with the compilation.py script and wanted to try out running it:
[snip]
but it didn’t seem to work! I saw you are collecting the complete output of the compiler and are then filtering it, so there would be a delay before anything gets printed but I see not compiler processes running and when I interrupt the script I get this backtrace:
[snip]
Any idea what I’m doing wrong?
Yes, the filtered output is printed “as one piece” after the compilation is done (everything is filtered), not continuously. I’ve added this to the script description.
The problem is that the compilation log itself has (with enabled extra-warnings) about 4.5 MB, so it takes ~30s just to filter the warnings. However, I’ve moved some of the most frequent warnings to the beginning of the warning list and I’ve managed to reduce the filtering time to ~5s. I’ll later elaborate on the script performance and the warning list.
So, now it should be more faster, but as you don’t see the compilation progress (it’s stored only internally), it may seem that nothing is happenning, but it does. I jhpe that this was the problem - if it still doesn’t work, please write me and I’ll check it again for other possible issues.
Btw I’m actually using this script only for compilations during development - it works fine (but I’m still testing it). Try (./scripts/compilation/compilation.py -c 'make -f Makefile.calitko-wrapper.tester' && ./tester 2> /dev/null) | uniq when you’re up to compile some new code you’ve just written.
Also, shouldn’t .*./Utils/CalitkoMocks.* actually be .*Utils/CalitkoMocks.* ?
Fixed.
I guess the problem you are referring to is when we ignore a warning that produces a trace of ‘instantiation’ warnings, right? Isn’t that doable by defining multi-line match patterns? You current implementation allows matching of a fixed number of lines. We would need something like:
[snip]
What do you think of that? It should be easily implementable. If you encounter a line containing only a “*”, you would try to match the current input line with the next regexp in the list - if it matches, you’re done, otherwise you get the next line from the input.
Thanks for the idea - I’ll try to fix this later.
Regards,
Petr
