2017-08-15 GnuCash IRC logs

00:09:14 *** fekepp has joined #gnucash
00:12:17 *** fekepp has quit IRC
00:46:51 *** cmos has quit IRC
00:50:12 *** Mechtilde has joined #gnucash
01:40:03 *** Mechtilde has quit IRC
02:35:09 *** bhardwajs has quit IRC
02:53:17 *** jotrago has quit IRC
03:10:21 *** mrklintscher4 has quit IRC
03:26:55 *** mrklintscher4 has joined #gnucash
03:29:18 *** fekepp has joined #gnucash
04:04:31 *** pilotauto has quit IRC
04:13:01 *** fekepp has quit IRC
04:13:01 *** fekepp1 has joined #gnucash
04:16:06 *** fekepp1 has quit IRC
04:27:53 *** bertbob has quit IRC
04:42:24 *** bertbob has joined #gnucash
05:17:39 *** User has joined #gnucash
05:24:02 *** fekepp has joined #gnucash
05:27:14 *** fekepp has quit IRC
05:30:13 *** fekepp has joined #gnucash
05:38:32 *** fekepp has quit IRC
05:39:19 *** fekepp has joined #gnucash
05:42:31 *** fekepp has quit IRC
06:24:13 *** jotrago has joined #gnucash
07:09:29 *** Jimraehl1 has joined #gnucash
07:10:17 *** Jimraehl1 has left #gnucash
07:44:53 *** rickoehn has joined #gnucash
08:33:14 *** warlord has quit IRC
08:37:44 *** warlord has joined #gnucash
08:37:45 *** gncbot sets mode: +o warlord
09:30:39 *** warlord has quit IRC
09:32:50 *** warlord has joined #gnucash
09:32:51 *** gncbot sets mode: +o warlord
09:40:48 *** chf has quit IRC
09:41:18 *** chf has joined #gnucash
09:44:27 *** chf has quit IRC
09:44:43 *** chf has joined #gnucash
09:54:36 *** LeeRead has joined #gnucash
10:12:35 *** LeeRead has quit IRC
10:23:30 *** kael has joined #gnucash
10:28:47 *** ArtGravity has joined #gnucash
10:31:26 *** bhardwajs has joined #gnucash
10:39:25 *** kael has quit IRC
10:39:28 *** gjanssens has joined #gnucash
10:39:28 *** ChanServ sets mode: +o gjanssens
10:46:09 *** ArtGravity has quit IRC
10:51:56 <gjanssens> .
10:53:43 <warlord> gjanssens: the gnucash-docs build failed last night due to the source restructuring.
10:56:03 <gjanssens> warlord: huh, the doxygen build you mean ? I should test that here to see what happens
10:56:22 <warlord> Well, the scripts probably didn't find stuff where it was expected.
10:58:13 <warlord> gjanssens: this is the line that is failing: make -f Makefile.am doxygen.cfg top_srcdir=$top_srcdir VERSION="$VERSION"
10:59:12 <gjanssens> warlord: ok. In which directory is this run ? The source directory ?
10:59:16 <warlord> src/doc
11:03:05 <warlord> Looks like I need to change that to libgnucash/doc
11:03:09 <gjanssens> well, as src/doc has become libgnucash/doc that is to be expected...
11:03:37 <warlord> *nods*
11:03:41 <warlord> Changed in the sources.
11:04:38 <gjanssens> Ok
11:04:56 <gjanssens> Is the script simply calling "make doc" in that directory or does it do more ?
11:05:55 <gjanssens> I don't see anything like make -f Makefile.am in the Makefiles so I'm curious
11:07:39 <warlord> No, it does not. It builds the doxygen.cfg directly using the rule in Makefile.am and then it called doxygen directly.
11:08:01 <gjanssens> Oh ok
11:08:02 <warlord> (that's what the 'make -f Makefile,am doxygen.cfg' is doing.
11:08:18 <warlord> the next line is: $doxygen doxygen.cfg
11:08:31 <gjanssens> That is to avoid having to run configure ?
11:08:35 <warlord> Yes
11:08:45 <warlord> And autogen.
11:08:59 <gjanssens> Neat trick. Didn't know that was possible
11:10:22 <gjanssens> I wonder what that would become in the cmake world (assuming we do drop autotools at some point...)
11:11:07 <gjanssens> Anyway, got to leave...
11:11:10 *** gjanssens is now known as gjanssens_afk
11:11:54 *** ArtGravity has joined #gnucash
11:22:05 <lmat> I was trying to make Account.c -> Account.cpp; After doing that, there are scheme failures. This makes sense because c++ mangles function names for overloading. So I looked at another file that is called from scheme, and I can't tell how it is solving this problem (qofinstance.cpp).
11:24:18 *** LeeRead has joined #gnucash
11:25:16 <warlord> gjanssens_afk: I dont know if there is a cmake equivalent.
11:25:43 <warlord> lmat: search for one of the C-APIs
11:25:46 *** cmos has joined #gnucash
11:25:54 <warlord> Are you SURE it's not declared somewhere in an extern "C" {} ?
11:34:38 *** cmos has quit IRC
11:35:44 <lmat> warlord: I think qof_instance_init_data is part of the C api because it's used from C a lot. It's declared in qofinstance.h which is included in C and C++ contexts. Its definition is in qofinstance.cpp which has an extern "C" block, but nowhere close to this.
11:36:36 <lmat> qofinstance.cpp includes qofinstance-p.h which includes qofinstance.h *outside* its extern "C" block.
11:41:12 *** bhardwajs has quit IRC
11:43:22 *** jotrago1 has joined #gnucash
11:43:50 *** jotrago has quit IRC
11:43:51 *** jotrago1 is now known as jotrago
11:48:56 *** Mechtilde has joined #gnucash
11:53:23 *** jotrago1 has joined #gnucash
11:53:49 *** jotrago has quit IRC
11:53:51 *** jotrago1 is now known as jotrago
11:55:47 *** gjanssens_afk is now known as gjanssens
11:55:59 <gjanssens> lmat: I believe you have discovered a bug waiting to happen
11:56:48 <lmat> gjanssens: The reason I don't think that's the case is because it compiles and links! I'll look and see if there are many other examples like this.
11:57:11 *** jotrago has quit IRC
11:57:17 <gjanssens> qofinstance.h is also included in qofbook.h, this time in extern "C" api
11:57:31 <gjanssens> qofbook.h is included in qofbook-p.h
11:57:53 <gjanssens> and qofbook-p.h is included in qofinstance.cpp *before* qofinstance-p.h
11:58:09 <gjanssens> So by chance it's first included via C api and will be ignored the second time
11:58:30 <gjanssens> because QOF_INSTANCE_H is defined by that time
11:58:44 <gjanssens> That's what I meant with "a bug waiting to happen"
11:59:32 <gjanssens> If some code c++ code included qofinstance.h without first including qofbook.h (or their -p.h counterparts) I think it won't work anymore
12:10:06 *** jotrago has joined #gnucash
12:11:22 *** LeeRead has quit IRC
12:12:44 *** jotrago1 has joined #gnucash
12:13:20 *** jotrago has quit IRC
12:13:21 *** jotrago1 is now known as jotrago
12:25:08 <lmat> gjanssens: yes, you're righto as usual!
12:25:41 <lmat> I figured out how to compile *just* qofinstance.cpp: make VERBOSE=1 -f libgnucash/engine/CMakeFiles/gncmod-engine.dir/build.make libgnucash/engine/CMakeFiles/gncmod-engine.dir/qofinstance.cpp.o
12:26:36 <lmat> qofinstance.cpp includes qof.h includes qofid.h which has extern "C" and includes qofinstance.h
12:27:30 <lmat> That's straight forward enough, and should be enough to get me working on Account.c again.
12:35:31 <gjanssens> Nice :)
12:40:32 *** jotrago1 has joined #gnucash
12:41:01 *** jotrago has quit IRC
12:41:02 *** jotrago1 is now known as jotrago
12:44:01 *** LeeRead has joined #gnucash
12:57:53 *** jotrago has quit IRC
12:58:06 *** jotrago has joined #gnucash
13:03:55 *** jotrago1 has joined #gnucash
13:04:21 *** jotrago has quit IRC
13:04:23 *** jotrago1 is now known as jotrago
13:16:28 *** bertbob has quit IRC
13:22:16 *** gjanssens is now known as gjanssens_afk
13:31:27 *** bertbob has joined #gnucash
13:42:26 *** kael has joined #gnucash
13:53:55 *** kael has quit IRC
14:16:44 *** frakturfreak has joined #gnucash
14:19:42 *** LeeRead has quit IRC
14:21:39 *** LeeRead has joined #gnucash
14:27:06 *** jralls has joined #gnucash
14:28:50 *** LeeRead has left #gnucash
14:28:53 *** LeeRead has joined #gnucash
14:29:28 *** LeeRead has quit IRC
14:29:31 *** LeeRead has joined #gnucash
14:32:28 <jralls> lmat: When you change something to C++ you must either use C linkage for its API (wrap the *declarations* in extern "C" {}) or use the API only from C++.
14:32:28 <gncbot> jralls: Sent 1 day, 3 hours, and 25 minutes ago: <warlord> rebooted.
14:32:29 <gncbot> jralls: Sent 1 day and 3 hours ago: <lmat> I don't understand the comment about backwards compatibility. The values are stored in XML (and sql?) as separated values. They're only serialized when the program is running?
14:35:29 <jralls> lmat: SWIG was actually written for C++ so it knows what to do, but I think that the Guile and Python usage may have to change. I haven't looked at that aspect of SWIG in a very long time. But for most of the engine we'll anyway need to keep the C APIs in the near term to interface with other parts of GnuCash.
14:36:44 <lmat> jralls: Warlord tells me that the slots are serialized to SQL even if they are not serialized to XML.
14:38:37 *** Unhammer has quit IRC
14:39:25 *** Mechtilde has quit IRC
14:41:18 <jralls> lmat: Yes, I think that's true, and it's largely my fault. When I finished up the slots implementation in KVP for Phil Longstaff I didn't realize that imap_bayes used very deep trees; I thought that all of the keys were only a couple of layers and so the recursion wouldn't impose a big performance hit.
14:43:34 <jralls> Wait, that depends on which way you mean "serialized". KVP keys in SQL are broken up into trees on '/' while in XML it depends on which calls are used to set the keys whether a single key can have '/' separators or not.
14:46:00 <jralls> ISTM that's a poor choice and there's no good reason to have trees of KVP. Aside from the imaps they're all pretty shallow, I think the deepest is 3. There's no grouping anywhere so we don't gain anything by turning them into trees.
14:47:23 <jralls> The plain import map is pretty much the same. It's imap_bayes where things get interesting and I'd have to spend a bit of time studying how bayesian databases are really supposed to work to design a properly optimized one.
14:51:11 <jralls> lmat: Back to Account.c for a minute: I hope you're doing that in a private branch that you can keep to yourself until we get 2.8 branched. I don't think we want any new conversions--or any other new work for that matter--showing up in master until then. We've got our hands full cleaning everything up to get the release out ASAP after the promised end of the year.
15:06:54 <warlord> I dont know why they are trees.
15:06:56 <warlord> Historical.
15:25:08 <jralls> I think they're trees because whoever designed (Sled?) it was thinking of storage that looked like traditional file system.
15:27:04 <lmat> jralls: Thanks for the warning; I won't get impatient about merging any of my work.
15:27:44 <warlord> It's pre-Sled.
15:27:47 <lmat> I was going to say "kvp seems reasonable" (meaning key-value pairs) until I realized that we're talking about a tree of "kvp"...
15:28:02 <warlord> I think it was designed because it looked like XML.
16:04:49 *** kael has joined #gnucash
16:34:43 *** frakturfreak has quit IRC
16:35:00 *** LeeRead has quit IRC
17:13:35 *** LeeRead has joined #gnucash
17:26:50 *** gjanssens_afk has quit IRC
17:51:09 *** rickoehn has quit IRC
17:59:14 *** cyphase has joined #gnucash
18:04:18 *** kael has quit IRC
18:26:32 *** cyphase has quit IRC
18:31:01 *** kael has joined #gnucash
18:38:00 *** kael has quit IRC
18:39:16 *** flips has quit IRC
18:39:18 *** CDB-Man_ has quit IRC
18:39:21 *** flips has joined #gnucash
18:40:22 *** CDB-Man has joined #gnucash
18:56:16 *** pilotauto has joined #gnucash
19:09:48 *** LeeRead has quit IRC
19:12:28 *** jotrago1 has joined #gnucash
19:12:55 *** jotrago has quit IRC
19:12:56 *** jotrago1 is now known as jotrago
19:28:32 *** LeeRead has joined #gnucash
19:43:15 *** User has quit IRC
20:29:42 *** jralls_ has joined #gnucash
20:30:10 *** jralls has quit IRC
20:33:31 *** LeeRead has quit IRC
21:31:45 *** LeeRead has joined #gnucash
21:33:46 *** ArtGravity has quit IRC
21:47:41 *** kael has joined #gnucash
21:53:26 *** icasdri has quit IRC
21:55:07 *** icasdri has joined #gnucash
21:56:42 *** kael has quit IRC
22:36:27 *** LeeRead has quit IRC
22:58:56 *** bhardwajs has joined #gnucash