Bug 130 out of memory too many errors
The master branch will run out of heap in the event of too many errors or warnings being emitted. This fault occurs because the existing logic accumulates the errors in memory until the end of execution.
This modified version deprecates the validate methods that collect the errors and introduces new methods that instead allow use of a callback method, in the case of the cli application this emits them straight to stdout and in the case of the gui it places them in the textarea but maintains a cap of 2000 rows worth of errors or warnings to be displayed.
Note that this is not a particularly elegant solution, it doesn't capture effects and it uses variables inside some of the methods that would be unsafe were we to use this multi-threaded. I believe the preferred solution longer-term would be to use fs2 to stream the rows as demonstrated in the fs2-end-to-end branch, but as that branch is a major restructure of the code I think this change makes sense to address the bug in the short-term.