2014-11-03 GnuCash IRC logs
00:12:07 *** mlncn has joined #gnucash
00:25:33 *** jralls has quit IRC
00:26:05 *** jralls has joined #gnucash
00:26:05 *** gncbot sets mode: +o jralls
00:40:01 *** mlncn has quit IRC
00:49:19 *** jralls has quit IRC
00:50:23 *** jralls has joined #gnucash
00:50:23 *** gncbot sets mode: +o jralls
01:16:48 *** MechtiIde has joined #gnucash
01:26:21 *** cartsoftware has joined #gnucash
02:01:09 *** MechtiIde has quit IRC
02:16:44 *** Krzysiek_K has joined #gnucash
02:21:12 *** cartsoftware has quit IRC
02:29:45 *** Krzysiek_K has quit IRC
02:41:10 *** Krzysiek_K has joined #gnucash
02:49:24 *** cartsoft1 has joined #gnucash
02:51:09 *** gjanssens has joined #gnucash
02:51:09 *** gncbot sets mode: +o gjanssens
03:01:07 *** ErKa has joined #gnucash
03:18:22 *** Krzysiek_K has quit IRC
03:38:47 *** GabrieleV_ has joined #gnucash
03:38:51 *** GabrieleV has quit IRC
03:38:51 *** GabrieleV_ is now known as GabrieleV
04:07:21 *** uXus has quit IRC
04:09:46 *** GabrieleV_ has joined #gnucash
04:09:47 *** GabrieleV has quit IRC
04:09:47 *** GabrieleV_ is now known as GabrieleV
04:11:05 *** uXus has joined #gnucash
04:27:37 *** aqua___ has joined #gnucash
04:48:55 *** ErKa has quit IRC
05:18:47 *** GabrieleV_ has joined #gnucash
05:19:18 *** GabrieleV has quit IRC
05:19:18 *** GabrieleV_ is now known as GabrieleV
05:35:32 *** aqua___ has quit IRC
05:53:36 *** wol has joined #gnucash
06:11:21 *** wol has quit IRC
06:57:27 *** Jimraehl1 has left #gnucash
07:04:13 *** Gbarr has joined #gnucash
07:08:33 *** Jimraehl1 has joined #gnucash
07:28:40 *** Gbarr has quit IRC
07:28:48 *** andy has quit IRC
07:46:59 *** warlord has quit IRC
07:47:51 *** GabrieleV_ has joined #gnucash
07:48:00 *** GabrieleV has quit IRC
07:48:00 *** GabrieleV_ is now known as GabrieleV
07:48:08 *** aqua___ has joined #gnucash
07:56:05 *** andy has joined #gnucash
08:18:07 *** warlord has joined #gnucash
08:18:08 *** gncbot sets mode: +o warlord
08:36:33 *** cartsoft1 has quit IRC
08:51:01 *** mlncn has joined #gnucash
08:54:52 *** aqua___ has quit IRC
09:02:53 *** cartsoftware has joined #gnucash
09:06:00 *** aqua___ has joined #gnucash
09:11:24 *** ErKa has joined #gnucash
09:16:42 *** lmat has joined #gnucash
09:21:05 *** mlncn-agaric has joined #gnucash
09:21:16 *** wol has joined #gnucash
09:21:53 *** mlncn has quit IRC
09:39:24 *** himaxx has joined #gnucash
09:44:39 *** himaxx has quit IRC
09:56:49 *** jralls has quit IRC
09:57:25 *** jralls has joined #gnucash
09:57:26 *** gncbot sets mode: +o jralls
10:07:54 *** benjamin-agaric has joined #gnucash
10:12:25 *** mlncn-agaric has quit IRC
10:20:47 *** jralls has quit IRC
10:21:41 *** jralls has joined #gnucash
10:21:42 *** gncbot sets mode: +o jralls
10:26:28 <lmat> @op
10:26:28 <gncbot> lmat: Error: You don't have the #gnucash,op capability. If you think that you should have this capability, be sure that you are identified before trying again. The 'whoami' command can tell you if you're identified.
10:49:45 *** benjamin-agaric has quit IRC
10:49:48 *** agaric has joined #gnucash
10:56:19 *** wol has quit IRC
11:19:07 *** agaric has quit IRC
11:19:44 *** mlncn has joined #gnucash
11:20:29 *** Gbarr has joined #gnucash
11:36:20 *** Gbarr has quit IRC
11:41:27 *** Gbarr has joined #gnucash
11:54:05 *** MechtiIde has joined #gnucash
11:57:02 *** aqua___ has quit IRC
11:57:26 *** wol has joined #gnucash
12:30:22 *** rpg has joined #gnucash
12:40:24 *** Gbarr has quit IRC
12:51:01 *** Krzysiek_K has joined #gnucash
12:53:22 *** Gbarr has joined #gnucash
12:54:53 *** mlncn has quit IRC
12:55:51 *** mlncn has joined #gnucash
13:01:06 *** Krzysiek_K has quit IRC
13:05:55 *** Krzysiek_K has joined #gnucash
13:07:53 *** mlncn has quit IRC
13:07:57 *** mlncn-agaric has joined #gnucash
13:08:34 *** mlncn-agaric has quit IRC
13:09:34 *** mlncn-agaric has joined #gnucash
13:10:43 *** fell_ has quit IRC
13:14:56 *** Krzysiek_K has left #gnucash
13:21:58 *** benjamin-agaric has joined #gnucash
13:26:43 *** jralls has quit IRC
13:27:18 *** jralls has joined #gnucash
13:27:18 *** gncbot sets mode: +o jralls
13:27:41 *** mlncn-agaric has quit IRC
13:30:36 *** Krzysiek_K1 has joined #gnucash
13:34:55 *** cigarshark has joined #gnucash
13:58:36 *** MechtiIde has quit IRC
13:59:34 <jralls> lmat: What compiler are you using? Clang refuses to build your latest kvp patch because of the mismatch between class Kvp.*Impl in kvp(-value|_frame).hpp and struct Kvp.*Impl in kvp_frame.h.
14:00:06 <lmat> ah, interesting g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2
14:01:17 <jralls> Does it have -Wmismatched-tags?
14:03:01 <lmat> jralls: um... I didn't do anything like that.
14:04:36 <lmat> jralls: So the problem is in implicit casts to and from KvpFrame to KvpFrameImpl (etc.)?
14:05:48 <jralls> lmat: Implicit? Not a bit. kvp_frame.h has typdef struct KvpFrameImpl KvpFrame and the same for KvpValue.
14:05:53 *** agaric has joined #gnucash
14:06:23 <lmat> oh yeah...
14:06:38 *** agaric has quit IRC
14:07:03 *** cartsoftware has quit IRC
14:07:04 *** agaric has joined #gnucash
14:07:47 *** benjamin-agaric has quit IRC
14:08:03 <jralls> That's what barfs.
14:09:25 *** wol has quit IRC
14:09:38 <jralls> 'KvpValueImpl' defined as a class here but previously declared as a struct [-Werror,-Wmismatched-tags]
14:15:44 *** Krzysiek_K1 has quit IRC
14:20:32 <lmat> aahhhh
14:20:35 <lmat> that makes sense
14:20:38 *** agaric has quit IRC
14:20:48 <lmat> And I remember justifying 'struct' in the .hpp for that reason.
14:21:21 <lmat> I prefer struct (because I prefer public fields and immutability), but I had forgotten that the reason it is preferred here is because 'struct' is a C keyword :)
14:24:58 <jralls> lmat: Public member variables are generally bad, and struct doesn't mean immutable. In fact, the only difference between struct and class is that in a struct members are public by default and in a class they're private by default.
14:25:19 <lmat> jralls: Right. It's all of a fabric :)
14:25:40 *** Krzysiek_K has joined #gnucash
14:25:46 <lmat> jralls: I tend to write immutable structures, so their fields may as well be public. The easiest way to make all the fields public is to make it a struct with no access modifier on members :)
14:26:40 <jralls> Anyway, changing them Kvp.*Impl back to structs (and leaving the public: and private: sections as-is, gets the compile working.
14:27:35 <lmat> jralls: yup
14:27:56 <lmat> jralls: Alternatively, changing the typedef to void sacrifices some amount of type safety, but also should get the compile working?
14:28:09 <lmat> jralls: And will allow us to keep 'class'.
14:28:44 <warlord> Void is evil -- you lose type checking
14:29:14 <lmat> warlord: yup, agreed there!
14:30:39 <jralls> Yes, the widespread need to use void* -- disguised as gpointer -- in GLib/GObject is all by itself a good reason to switch to C++.
14:31:55 <jralls> Anyway, the QofInstance get referring object list test is still failing on KVP_TYPE_FRAME.
14:32:36 <jralls> Sorry, wrong test. It's kvp frame add frame nc that's failing.
14:35:24 <jralls> lmat: Is there any reason that the boost variant types need to be enumerated in kvp-value.hpp?
14:36:47 <lmat> hmm, I don't know. I thought it was necessary.
14:36:55 <lmat> I hadn't considered not telling variant w
14:36:56 *** ilisten_ has joined #gnucash
14:37:15 <lmat> oh yeah...it'll be necessary because, for one, visitors
14:37:22 <lmat> I think...
14:38:04 <jralls> Aren't the visitors all in the template specializations in kvp-value.cpp?
14:38:28 <lmat> jralls: sure, but there are some that aren't specialized...
14:39:44 <lmat> Sorry, I'm less than perfectly attentive at the moment. There is a production issue at work... I'll be in and out, though.
14:39:52 <lmat> (In and out of IRC)
14:43:46 *** mlncn has joined #gnucash
14:57:31 <lmat> jralls: I have reproduced the issue using clang compiler.
14:57:40 *** ilisten_ has quit IRC
14:57:48 <jralls> which one?
15:01:41 <lmat> jralls: class/struct mismatch
15:01:41 *** mlncn has quit IRC
15:05:05 <jralls> OK. The more serious problem is the failing test, which seems to be the same typeid<KvpFrame*> issue I saw before.
15:08:13 <jralls> Likely caused by the same problem: two typeids, one where the struct definition is known, the other where it isn't.
15:13:15 <lmat> jralls: oh yeah, that.
15:19:44 *** aqua___ has joined #gnucash
15:25:14 <jralls> Fixed easily enough by including kvp_frame.hpp in kvp-value.cpp.
15:26:35 <jralls> I'll apply those changes to your commit and push it.
15:27:08 <lmat> jralls: okay
15:27:12 <lmat> great.
15:38:54 <jralls> lmat: Now, about QofSession. It certainly can do with rewriting, but it's standalone so there's not a lot of leverage there. I think QofBackend and the backends themselves are better candidates.
15:39:17 <lmat> jralls: OKay, I'll look there next (after tests for kvp?)
15:40:50 <jralls> Umm, yeah, you were concerned about KvpValue leaking its values, so you should write tests to make sure that it doesn't.
15:41:02 <lmat> aye
15:41:12 <lmat> jralls: Oh yes, I didn't respond to that bit in the bugzilla...
15:42:04 <lmat> jralls: What I mean is that it may be nice for e.g. guid_new and guid_free to maintain a vector<GncGUID*> keeping track of which ones are out, and, at the end of a test suite, ensure that list is zero-sized.
15:42:37 <lmat> jralls: And each of the qof objects get something like this.
15:48:00 <jralls> Ewww. Let's not. That has "not thread safe" written all over it. In the case of GUID, that shouldn't be independently allocated anyway. It's always part of another class.
15:50:18 <lmat> jralls: I think it only serves kvp anyway...
15:54:24 <lmat> does make check work (reliably ^_^) with make -j check; ?
15:56:04 <jralls> I wouldn't count on it. IIRC some of the legacy tests, particularly in src/backend, depend on being run in sequence.
15:59:34 *** cartsoftware has joined #gnucash
16:06:30 <lmat> jralls: okay, thanks
16:31:59 *** gjanssens has quit IRC
16:52:21 *** mlncn has joined #gnucash
17:26:00 *** lmat has quit IRC
18:26:45 *** aqua___ has quit IRC
18:30:00 *** mlncn has quit IRC
18:30:20 *** cartsoftware has quit IRC
18:31:31 *** warlord has quit IRC
18:34:46 *** jralls has quit IRC
18:35:40 *** jralls has joined #gnucash
18:35:40 *** gncbot sets mode: +o jralls
18:50:09 *** mlncn has joined #gnucash
19:01:54 *** cartsoftware has joined #gnucash
19:05:24 *** rpg has quit IRC
19:08:26 *** cartsoftware1 has joined #gnucash
19:10:35 *** cartsoftware has quit IRC
19:13:59 *** Gbarr has quit IRC
19:32:29 *** cartsoftware has joined #gnucash
19:35:16 *** Krzysiek_K has left #gnucash
19:36:08 *** cartsoftware1 has quit IRC
19:53:27 *** fell_ has joined #gnucash
19:53:28 *** gncbot sets mode: +o fell_
20:01:26 *** jralls has quit IRC
20:02:19 *** jralls has joined #gnucash
20:02:19 *** gncbot sets mode: +o jralls
20:26:26 *** jralls has quit IRC
20:27:18 *** jralls has joined #gnucash
20:27:18 *** gncbot sets mode: +o jralls
20:27:54 *** warlord has joined #gnucash
20:27:54 *** gncbot sets mode: +o warlord
20:28:12 *** cigarshark has quit IRC
20:39:31 *** cartsoftware1 has joined #gnucash
20:44:42 *** cartsoftware has quit IRC
20:49:46 *** cartsoftware has joined #gnucash
20:54:57 *** cartsoftware1 has quit IRC
21:39:13 *** ErKa has quit IRC
22:23:07 *** jralls has quit IRC
22:23:38 *** jralls has joined #gnucash
22:23:39 *** gncbot sets mode: +o jralls
22:25:48 *** cartsoftware1 has joined #gnucash
22:29:27 *** cartsoftware has quit IRC
22:51:18 *** jralls has quit IRC
22:52:37 *** jralls has joined #gnucash
22:52:37 *** gncbot sets mode: +o jralls
23:25:28 *** GabrieleV_ has joined #gnucash
23:25:33 *** GabrieleV has quit IRC
23:25:34 *** GabrieleV_ is now known as GabrieleV
23:47:45 *** cartsoftware1 has quit IRC
23:49:26 *** comcry has quit IRC