Gnucash reports

Geert Janssens janssens-geert at telenet.be
Sat May 18 14:08:05 EDT 2013


Peter,

I have pulled your  branch in my local repository and tested from there. I haven't run all the 
new reports, but I did play with the net worth bar chart. When I run it over my complete data 
file, the time to generate the report drops from 25 seconds to 5. That's a pretty nice result !

I looked a bit deeper at your branch. There's not much I can say on the code itself. It looks 
ok and seems to do the job (will test some more right before it gets committed).

I would just suggest some cleanup of the commits themselves. IMO the first 6 commits can 
easily be squashed together. They all do the same thing, but for different reports.

And at some point you add a file called reports-2.scm, which gets installed in the standard-
reports directory. That seems to be an odd location for that file. I would rather expect it next 
to streamers.scm in guile-modules/gnucash/report/report-system/. But perhaps I'm 
completely misinterpreting this. Would it make sense to call the script collector.scm rather 
than the generic reports-2.scm ?

And lastly: you have readded the old reports. This is useful for comparison but we don't need 
the two versions in the final code. The users will only want to use your improved reports.

That's my feedback for now.

I'm looking forward to the final result !

Geert

On Saturday 18 May 2013 15:23:10 Peter Broadbery wrote:
> Hi Geert,
> 
> Thanks for taking a look at the code.  Status update: I'm not actively
> changing anything at the moment, the only thing not committed is a
> small optimisation to the way %done is calculated.
> 
> I'll try to split the major commits and whitespace changes (apologies,
> I blame emacs), and improve some of the commit messages; What else
> needs to be done prior to getting this merged?
> 
> The work so far updates the category reports (Expense/Assets/... over
> time) and the net worth barchart -- these were the two bits of code
> which really did badly on my data.  As you've probably seen, the major
> changes were:
> First, ensuring that transactions are only retrieved once and then
> processed - the original version was requesting data for each cell in
> the report.  The collector feature is probably the major piece here.
> Note that scheme isn't a language I've used much, so apologies if the
> style is a bit poor.. suggestions welcomed.
> Secondly, adding enough testing that I could be reasonably confident
> that the reports were identical to existing reports - basically unit
> tests and adding temporary menu options for the original reports.
> From memory, there are almost no unit tests for the scheme functions,
> but adding some to the build infrastructure was relatively painless.
> Testing reports is always painful, and I'm not sure that my current
> approach is the ideal - reports are generated into a string, then
> parsed and then tested vs. "known" values.
> 
> Current plans are - first, get the current changes into a state where
> they can be merged (providing that makes sense), and then look at more
> performance issues. If some other reports are slow, I may take a look
> at those too.
> 
> Peter
> 
> 
> 
> On Sat, May 18, 2013 at 11:32 AM, Geert Janssens
> 
> <janssens-geert at telenet.be> wrote:
> > On Saturday 30 March 2013 20:04:13 Peter Broadbery wrote:
> >> Hi,
> >> 
> >> 
> >> 
> >> I've been modifying the report code to remove the current rather bad
> >> 
> >> quadratic behaviour it sometimes displays. Current results take a 10
> >> 
> >> second multi-year balance report down below a second.
> >> 
> >> 
> >> 
> >> Would there be interest in getting this work into trunk? Obviously, it
> >> 
> >> needs further cleanup and testing, but I thought an early heads up to
> >> 
> >> the mailing list would be useful for getting comments.
> >> 
> >> 
> >> 
> >> There is a work in progress in
> >> 
> >> https://github.com/pbroadbery/gnucash/tree/topic/pab/blah-reports. It
> >> 
> >> adds new reports (prefixed with 'blah' for no good reason), so they
> >> 
> >> can be run side by side with the existing reports. It also adds
> >> 
> >> various simple tests that exercise both the standard reports and my
> >> 
> >> modified versions.
> >> 
> >> 
> >> 
> >> Regards,
> >> 
> >> 
> >> 
> >> Peter
> >> 
> >> _______________________________________________
> >> 
> >> gnucash-devel mailing list


More information about the gnucash-devel mailing list