2017-11-11 GnuCash IRC logs

00:34:47 *** byzant has quit IRC
00:34:52 *** byzant has joined #gnucash
01:21:40 *** fell has quit IRC
01:22:53 *** fell has joined #gnucash
01:51:03 *** Aussie_matt has joined #gnucash
02:42:40 *** Mechtilde has joined #gnucash
04:15:16 *** fekepp has joined #gnucash
04:33:56 *** Simon has quit IRC
04:34:08 *** Simon has joined #gnucash
04:49:49 *** gjanssens has joined #gnucash
04:49:49 *** ChanServ sets mode: +o gjanssens
04:50:12 <gjanssens> .
04:54:22 *** ChattyMan has joined #gnucash
04:56:08 <ChattyMan> When do we expect to fix the financial quote issue?
04:57:09 *** fabior has joined #gnucash
05:28:35 *** carwynnelson has joined #gnucash
06:07:31 *** Mechtilde has quit IRC
06:08:25 *** Mechtilde has joined #gnucash
06:12:35 *** O01eg has quit IRC
06:18:18 <chris> lmat: drracket is good at showing dependencies too
06:29:15 *** jchonig has quit IRC
06:52:56 <chris> jralls: some GDate is exposed to scheme, hence my query - but I don't know what it means so I'll skip it -- https://wiki.gnucash.org/docs/MASTER/group__Transaction.html#ga4655b37701fa37a31b2a7cda43cedb3b
07:03:13 <chris> if any dev is around what does gnc-localtime do? https://github.com/Gnucash/gnucash/blob/115c0bf4a4afcae4269fe4b9d1e4a73ec7762ec6/libgnucash/engine/gnc-date.cpp#L115
07:06:11 *** jotrago has quit IRC
07:06:40 *** jotrago has joined #gnucash
07:22:20 *** mikee has quit IRC
07:22:39 *** mikee has joined #gnucash
07:24:24 <mikee> @op
07:24:25 *** gncbot sets mode: +o mikee
07:26:56 *** User has joined #gnucash
07:28:36 *** fabior has quit IRC
07:53:00 <chris> lmat https://github.com/christopherlam/gnucash/commit/396023f3799a21d4f817fcb0f5ba21f08b559675 this is how the transition timepair -> time64 is done, not difficult in scheme. the helper modules date-utilities.scm and others will need amending to promote time64 functions and add missing helper functions.
07:53:51 <chris> (I had to define time64canonicaldatetime because there is currently no time64 version of timespecCanonicalDateTime)
08:24:54 <lmat> chris: I'll read gnc-localtime to you. It starts by allocating a proper amount of memory from the heap (a special, semi-permanent memory store)
08:25:02 <lmat> chris: Well, perhaps the details aren't terribly important...
08:26:32 <lmat> chris: Here's struct tm: http://en.cppreference.com/w/c/chrono/tm
08:30:23 <lmat> chris: so, given a time64 (a number of seconds), it returns a struct tm which holds information about that time (year, month, day, etc.). Is that enough, or would you like to know more?
08:33:10 <lmat> chris: Does that commit you gave work?
08:33:41 <lmat> chris: (I'm in again, out again today)
08:43:29 *** chris_ has joined #gnucash
08:46:33 <chris_> lmat yes it does work, just clobber existing transaction.scm - it relies heavily on (1) numerous helper scm modules for (gnc:register-trep-option) and (2) SWIG functions such as timespecCanonicalDateTime
08:48:27 <chris_> other examples of functions defined in numerous .scm files: (gnc:timepair-start-day-time) (gnc:make-html-document)
08:49:08 <chris_> functions defined in SWIG - xaccSplitGetParent xaccSplitGetMemo xaccTransGetDate
08:52:18 <chris_> thx for explaining gnc-localtime - i now havea it figured, but can't see where the magic time64 integer -> list-of-numbers actually happens. this would be explicitly broken down in scm.
08:53:12 <chris_> anyway, I should be able to translate the "reader" .scm files to stop using timespec and start using time64 functions
08:54:19 <chris_> but not entirely sure how to coordinate (1) amending the intermediate numerous helper scm files (2) amending the various SWIG and C files to add timespec funcs are missing time64 equivalents
08:55:02 <chris_> and no idea how to eventually (3) disable/disallow/penalise new files which use timepair
08:57:35 *** Jimraehl1 has joined #gnucash
08:58:30 *** Jimraehl1 has left #gnucash
08:59:45 <chris_> lmat: oops don't clobber existing transaction.scm - i've amended the headers - add it as a user report
09:03:00 *** byzant has quit IRC
09:10:10 *** byzant has joined #gnucash
09:25:44 *** byzant has quit IRC
09:25:48 *** byzant has joined #gnucash
09:50:59 *** warlord has quit IRC
10:07:55 <lmat> chris_: The conversion happens on gnc-datetime.cpp:333: struct tm time = to_tm(m_time)
10:09:17 <lmat> So, this is called on the time64: m_time(LDT_from_unix_local(time)) that converts the time64 to a LDT (a boost type) called m_time.
10:10:23 <lmat> That m_time is passed to to_tm which is defined in boost.
10:10:27 *** Aussie_matt has quit IRC
10:11:09 <lmat> chris_: In short "but can't see where the magic time64 integer -> list-of-numbers actually happens." That's sort of by design ;-) We shouldn't be doing stuff like that in gnucash: it's difficult and fraught with lots of corner cases. We delegate it out to a library.
10:14:00 <chris_> so, how do you think collaboration can work? timespec is currenlty more feature-complete than time64
10:15:13 <chris_> one of us will have to maintain a branch with the evolving APIs, and it can't be too far off unstable
10:17:15 <lmat> chris_: Yes. are you comfortable with git?
10:17:55 <chris_> only basics and I can't guarantee destroying a branch
10:18:04 <lmat> chris_: I have been working on the way gnucash deals with key-value pairs, but I can take a break from that and roll some time64 changes out.
10:19:25 <lmat> chris_: No sweat. Destroy as you like; I'm so very happy it's distributed ^_^ Perhaps by mid next week, I'll put up a branch on my fork which you can pull. It may have many timespec uses removed from C code (this shouldn't affect you), and will have alternative functions available to scheme.
10:20:01 <chris_> :+1:
10:20:06 <lmat> chris_: I envision first an enlargening of the API and a subsequent shrinking of the API: first adding time64 functions, then removing timepair/timespec functions.
10:23:10 <chris_> yes sounds better than doing amendment of e.g. gnc_transaction_get_date_posted and watch the whole build fail in multiple places
10:23:54 <lmat> chris_: Yeah...tried that. It went okay in C (which is a compiled language), but the scheme failures I couldn't decipher.
10:24:40 <lmat> chris_: I've taken a renewed love to small changes which pass make check (ctest, ninja check, whatever).
10:24:58 *** fabior has joined #gnucash
10:26:33 <chris_> cool I'll look forward to new branch
10:26:45 <chris_> now need to go 11:30pm here
10:29:13 *** chris has quit IRC
11:26:15 *** ChattyMan has quit IRC
11:30:14 *** ChattyMan has joined #gnucash
11:33:41 <lmat> chris_: night, dude!
12:05:09 *** carwyn-desktop has joined #gnucash
12:05:31 *** bertbob has quit IRC
12:08:05 *** carwyn-desktop has quit IRC
12:13:32 *** noah has joined #gnucash
12:13:44 *** bertbob has joined #gnucash
12:35:19 *** bertbob has quit IRC
12:35:31 *** bertbob has joined #gnucash
12:47:03 *** ArtGravity has joined #gnucash
12:50:41 *** carwynnelson has quit IRC
13:01:25 *** ChattyMan has left #gnucash
13:10:03 *** gjanssens has quit IRC
13:21:23 *** fabior has quit IRC
13:22:19 *** noah has quit IRC
13:22:35 *** noah_ has joined #gnucash
13:22:45 *** fabior has joined #gnucash
13:24:46 *** mikee has quit IRC
13:24:55 *** fabior has quit IRC
13:33:11 *** noah_ is now known as noah
13:33:49 *** carwynnelson has joined #gnucash
13:38:21 *** fabior has joined #gnucash
13:48:47 *** mikee has joined #gnucash
13:50:52 <mikee> @op
13:50:52 *** gncbot sets mode: +o mikee
13:55:25 *** User has quit IRC
13:55:29 *** warlord has joined #gnucash
13:56:09 *** carwynnelson has quit IRC
14:11:44 *** fabior has quit IRC
14:14:04 *** frakturfreak has joined #gnucash
14:35:08 *** carwynnelson has joined #gnucash
14:36:10 *** carwynnelson has quit IRC
14:36:10 *** carwynne_ has joined #gnucash
15:03:08 *** Mechtilde has quit IRC
15:08:21 *** fabior has joined #gnucash
15:18:27 *** fekepp has quit IRC
15:18:44 *** fekepp has joined #gnucash
15:20:22 *** karelk has joined #gnucash
15:21:40 *** carwynne_ is now known as carwynnelson
15:37:35 <jralls> opal: GnuCash for Android is a different project. You'll have to ask on their support channel.
15:38:37 <opal> ✿ alright thanks ❀
15:39:16 <warlord> .
15:47:00 <jralls> chris_: Dunno about jumping, I just use scheme-mode for syntax highlighting and paren-matching. I found http://alexott.net/en/writings/emacs-devenv/EmacsScheme.html that describes some more modules you can add for more stuff.
16:02:26 *** icasdri has quit IRC
16:04:21 *** icasdri has joined #gnucash
16:15:20 *** warlord has quit IRC
16:19:27 <jralls> chris_: As for timespec vs. time64, the only two things that timespec exposes that time64 doesn't is CanonicalDayTime, and that can be easily created if you need it: It's actually implemented in GncDateTime and wrapped for timespec.
16:23:24 *** fekepp has quit IRC
16:23:54 *** fekepp has joined #gnucash
16:27:08 *** fekepp has quit IRC
16:33:42 *** fekepp has joined #gnucash
16:40:18 *** fabior has quit IRC
16:40:55 *** carwynnelson has quit IRC
16:53:47 *** fabior has joined #gnucash
17:00:38 *** carwynnelson has joined #gnucash
17:14:45 *** fabior has quit IRC
19:32:13 *** carwynnelson has quit IRC
19:53:25 *** warlord has joined #gnucash
20:11:08 *** noah has quit IRC
20:32:44 *** phebus has quit IRC
20:35:58 *** phebus has joined #gnucash
20:41:36 <lmat> @tell chris I added time64CanonicalDayTime and another function: https://github.com/limitedatonement/gnucash/tree/time64-ftw
20:41:36 <gncbot> lmat: The operation succeeded.
20:55:07 *** noah has joined #gnucash
21:02:01 <jralls> lmat: chris is on as chris_
21:02:23 <jralls> lmat: Though he's probably still asleep.
21:05:23 <lmat> I'll catch him later if "chris" doesn't wind up saying anything.
21:27:21 *** frakturfreak has quit IRC
22:34:04 *** marusich has joined #gnucash
22:34:16 *** noah has quit IRC
22:47:09 *** fekepp has quit IRC
22:47:10 *** fekepp has joined #gnucash