2021-01-29 GnuCash IRC logs

00:02:32 *** MatrixTravelerbot[m] has joined #gnucash
00:32:35 *** fell has quit IRC
00:33:54 *** fell has joined #gnucash
00:33:54 *** ChanServ sets mode: +o fell
00:34:25 *** storyjesse has joined #gnucash
00:59:15 *** Mechtilde has joined #gnucash
01:04:29 *** Mechtilde has quit IRC
01:07:34 *** frakturfreak has quit IRC
01:11:17 *** Mechtilde has joined #gnucash
01:17:18 *** jervin has joined #gnucash
01:22:01 *** frakturfreak has joined #gnucash
01:22:01 *** ChanServ sets mode: +v frakturfreak
01:31:54 *** sbluhm has joined #gnucash
01:31:54 *** ChanServ sets mode: +v sbluhm
01:45:29 *** Mechtilde has quit IRC
01:57:56 *** fell has quit IRC
01:59:15 *** fell has joined #gnucash
01:59:15 *** ChanServ sets mode: +o fell
02:17:31 *** storyjesse has quit IRC
02:34:43 *** FH_thecat has joined #gnucash
02:53:03 *** gjanssens has joined #gnucash
02:53:03 *** ChanServ sets mode: +o gjanssens
02:53:12 <gjanssens> .
03:03:33 *** Hamaryns has joined #gnucash
03:03:33 *** ChanServ sets mode: +v Hamaryns
03:31:48 *** Mechtilde has joined #gnucash
03:36:17 *** warlord has quit IRC
03:37:13 *** warlord has joined #gnucash
03:38:43 *** jralls_laptop has joined #gnucash
03:41:43 *** jralls_laptop has quit IRC
03:51:01 *** jcarl43 has quit IRC
04:14:03 *** gncbot has joined #gnucash
04:14:22 *** warlord has joined #gnucash
04:29:56 *** Aussie_matt has quit IRC
04:30:59 *** Hamaryns has quit IRC
04:52:05 *** truelehr has joined #gnucash
04:58:32 *** mikee has quit IRC
04:59:51 *** mikee has joined #gnucash
04:59:51 *** ChanServ sets mode: +o mikee
05:08:54 *** fabior has joined #gnucash
05:25:05 *** truelehr has quit IRC
05:34:42 *** fabior has quit IRC
05:39:22 *** jralls_laptop has joined #gnucash
05:39:52 *** field^Mop has joined #gnucash
05:41:32 *** User_ has joined #gnucash
05:42:22 *** jralls_laptop has quit IRC
05:46:00 *** fabior has joined #gnucash
05:51:48 *** FH_thecat has quit IRC
05:59:19 *** fabior has quit IRC
06:14:36 *** fabior has joined #gnucash
06:23:39 *** sbluhm has quit IRC
06:29:09 *** User_ has quit IRC
06:34:39 *** FH_thecat has joined #gnucash
06:42:39 *** sbluhm has joined #gnucash
06:42:39 *** ChanServ sets mode: +v sbluhm
06:52:31 *** fabior has quit IRC
07:03:39 *** sbluhm has quit IRC
07:22:05 *** chris has joined #gnucash
07:22:06 *** ChanServ sets mode: +v chris
07:22:53 *** field^Mop has quit IRC
07:25:14 *** chris has quit IRC
07:28:19 *** chris has joined #gnucash
07:28:19 *** ChanServ sets mode: +v chris
07:40:08 *** jralls_laptop has joined #gnucash
07:43:08 *** jralls_laptop has quit IRC
07:48:14 *** sbluhm has joined #gnucash
07:48:14 *** ChanServ sets mode: +v sbluhm
07:52:54 *** ekleog has quit IRC
07:53:06 *** ekleog has joined #gnucash
08:07:44 *** sbluhm has quit IRC
08:21:17 *** Jimraehl1 has joined #gnucash
08:32:28 *** sbluhm has joined #gnucash
08:32:28 *** ChanServ sets mode: +v sbluhm
08:39:19 <warlord> .
08:43:19 *** mydogsnameisrudy has joined #gnucash
08:44:39 *** mydogsnameisrudy has quit IRC
09:11:27 *** FH_thecat has quit IRC
09:24:15 *** twanny has joined #gnucash
09:24:57 *** sbluhm has quit IRC
09:28:07 <twanny> filtering is not very good in GnuCash
09:34:16 <twanny> I found it in View!
09:34:28 <warlord> twanny, what do you mean?
09:34:34 <warlord> define "not very good"
09:35:20 <twanny> I wanted to filter an account for the transactions of 2020 and I couldn't find from where. But now I found out how.
09:35:33 <warlord> ok.
09:35:37 <warlord> Yeah, View ->
09:36:31 <twanny> warlord: is it possible to 'bulk' change the Transfer account?
09:37:10 <twanny> say change the mobile phone bills transactions to 'mobile phone' account?
09:37:37 <twanny> I did an import of the current account
09:37:39 *** sbluhm has joined #gnucash
09:37:39 *** ChanServ sets mode: +v sbluhm
09:41:49 <warlord> twanny, you can move all transactions from one account to another by deleting the account -- gnucash will ask where you want to move the transactions and you can supply a new one.
09:42:02 <warlord> So, for example, you can move all transactions from Expenses:Mobile to Expenses:Mobile Phone
09:42:26 <warlord> Other than that, no, gnucash does not have a way to manipulate multiple transactions at once.
09:44:24 *** sbluhm has quit IRC
09:47:26 *** fabior has joined #gnucash
09:55:59 *** fabior has quit IRC
10:15:59 <chris> warlord: can you anticipate any issues with a negatve taxtableentry ?
10:16:44 <warlord> chris, I just don't know if GnuCash supports it.
10:18:51 <chris> "support"? the existing infra and reports seem to be ok
10:21:57 <chris> jralls: there's some recent commits by Mike Gran for guile-3 on mingw \o/
10:23:32 *** twanny796 has joined #gnucash
10:25:18 <twanny796> warlord: do you think I can change the 'Transfer' from the database?
10:26:04 *** fabior has joined #gnucash
10:26:18 <warlord> chris, well, if one can enter a negative rate, and gnucash computes it, then I don't see a problem
10:26:26 *** twanny has quit IRC
10:26:33 <warlord> twanny796, no, that is not supported.
10:28:09 <chris> twanny796: easiest is: (1) filter to show your offending txns only (2) amend Transfer account using Register UI, Ctrl-A, Ctrl-C to copy whole account name (3) press ENTER (4) TAB TAB TAB (5) ^V (6) goto 4
10:28:24 <chris> (5) ^V ENTER
10:33:05 *** fabior has quit IRC
10:33:15 <twanny796> k
10:33:20 <twanny796> ok
10:45:44 *** fabior has joined #gnucash
10:46:57 *** o01eg has quit IRC
10:49:27 *** David has quit IRC
10:49:33 *** David has joined #gnucash
11:02:56 *** fabior has quit IRC
11:07:53 *** jervin has joined #gnucash
11:10:02 *** guak has joined #gnucash
11:10:39 *** Mechtilde has quit IRC
11:11:55 *** fabior has joined #gnucash
11:12:15 *** jervin has quit IRC
11:13:23 *** Mechtilde has joined #gnucash
11:17:08 *** jcarl43 has joined #gnucash
11:17:08 *** ChanServ sets mode: +v jcarl43
11:18:01 *** jervin has joined #gnucash
11:21:04 *** Mechtilde has quit IRC
11:22:02 <fell> Jrall, please look also in the german mailing list before rejecting wiki user accounts. 4L3X had announced there a few minutes before, he would collect material.
11:22:42 *** fabior has quit IRC
11:32:07 *** fabior has joined #gnucash
11:34:14 *** fabior has quit IRC
11:41:37 *** jralls_laptop has joined #gnucash
11:44:37 *** jralls_laptop has quit IRC
11:52:10 *** Agfarmer18 has joined #gnucash
12:03:52 *** field^Mop has joined #gnucash
12:05:47 *** Agfarmer19 has joined #gnucash
12:07:10 *** Agfarmer18 has quit IRC
12:07:11 *** Agfarmer19 is now known as Agfarmer18
12:11:05 *** Agfarmer19 has joined #gnucash
12:13:10 *** Agfarmer18 has quit IRC
12:13:10 *** Agfarmer19 is now known as Agfarmer18
12:15:44 *** chris has quit IRC
12:15:52 *** field^Mop has quit IRC
12:25:53 *** jralls_laptop has joined #gnucash
12:28:53 *** jralls_laptop has quit IRC
12:41:47 *** twanny has joined #gnucash
12:44:10 <twanny> Hello, I imported the Current and Savings accounts in GnuCash. There are transfer transactions from current to savings. How can these be balanced automatically?
12:44:48 <warlord> How are you importing? QIF? OFX? During the import you need to specify the other account, and then mark the second as a duplicate.
12:45:20 <twanny> I imported with csv. The transactions were all yellow
12:45:58 <warlord> Are you assigning proper destination accounts during the import?
12:46:06 <warlord> For the duplicate, you will need to mark it as dup.
12:46:28 <twanny> yes, the destination is ok.
12:48:04 <warlord> Okay, so first you import the transactions for account A, and one of them is a transfer to B. So you finish that import...
12:48:27 <warlord> ... and then you import the transactions for account B, and one of them is the transfer from account A. THAT one you need to mark as a duplicate.
12:48:52 <twanny> where? when I am making the import?
12:50:17 <twanny> Can this be done automatically, after both accounts were imported. Like fixing the accounts?
12:52:47 *** David has quit IRC
12:52:53 *** David has joined #gnucash
12:55:54 <warlord> You should mark it during the import.
12:56:00 <warlord> After the import, you just need to delete one.
12:56:29 <twanny> warlord: ok
12:57:57 <twanny> warlord: can duplicate transactions be removed by GnuCash?
12:59:42 *** sbluhm has joined #gnucash
12:59:42 *** ChanServ sets mode: +v sbluhm
13:01:43 <warlord> twanny, you can delete any transaction. In the register just click the delete button.
13:13:57 *** sbluhm has quit IRC
13:37:49 *** Mechtilde has joined #gnucash
13:47:07 *** ArtGravity has joined #gnucash
13:47:07 *** ChanServ sets mode: +v ArtGravity
13:57:20 *** sbluhm has joined #gnucash
13:57:20 *** ChanServ sets mode: +v sbluhm
13:58:35 *** twanny has quit IRC
14:19:36 *** jralls_laptop has joined #gnucash
14:27:33 <jralls> chris, I guess you mean http://git.savannah.gnu.org/cgit/guile.git/log/?h=mingw-guile-3.0. I guess that's a feature branch to help guile-3.0 compile on MinGW. I guess I should wait for it to get merged and released before I try to get guile-3 going on our build.
14:27:54 *** adder has joined #gnucash
14:27:57 <jralls> fell, I
14:28:48 <jralls> fell, I'm not going to read gnucash-de. It would be futile. Please tell users there to follow the instructions and explain why they want an account on the account request form.
14:29:42 <jralls> fell, and if they don't, *you* should reject them as well no matter what they post on a mailing list.
14:31:21 <fell> If I do not know an user, I look for the address in the active maiing lists.
14:33:11 <jralls> Wrong answer. If they leave blank what they want to edit you should reject them. If they ask why on the mailing list tell them to fill in the form correctly.
14:33:22 <fell> But I should review the german wiki instructions, to make it more clear.
14:33:39 <jralls> Indeed.
14:35:19 <fell> And please consider on gnucash-de we have many users from eastern Europe, which had to learn Russian at school.
14:35:21 <adder> Can anyone help me with an issue I'm having? In the new book I'm setting up, main accounts don't seem to display the total of my subaccounts, whereas in last year's books it seemed to do so by default. See screenshot for comparison: https://ibb.co/4SwxTNP
14:35:46 <fell> instead od Engish
14:36:09 <jralls> fell, what has that got to do with anything?
14:36:52 <fell> When you try to register, all text is in english only, IIRC.
14:37:38 <jralls> There's no form in German? Can you make one?
14:38:15 <fell> Good question.
14:44:09 *** Capt_Ahab has joined #gnucash
14:44:14 <Capt_Ahab> Hello
14:45:55 <fell> warlord, you saw mediawiki's news like 2020-12-17:MediaWiki 1.31.11 and 1.35.1 security releases are now available. …
14:46:26 <fell> Ahoi, Capt_Ahab!
14:46:54 <Capt_Ahab> Does anyone know if Gnucash will work with the recent change that USAA made to OFX Direct Connect. It seems currently, only Quicken was able to make changes to the program to get it to work.
14:47:05 <Capt_Ahab> Ahoi fell! :-D
14:47:29 <jralls> Capt_Ahab, seems not. There's a discussion on gnucash-user.
14:47:47 <Capt_Ahab> Is that another irc channel?
14:47:58 <fell> https://lists.gnucash.org/pipermail/gnucash-devel/2021-January/045665.html
14:47:59 <jralls> No, it's the user mailing list.
14:48:30 <Capt_Ahab> Ahh okay cool...Yeah I have been on the phone with USAA for a few hours today. They don't have a clue about how their website works.
14:49:28 <fell> and the https://lists.gnucash.org/pipermail/gnucash-user/2021-January/094988.html thread.
14:50:08 <jralls> If you capture the OFX it's returning a "Server error" web page with a big copyright notice in the header for Hoefler & Co.
14:50:15 <Capt_Ahab> It doesn't seem promising that they seem faily mute about it.
14:50:17 <Capt_Ahab> Yeah
14:50:25 <Capt_Ahab> That's what I see from the ofx output
14:50:51 <Capt_Ahab> That copyright notice, I believe, is for the font that they are using on the page.
14:51:34 <jralls> That makes sense given their URL: typography.com.
14:52:03 <Capt_Ahab> I told USAA I was going to pull all my accounts because of the huge inconvenience and they simply told me we're sorry to see you go...LOL
14:53:28 <frakturfreak> twanny796 and warlord In regards to savings and checking account duplicates, the proper way is not to delete any transaction but letting them run through something like Assets:Funds in transfer
14:53:48 <Capt_Ahab> I told them that they should create an option to generate a PIN and Password for OFX connections and they told me that they would forward my suggestion to some complaint box.
14:56:11 <warlord> frakturfreak, that doesn't make sense. If I transfer directly from my Checking to my Saving, there is no intermediary. It should be direct Debit Savings, Credit Checking in one transaction.
14:56:54 <frakturfreak> warlord: And then you have the hassle of deleting the other transactions
14:57:01 <frakturfreak> It’s just a technical helper account
14:58:14 <warlord> fell, no, I did not... But code is running old s/w so not easy to update without a systemwide upgrade.
14:58:39 <fell> Example: I go now to the ATM and get the money, but in the accout it will appear tomorrow or Monday.
14:59:54 <fell> There I use a Liability:transfer account.
15:01:20 <fell> The other is a transfer from bank A (today) arrives bank B on Monday. There I use an Asset:Money in transfer.
15:02:34 <warlord> frakturfreak, I'd rather delete the duplicate than lose the fact that my transfer went from checking -> saving
15:03:05 <frakturfreak> I only use the asset account though, cause it’ll be balanced to Zero anyway and the liability only in case want it prober on the balance sheet
15:03:29 <frakturfreak> warlord: Then text it accordingly or don’t your bank give good enough descriptions when importing?
15:04:20 <warlord> frakturfreak, I never import, so the point is completely moot for me.
15:04:43 <frakturfreak> Then still the text it properly bit still applys
15:05:08 <warlord> I still think a direct transfer does not need a suspense account..
15:08:04 <frakturfreak> Also you have to actively think about not entering this transaction
15:08:56 <warlord> No you don't. You import your Checking transactions and it includes the transfer to Savings. Then you import your Savings transactions and should notice that there is already a transaction from checking. so mark it as a dup.
15:09:36 <warlord> It shouldn't take much thought at all -- provided you properly terminate your transactions during the import instead of leaving them for Imbalance and moving them later.
15:11:58 <frakturfreak> I thought you didn’t import the transactions?
15:13:14 <frakturfreak> Also you have to the delete these transactions every time when importing just apply the appropriate suspence account one time and let the matcher handle it in the future
15:14:43 <warlord> I dont. I'm suggesting how one should do it. And yes, you SHOULD mark them duplicate every time, because that's what's going on. The suspense account adds an extra layer that loses the connection from source to destination. As you say, the only way to connect it is via description. It makes a mess.
15:15:06 <frakturfreak> No
15:15:15 <frakturfreak> It’s no mess
15:17:48 <frakturfreak> I can’t vouch for other programms but the one we use at work you can’t simply delete transactions from Bank accounts without getting prompted at least a warning or raising an error when the balance is checked in the background against the imported data
15:18:22 <warlord> A) in gnucash you can delete transactions from the registers..
15:18:40 <warlord> B) during import, if you mark is as a duplicate, it never shows up so you don't have to delete it!
15:19:19 <frakturfreak> You can but it’s still not the proper way
15:19:29 <warlord> It is ABSOLUTELY the proper way
15:19:35 <warlord> suspense accounts are dumb
15:19:44 <frakturfreak> Nope
15:19:47 <warlord> They are the cheap way out, and almost never the right answer
15:20:00 <frakturfreak> They’re the way it is handled in the real world
15:20:33 <warlord> Let me state this again: If I make a transfer from my savings to my checking, the money goes directly from savings to checking. There is no magic suspense account that it goes through.
15:21:20 <frakturfreak> Let me state this again: Noone doing accounting cares! They’ll use the suspense account. End of story.
15:22:20 <warlord> I will agree to completely disagree with your bogus ideas. But for now, I must focus on a work call.
15:22:33 <warlord> Have a good rest of your day
15:22:37 <frakturfreak> Maybe it’s done this way in the states but ask any accountant here in Germany and they’ll tell you my solutions
15:22:41 <warlord> And stop telling people bogus answers.
15:22:48 <frakturfreak> It’s not bogus
15:22:58 <frakturfreak> It’s the proper way of doing it
15:23:16 <warlord> Suspense accounts were barely even mentioned in the accounting books I read 2 decades ago.
15:23:29 <warlord> So "proper".... I don't agree
15:23:34 <warlord> I agree that people use them
15:23:37 <frakturfreak> It’s not the text booking solution
15:23:42 <frakturfreak> but the one used it practice
15:23:43 <warlord> And I also agree there are times when they DO make sense.
15:23:50 <warlord> But it's not the way to handle direct transfers
15:24:10 <frakturfreak> It’s the most practical solution
15:24:17 <warlord> It's more work!
15:24:23 <frakturfreak> it isn’t
15:24:26 <warlord> Anyways, I need to get ready for this call.
15:24:39 <frakturfreak> Ok bye
15:24:45 <warlord> Thank you for reminding me why I shouldn't argue with my 6yo son.
15:24:56 <warlord> Their logic is "no it isn't"
15:25:01 <warlord> Bye
15:25:08 <frakturfreak> And yours is it is
15:25:13 <frakturfreak> same logic
15:26:31 <warlord> I've been doing this for over 22 years; I think I know what I'm doing. I've been giving you many reasons why direct transfers are the right answer (except when they're not).
15:26:35 <warlord> Whatever.
15:26:46 <warlord> Please stop giving users bogus answers.
15:26:48 <fell> jralls, the windows build failed in libofx-0.10.1
15:27:07 *** ChanServ sets mode: +qo warlord warlord
15:27:31 <jralls> fell, darn.
15:28:31 <fell> C:/gcdev64/gnucash/maint/src/libofx-0.10.1/ofxdump/cmdline.h:32:37: error: 'PACKAGE' undeclared (first use in this function)
15:29:42 <jralls> Also VERSION.
15:30:13 <warlord> sounds like cmake/configure isn't passing the data in correctly?
15:30:57 <fell> Before are other strange messages like checking for library containing strerror... cat: confdefs.h: No such file or directory
15:31:13 *** Mechtilde has quit IRC
15:32:45 <fell> configure.ac:81: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated...
15:33:02 <fell> configure: WARNING: unrecognized options: --disable-Werror
15:33:08 <warlord> And there we go -- configure script didn't get built properly?
15:35:21 <fell> Did we change AC/AM recently?
15:37:15 <warlord> a different question: why are we rebuilding the configure script?
15:38:06 <fell> we got a new libofx version
15:38:32 <warlord> yes, I know.. but why are we rebuilding the libofx configure script?
15:38:46 <warlord> if we're not, then we should talk to them upstream.
15:40:01 <fell> AFAIK, it builds fine in other OSes.
15:41:28 <jralls> It does. It also built fine on my VM yesterday.
15:41:39 <warlord> I don't know what version of autotools we have on the win32 builder.
15:41:48 <warlord> why does it rebuild configure?
15:42:18 *** mydogsnameisrudy has joined #gnucash
15:42:57 <jralls> Because I told it to in gnucash.modules. autoconf is 2.69, hasn't been maintained in years. automake is 1.16.2, released last year some time.
15:43:04 *** sbluhm has quit IRC
15:43:15 <jralls> At least on my VM. I'll look at ovirt now.
15:43:35 *** mydogsnameisrudy has quit IRC
15:44:27 *** sbluhm has joined #gnucash
15:51:37 *** adder has quit IRC
15:52:12 *** adder has joined #gnucash
15:54:49 <jralls> Huh. Just ran `jhbuild -f jhbuildrc buildone libofx` and it did fine. I started a maint build, we'll see how that goes.
16:00:12 <warlord> how odd. I wonder why it failed before?
16:00:46 *** jw4 has quit IRC
16:01:27 *** adder_ has joined #gnucash
16:02:01 *** jw4 has joined #gnucash
16:02:01 *** ChanServ sets mode: +v jw4
16:02:32 *** adder has quit IRC
16:05:02 *** David has quit IRC
16:05:08 *** David has joined #gnucash
16:09:39 <jralls> I suppose something went awry with configure, but I didn't find anything in config.log, not even the missing confdefs.h errors.
16:10:31 <warlord> weird.
16:12:05 <jralls> Meanwhile the gnucash build failed in txf.scm, no code for module (gnucash locale us txf txf-help).
16:12:19 <warlord> race condition?
16:12:36 <warlord> or typo?
16:18:53 <jralls> Well, txf-help.go is where it belongs but MAKE_LINKS seems to have failed to copy txf-help.scm so it might be a race condition.
16:20:29 <jralls> `ninja` in the build dir built txf.go, confirming the race condition.
16:21:58 <jralls> But MAKE_LINKS is supposed to take care of that by making the scm available while compiling files in a cmake module.
16:27:03 <adder_> In the new book I'm setting up, main accounts don't seem to display the total of my subaccounts, whereas in last year's books it seemed to do so by default. What gives? See screenshot for comparison: https://ibb.co/4SwxTNP
16:28:40 <jralls> adder_, sorry, I kept getting distracted from replying. That's really weird, but I can't think of why that would happen.
16:29:22 <warlord> Maybe a preference?
16:30:29 <jralls> We have a preference to not roll up sub-account values?
16:32:08 <warlord> Do we? I don't see one.
16:33:12 <jralls> I don't think so. Another weirdness is that a 0 balance would normally display as C$0.00 and on the screenshot it's just C$.
16:33:48 <jralls> adder_, The screen shots are of two books in the same version of GnuCash, right?
16:34:41 <warlord> I wonder if it's a currency issue?
16:35:04 <warlord> If the placeholder account has a different currency than the sub-accounts, it might not roll-up?
16:35:34 <warlord> I realize it all says C$
16:35:49 <jralls> That *will* happen if there's no price, but in this case all but one of the subaccounts are in CAD, as is the placeholder.
16:37:39 <warlord> Hmm. What happens if you add a USD->CAD price in the PriceDB. Does that help?
16:41:24 <jralls> adder_ ^^^^
16:42:22 <warlord> Another question, adder_ -- is there anything that stands out in your TraceFile?
16:49:43 <adder_> >>> warlord> Hmm. What happens if you add a USD->CAD price in the PriceDB. Does that help? | Yup, that was it, thank you! In my last book I guess it just used the rate implicit in previous cross-currency transactions I did.
16:50:05 <adder_> But I don't have any of those yet
16:50:40 <warlord> Glad to have helped figure that one out.
16:50:53 <warlord> GnuCash's multi-currency work still has a few odd corner cases (like this one).
16:57:50 <jralls> CDB-Man_ adder's problem raises an interesting point re our long-running discussion about foreign currency. Should Equity accounts ever be denominated in other than the home currency, or should opening foreign-currency/commodity balances be countered in a home-currency Equity account at the average cost from the previous year's book? Or at some other average price?
16:58:55 *** truelehr has joined #gnucash
17:09:13 *** chris has joined #gnucash
17:09:14 *** ChanServ sets mode: +v chris
17:09:22 <chris> .
17:09:58 <jralls> chris, I guess you mean http://git.savannah.gnu.org/cgit/guile.git/log/?h=mingw-guile-3.0. I guess that's a feature branch to help guile-3.0 compile on MinGW. I guess I should wait for it to get merged and released before I try to get guile-3 going on our build.
17:10:18 <jralls> Lots of guesses. :-/
17:11:11 <chris> recent commit in guile-3.0: https://git.savannah.gnu.org/cgit/guile.git/commit/?id=d3f7a1d0
17:11:24 <chris> i'll notify you when i hear they've succeeded
17:13:27 <chris> in very few words, why is std::vector& >> GList and GHashTable?
17:14:14 *** truelehr has quit IRC
17:14:27 *** truelehr has joined #gnucash
17:16:40 <jralls> The short answer is cache locality: The CPU loads memory from RAM into its on-chip cache in 128-byte or so chunks, and maintains an address pointer to where it left off. std::vector guarantees that its contents are contiguous in memory so the CPU can page through it, one cache row worth at a time, in only a couple of clock cycles per cache row.
17:17:55 <jralls> Linked lists, on the other hand, make no such guarantee. GList is obviously a linked list, but GHashTable (as well as most of the other C++ standard library containers) is also implemented as a linked list.
17:18:09 <chris> ok. it's still a vector; how does it get quick append()?
17:18:26 <chris> (cf guile vector are fixed size)
17:18:28 *** truelehr has quit IRC
17:18:37 <chris> (cf guile vector are fixed num-elements)
17:20:10 <jralls> std::vector will reallocate a larger data section and copy if it runs out of space, so an append that requires an allocation will be slow. If you can estimate how big to make the vector up front you can speed it up.
17:20:57 <chris> ah ok -- it's still fixed size. the cache locality is nice.
17:21:09 <jralls> And of course inserts require copying the data that comes after the insert over one spot to make space so they're slower than a push_back.
17:21:55 * chris did the same for vector-append thus: https://github.com/Gnucash/gnucash/blob/maint/gnucash/report/html-chart.scm#L296
17:22:30 <jralls> It's not fixed size in the sense that a C array is because it knows how to grow.
17:23:48 <chris> it'll be a good thing to move all glists to std::vector& then
17:24:13 *** gjanssens has quit IRC
17:24:22 <chris> even better to move all g_strcmp0 to C++'s string= I guess
17:24:48 <jralls> No, those actually work exactly the same. There's not much you can do about strings.
17:25:18 <chris> :(
17:26:37 <jralls> But GnuCash uses strings a lot of places it should use enums or guile symbols, and those require char-by-char comparisons instead of hardware int compares.
17:27:29 <jralls> That is the strings require char-by-char comparisons.
17:28:13 <jralls> GLib actually has a facility called quarks that hash strings for integer comparison, but GnuCash doesn't make much use of them.
17:28:44 <jralls> https://developer.gnome.org/glib/stable/glib-Quarks.html
17:29:26 *** sbluhm has quit IRC
17:29:29 <chris> ah (string-hash str) => unique number
17:29:51 <jralls> Yup.
17:29:58 <chris> but can find the original string back
17:30:44 <chris> it's rather disconcerting to find my main datafile takes 10-15s to load
17:30:45 <jralls> Right. Either a two-way hash or a lookup table. I've never looked at the source.
17:31:01 <jralls> That's all? Mine takes about a minute.
17:31:13 <jralls> BRB
17:31:15 <chris> Shocking...
17:38:34 *** Pegasus_RPG has quit IRC
17:45:24 <fell> Vincent Lucarelli has taged F::Q v1.50-rc.1
18:02:32 *** adder_ has quit IRC
18:20:39 *** adder_ has joined #gnucash
18:27:33 *** Aussie_matt has joined #gnucash
18:30:40 <chris> uhh. CI ubuntu-20 failed.
18:31:18 <chris> something about "msodbcsql.... ERROR: The EULA was not accepted. Installation aborted"
18:47:25 <jralls> But we don't use Microsoft ODBC. Probably a github-actions problem with the container.
18:49:23 *** field^Mop has joined #gnucash
19:09:22 <chris> gtg
19:09:26 *** chris has quit IRC
19:28:56 *** jcarl43 has quit IRC
19:32:49 <fell> jralls, we should also with the docs move from CI to GH.
19:45:29 <jralls> fell, OK, though I'm not sure what is the point of CI on the docs since there are no tests.
19:45:37 <warlord> The Enum -> String conversion was my fault, when I modularized GnuCash in order to separate the business features (the idea being business might be a completely separate package). Quarks didn't exist at the time, so we used static const strings.
19:46:36 <fell> Mechtilde was confused by a failed test.
19:51:14 <fell> She commited faster than she got credits.
19:52:04 <fell> That was the reason why she closed her PR.
19:57:34 <fell> in util/ci/commonbuild is 'make check'
19:58:31 <jralls> warlord: Seems unlikely that quarks didn't exist, they were added in https://gitlab.gnome.org/GNOME/glib/-/commit/afdf8b93a308562faa2bd76c2bd64c6870fc0c66
20:06:06 *** FH_thecat has joined #gnucash
20:07:35 *** phebus has quit IRC
20:09:03 *** ArtGravity has quit IRC
20:15:30 <warlord> jralls, they were not in the released versions at the time.
20:15:50 <warlord> remember, back then we were using ~2-3yo releases due to RHL requirements.
20:23:23 *** field^Mop has quit IRC
20:53:39 *** FH_thecat has quit IRC
21:19:38 *** Agfarmer18 has quit IRC
21:22:59 *** lmat has quit IRC
21:31:07 *** lmat has joined #gnucash
21:31:29 *** guak has quit IRC
23:56:46 *** bertbob has quit IRC