[GNC-dev] [GNC] Fwd: Failed - import of QIF files from Quicken

Adrien Monteleone adrien.monteleone at lusfiber.net
Tue Feb 18 20:04:17 EST 2020

I seem to recall a development goal being to eliminate Scheme code except for reports.

This might be a good candidate for just re-writing this in C/C++ with proper tests and verbose error output and/or logging.

If someone with the skillset is interested of course.


> On Feb 18, 2020 w8d49, at 6:35 PM, James Peterson <lyle at austin.rr.com> wrote:
> Well, with no hint of what the problem is, even smaller
> test sets won't necessarily find anything, so it could be 
> a lot of work for no benefit.  For example, I could export
> each account separately (although there are about 80 of them
> so that's a lot of work), and each account could load 
> okay separately, because maybe the problem is an interaction 
> between two different accounts. So then I have to do 80*79
> possible pairs of accounts, and so on.
> My poking around in the 
> source code to try to find the problem suggests that the
> problem is in the Scheme part that seems to be working with
> all the accounts at the same time:
> ;; Build a local account tree to hold converted transactions.
> ;; Sort the account list on the depth of the account path.
> ;; Make all the accounts.
> ;; Run through the markable transactions marking any
>      ;; duplicates.  marked transactions/splits won't get imported.
>               ;; Convert into a GnuCash transaction.
>               ;; rebalance and commit everything
> So this looks like multiple runs thru the data, and even printing
> the line number won't narrow it down -- you have to know what
> step of the process we are doing, and where we are in the data
> at that point.
> As things stand, we don't even know what the immediate problem
> is -- a divide by zero?  Looking for an account that should exist,
> but doesn't?, an account type that it doesn't know about? 
> The code is not written to allow it to even explain what it is
> doing. If we are going to use this code base, someone who actually
> understands, and is comfortable with the code will need to add
> a "verbose input processing" level or something that will create
> a log file explaining what it is going to try to do, then do it,
> then explain what it got and how it interprets that. I've done 
> that with code before, but only C code, where, if need be, there is
> the equivalent of a printf to a log file between every major step,
> or each iteration of a loop, explaining what it thinks it is doing
> and with what input and with what result.  I just don't know how to
> add that to scheme.
> jim

More information about the gnucash-devel mailing list