2014-12-03 GnuCash IRC logs

00:16:19 *** TommyT has quit IRC
00:20:58 *** cartsoftware has joined #gnucash
00:56:15 *** fell has joined #gnucash
00:56:16 *** gncbot sets mode: +o fell
00:56:19 *** GabrieleV_ has joined #gnucash
00:56:25 *** GabrieleV has quit IRC
00:56:25 *** GabrieleV_ is now known as GabrieleV
01:12:32 *** cartsoftware has quit IRC
01:18:59 *** MechtiIde has joined #gnucash
01:41:02 *** ErKa has quit IRC
02:01:46 *** wvsfxr has joined #gnucash
02:03:11 *** O01eg has quit IRC
02:14:41 *** fell_ has joined #gnucash
02:14:41 *** gncbot sets mode: +o fell_
02:15:26 *** MechtiIde has quit IRC
02:15:51 *** wvsfxr has left #gnucash
02:17:33 *** wvsfxr has joined #gnucash
02:19:52 *** fell has quit IRC
02:44:07 *** fell_ has quit IRC
02:44:44 *** fell_ has joined #gnucash
02:44:45 *** gncbot sets mode: +o fell_
02:49:41 *** fell_ is now known as fell
02:51:14 <fell> Good Morning!
02:52:16 <fell> With "(use-modules (gnucash app-utils))" I come until the last line, where I get
02:52:19 <fell> ice-9/boot-9.scm:106:20: In procedure module-lookup: Unbound variable: gnc-register-kvp-option-generator
02:53:14 <fell> A similar line is in app-utils/business-prefs.scm
02:55:49 <fell> which has a (define (book-options-generator options) statement.
03:00:08 *** gjanssens has joined #gnucash
03:00:08 *** gncbot sets mode: +o gjanssens
03:04:46 <fell> Hoi, gjanssens!
03:06:06 <fell> Do you know, where I get the gnc-register-kvp-option-generator dclaration?
03:31:46 *** cartsoftware has joined #gnucash
03:34:49 *** GabrieleV_ has joined #gnucash
03:34:51 *** GabrieleV has quit IRC
03:34:51 *** GabrieleV_ is now known as GabrieleV
03:35:57 *** cartsoftware has quit IRC
03:35:57 *** cartsoftware has joined #gnucash
03:36:33 <gjanssens> Hey fell: like jralls suggests on the bug report: it's coming from app-utils
03:36:41 <gjanssens> It's actually defined in c as gnc_register_kvp_option_generator
03:36:48 <gjanssens> When wrapping it for guile swig converts all underscores in dashes (_ -> -)
03:36:53 <gjanssens> So guile sees that c function as gnc-register-kvp-option-generator
03:38:53 <fell> gnc_register_kvp_option_generator is in app-utils/option-util.*
03:40:07 <fell> and app-utils/app-utils.i, but not in app-utils.scm
03:40:09 *** cartsoftware has quit IRC
03:40:57 <gjanssens> You are correct. I was looking into it already
03:42:48 *** cartsoftware has joined #gnucash
03:44:09 <gjanssens> fell: I have just pushed a commit that fixes it the precompilation for me
03:46:24 <gjanssens> To get gnc-register-kvp-option-generator I had to (use-modules (sw_app_utils)) which is the module with the swig bindings for app-utils
03:47:18 <gjanssens> Then to get the constant QOF-ID-BOOK-SCM I had to load sw_engine as well
03:48:08 <gjanssens> That is slightly more complicated though because that one will not load unless libgncmod-engine is loaded first
03:48:16 <gjanssens> Can you try with the latest maint head ?
03:48:41 <gjanssens> There is no need for make clean or rerunning autogen.sh as I only changed one scheme file
03:56:14 *** cartsoftware1 has joined #gnucash
03:59:15 *** cartsoftware has quit IRC
04:05:14 *** aqua___ has joined #gnucash
04:08:31 <fell> OK (back from breakfast), will try now,
04:10:22 *** cartsoftware1 has quit IRC
04:13:42 *** aqua___ has quit IRC
04:21:03 *** cartsoftware has joined #gnucash
04:33:12 *** cartsoftware has quit IRC
04:35:49 <fell> gjanssens: Do you think, you or somebody else will understand it looking in the file in a few years again?
04:37:44 <fell> make finished successful!
04:44:06 *** mikee is now known as mikee_afk
04:47:36 <fell> Now I get a crash on file->new
04:48:30 *** mikee_afk is now known as mikee
04:48:30 *** mikee is now known as mikee-afk
04:48:31 <fell> Last line: txf-de_DE.scm:336:3: In procedure module-lookup: Unbound variable: gnc:make-string-option
04:49:01 *** mikee-afk is now known as mikee_afk
04:49:27 *** mikee_afk is now known as mikee
04:49:56 <fell> mikee: you can not decide, to stay or go?
04:52:21 <mikee> fell: xorg kde problems. Coundn't single mouse click, strange.
04:52:48 <mikee> might be the mouse dying.
04:53:45 <fell> Hm, in most cases java is freezing my machine.
04:55:52 <gjanssens> fell: it looks like you need to add (use-modules (app-utils)) anyway
04:56:22 <gjanssens> I'm slightly surprised though guile precompilation didn't trip over this
04:56:36 <gjanssens> Although there is still a warning during compilation:
04:57:03 <gjanssens> gnc.module-WARNING **: Could not locate module gnucash/tax/de_DE interface v.0
04:57:39 <fell> gjanssens: we have the same (gnc-register-kvp-option-generator statement in business-prefs.scm
04:58:08 <gjanssens> Yes, but your crash was due to gnc:make-string-option not being found
04:58:24 <gjanssens> That's unrelated to gnc-register-kvp-option-generator
04:58:54 <fell> Why has business-prefs no problem?
05:00:41 <gjanssens> Probably because it has (use-modules (gnucash app-utils))
05:01:38 <fell> Yes, that is, what jralls suggested on the bug last night.
05:13:16 <gjanssens> fell: it looks like there are some more issues with the report and associated makefile
05:13:39 <gjanssens> Looking closer it turns out txf-de_DE.scm isn't being precompiled at all.
05:13:55 <gjanssens> I'm working on it
05:15:38 <fell> Perhaps we should drop the --enable-locale-specific-tax flag and move it's parts in the normal build process?
05:16:18 <fell> BTW: It is runing again.
05:16:40 <fell> Until now, I found no crash...
05:26:53 *** mikee_ has joined #gnucash
05:34:43 <mikee_> Oh, now there's two of me.
05:35:02 *** mikee has quit IRC
05:35:03 *** mikee_ is now known as mikee
05:35:20 <mikee> Yay!
05:49:25 *** aqua___ has joined #gnucash
05:56:45 <gjanssens> fell: I have just pushed another commit fixing it more completely
05:57:05 <fell> I will test it.
05:57:07 <gjanssens> It turns out the real tax report in src/report/locale-specific was affected as well
05:57:29 <gjanssens> Best is to do a make clean this time
05:57:50 <gjanssens> The guile dependencies are not tracked by make
05:58:14 <gjanssens> As to your question will someone still remember how it was in a couple of years
05:58:34 <gjanssens> Good question
05:58:48 <gjanssens> I will probably be able to reconstruct it based on the commits so far
05:59:07 <gjanssens> But there are a few really ugly kinks in these constructs
05:59:47 <gjanssens> For starters the guile compiler is not too smart
06:00:21 <gjanssens> It sometimes fails to load the correct symbols if some dynamic linking in c is involved
06:01:18 <gjanssens> For example each time we use gnc:module-load that loads a module written in C
06:01:42 <gjanssens> Several of those independently start loading guile modules again from the C code
06:02:32 <gjanssens> At that point guile forgets which modules it already had loaded (perhaps intentionally, I don't know)
06:03:13 <gjanssens> So the guile modules loaded from within the C code need to make sure all *their* required C modules are explicitly loaded
06:04:29 <gjanssens> Which is why I had to add the (load-extension ...) and (use-modules (sw_...) parts
06:05:20 <gjanssens> This whole mess can be eliminated by getting guile out of the core modules
06:05:41 *** aqua___ has quit IRC
06:05:55 <gjanssens> Which is a design goal I believe
06:06:22 <gjanssens> If the c code no longer loads guile modules (except perhaps for one single well-defined entry point)
06:06:40 <gjanssens> guile will properly find its dependencies at all times
06:07:19 <gjanssens> Of course before guile in the core modules can be eliminated we'll need to rewrite large chunks of guile code in C
06:08:07 <gjanssens> Things like our option code, or even creating new transactions make a detour via guile
06:08:37 <gjanssens> Which used to make sense when gnucash was still a guile program but is crazy in the current state of gnucash
06:26:09 *** Jimraehl1 has quit IRC
06:29:04 *** aqua___ has joined #gnucash
06:49:10 <fell> gjanssens: IMHO you should add a few comment lines: ;; load this in that way because ...
06:49:42 <fell> It would make it easier for others to understand the code.
06:58:00 *** Jimraehl1 has joined #gnucash
06:58:58 *** himaxx has joined #gnucash
07:00:27 *** wvsfxr has left #gnucash
07:01:18 *** himaxx has quit IRC
07:36:12 *** mlncn has joined #gnucash
07:46:11 *** andy has quit IRC
07:56:14 *** aqua___ has quit IRC
08:08:38 *** andy has joined #gnucash
08:09:35 *** himaxx has joined #gnucash
08:13:31 *** himaxx has quit IRC
08:20:12 <warlord> fell, gjanssens: you SHOULD be able to (use-modules (gnucash app-utils)) and it *should* load (and export) the sw_app_utils module / symbols
08:23:36 <warlord> ah, having read the whole thread I see that you eventually used that.
08:23:46 <gjanssens> warlord: clearly you can at RUNTIME
08:24:02 <gjanssens> it gets trickier with guile 2's new compilation feature
08:24:48 <gjanssens> At compile time it doesn't automatically follow all the module leads
08:24:59 <gjanssens> You have to explicitly tell it to do so
08:25:16 <gjanssens> (use-modules ...) is properly evaluated at compile time
08:25:57 <gjanssens> (load-extension ...) is not unless you use the (cond (eval-when compile...)) construct you'll now find in many of our guile scripts
08:26:53 <gjanssens> And even then it's important to include those in the proper files
08:26:56 <warlord> gjanssens: gotcha.
08:33:01 <fell> And the original idea of LISP as a declarative programming language got lost?
08:57:50 <kimmo2> ah, good intentions. I miss them
08:57:53 *** mlncn has quit IRC
09:01:40 *** mlncn has joined #gnucash
09:23:51 *** ErKa has joined #gnucash
09:24:57 *** aqua___ has joined #gnucash
09:46:58 *** GabrieleV_ has joined #gnucash
09:47:03 *** GabrieleV has quit IRC
09:47:03 *** GabrieleV_ is now known as GabrieleV
09:51:53 *** mikee is now known as mikee_afk
09:52:20 *** mikee_afk has quit IRC
10:10:38 <gjanssens> fell: I don't understand your last question (no doubt mainly because I never had a formal CS education)
10:11:07 <gjanssens> What's declarative programming in this context and where did it get lost ?
10:12:38 <fell> traditional programming languages are procedural: do this, if cond do that, ...
10:13:58 <fell> Mostly in AI context evolved the paradigm of declarative languages: Lisp, ProLog, ...
10:15:02 <fell> Don't tell, how to do it; just tell what to do (or similar)
10:20:06 <fell> guile derives from LISP, but the pre-compile stuff seems to complicate it more than in traditional C - at least currently for me.
10:20:35 *** mikee_afk has joined #gnucash
10:20:57 *** mikee_afk is now known as mikee
10:24:11 <warlord> Too bad we can't just turn off guile's pre-compile
10:30:57 *** wol has joined #gnucash
10:39:35 *** aqua___ has quit IRC
10:40:57 *** O01eg has joined #gnucash
10:53:39 <gjanssens> guile's pre-compile was introduced to increase guile's performance
10:53:54 <gjanssens> It can be turned off but you loose in performance
10:54:17 <gjanssens> And for the declarative nature of guile: I think that hasn't changed
10:54:32 <gjanssens> Only gnucash is not using guile in a very declarative way
10:54:35 <warlord> Do we really care that much about performance at that level?
10:55:28 <gjanssens> I'll put it differently: I have spent enough effort on it that I don't feel like reverting it now
10:56:16 <gjanssens> Also the excercise of precompilation did help clarify interdependencies that are now explicitly clear instead of hidden
10:56:21 <gjanssens> I consider that a benefit
10:57:21 <gjanssens> But I agree the pre-compilation stuff probably works better in less complicated environments.
10:57:31 <warlord> Okay
10:57:31 <gjanssens> Which is one of our design goals :)
10:57:58 <gjanssens> (Getting rid of guile dependencies in the engine)
10:58:11 <gjanssens> Not much has happened in that area yet though :(
10:58:20 <fell> But the next announcement should have a big chapter about it! ;-)
10:58:39 <gjanssens> :D
11:05:57 <fell> In the invoices "Display each entry's total total tax?" is 2x total a typo or a term, which I don't know?
11:07:22 *** wol1 has joined #gnucash
11:11:25 *** aqua___ has joined #gnucash
11:16:01 *** wol has quit IRC
11:16:09 *** cartsoftware has joined #gnucash
11:16:13 *** mikee has quit IRC
11:24:30 *** wol1 has quit IRC
11:28:07 *** cartsoftware has quit IRC
11:31:03 *** mikee_afk has joined #gnucash
11:31:05 *** mikee_afk is now known as mikee
11:35:56 *** wvsfxr has joined #gnucash
11:36:59 <lmat> It looks like qof_session_add_close_hook isn't used.
11:37:13 <lmat> that means that qof_session_call_close_hooks is probably useless, too?
11:37:19 <lmat> which means that the hooklist is obsolete?
11:37:35 <lmat> Do we need to keep this hook functionality?
11:37:59 *** cartsoftware has joined #gnucash
11:39:20 *** cartsoftware has quit IRC
11:44:32 *** cartsoftware has joined #gnucash
11:49:03 <warlord> It used to be used.. and modules can still use it.
11:49:12 *** cartsoftware1 has joined #gnucash
11:52:44 *** O01eg has quit IRC
11:52:49 <lmat> warlord: Okay, so we need to keep it?
11:54:12 *** cartsoftware has quit IRC
11:55:28 *** O01eg has joined #gnucash
11:56:56 *** cartsoftware1 has quit IRC
12:27:10 *** wvsfxr1 has joined #gnucash
12:27:21 *** wvsfxr1 has left #gnucash
12:30:09 *** cartsoftware has joined #gnucash
12:31:28 *** wvsfxr has quit IRC
12:31:40 *** jralls has quit IRC
12:31:41 *** wol has joined #gnucash
12:32:14 *** jralls has joined #gnucash
12:32:15 *** gncbot sets mode: +o jralls
12:36:36 *** mlncn has quit IRC
12:36:48 *** mlncn has joined #gnucash
12:40:40 *** cartsoftware has quit IRC
12:42:22 *** lmat has quit IRC
12:57:07 *** wol1 has joined #gnucash
13:01:47 *** wol has quit IRC
13:37:28 *** cartsoftware has joined #gnucash
13:48:59 *** cartsoftware has quit IRC
13:49:58 *** cartsoftware has joined #gnucash
13:52:52 *** jralls has quit IRC
13:53:27 *** GabrieleV_ has joined #gnucash
13:53:30 *** GabrieleV has quit IRC
13:53:30 *** GabrieleV_ is now known as GabrieleV
13:53:44 *** jralls has joined #gnucash
13:53:44 *** gncbot sets mode: +o jralls
13:58:29 *** mlncn has quit IRC
14:00:50 *** cartsoftware has quit IRC
14:01:50 *** MechtiIde has joined #gnucash
14:02:22 *** cartsoftware has joined #gnucash
14:08:29 *** mlncn has joined #gnucash
14:08:48 *** cartsoftware has quit IRC
14:09:02 *** lmat has joined #gnucash
14:09:09 <lmat> @op
14:09:09 <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.
14:09:42 *** cartsoftware has joined #gnucash
14:12:30 *** cartsoftware has quit IRC
14:12:57 *** cartsoftware has joined #gnucash
14:14:55 *** wol1 has quit IRC
14:15:37 *** cartsoftware1 has joined #gnucash
14:16:43 <warlord> lmat: I think it should be kept
14:16:45 *** cartsoftware has quit IRC
14:16:55 <warlord> events are always good. We should have more of them :)
14:17:57 <lmat> warlord: cool
14:19:39 <gjanssens> jralls: I am testing the latest nightly on Windows
14:20:09 <gjanssens> good news: graphs display fine in the reports
14:20:19 <gjanssens> I'm slightly worried though about the startup delay
14:21:13 <gjanssens> I have a slow test box and it takes 45 seconds between double-clicking the gnucash icon and the splash screen to appear.
14:21:21 <gjanssens> That's extremely long.
14:21:29 <gjanssens> What's your experience in your test environment ?
14:22:17 <gjanssens> It has been slow for a while, though I don't remember off-hand where it started.
14:22:27 <gjanssens> I'll reinstall 2.6.3 to compare
14:31:38 <gjanssens> Gnucash 2.6.3 needs less than 2 seconds. Big difference...
14:44:27 *** mikee has quit IRC
14:47:57 *** GabrieleV_ has joined #gnucash
14:48:29 *** GabrieleV has quit IRC
14:48:30 *** GabrieleV_ is now known as GabrieleV
14:49:06 *** smw has joined #gnucash
14:50:24 *** jralls has quit IRC
14:50:58 *** jralls has joined #gnucash
14:50:58 *** gncbot sets mode: +o jralls
14:52:54 <jralls> gjanssens: My first guess would be that WebKit 1.8 takes longer to start up than did 1.2, but in theory that shouldn't load until the reports module does.
14:55:07 <jralls> gjanssens: I just started it, it took 2 seconds to the splash screen and 7 to fully loaded and running.
15:01:02 *** mikee_afk has joined #gnucash
15:01:03 *** mikee_afk is now known as mikee
15:01:50 *** cartsoftware1 has quit IRC
15:07:22 <warlord> could it be a load-path thing? Taking longer if the paths aren't there?
15:09:50 <jralls> warlord: It's just as fast if I rename c:\gcdev and f:\gcdev-maint, so probably not.
15:12:45 <warlord> okay
15:14:20 *** wol has joined #gnucash
15:16:02 <jralls> warlord, lmat: We have two hook mechanisms, the closed-session one and a more general one in src/engine/gnc-hooks.h. The only caller for qof_session_call_close_hooks() is src/gnome-utils/gnc-file.c, and every call is followed by gnc_hook_run(HOOK_BOOK_CLOSED, session). That seems an unnecessary duplication, so let's remove the qof_session hook stuff and have only gnc-hooks.
15:17:35 <lmat> jralls: sure thing
15:22:48 *** wol has joined #gnucash
15:22:54 <jralls> lmat: While you're at it, this is a good opportunity for some MVC cleanup: gnc-file.c is in gnome-utils, a GUI directory. Everything it does concerning the session (either the new one or the old one) should be in qof_session.c. The goal is for GUI directories to draw stuff on the screen and capture -- not handle -- user input. Everything else should be part of the affected objects.
15:22:58 *** wol has joined #gnucash
15:23:29 <lmat> jralls: I'll take a look at the file you mention.
15:25:07 *** wol has quit IRC
15:25:26 *** wol has joined #gnucash
15:25:39 <jralls> gjanssens: However, when I run today's build of GC in my XP VM, it takes 35 seconds to the splash screen and less than 10 more to fully loaded.
15:26:26 <gjanssens> jralls: that test is in the same order of magnitude as my XP vm
15:26:36 <gjanssens> Would that suggest an xp thing then ?
15:26:54 * gjanssens assumes your first test result was on Win 7
15:27:04 <jralls> It might indeed. You assume correctly.
15:28:58 <jralls> I built all of the precompiled binaries on the Win7 VM. I wonder if the dll structure is different between the two in a way that might slow down the dynamic linking on XP.
15:42:55 *** aqua___ has quit IRC
15:44:40 *** MechtiIde has quit IRC
15:48:14 *** gjanssens has quit IRC
15:49:32 *** wol has quit IRC
15:55:04 *** lwells has joined #gnucash
15:59:46 *** fell has quit IRC
16:05:00 *** wol has joined #gnucash
16:06:17 *** cartsoftware has joined #gnucash
16:26:49 *** lmat has quit IRC
16:31:48 *** lmat has joined #gnucash
16:40:21 *** cartsoftware has quit IRC
16:50:07 *** Krzysiek_K has left #gnucash
16:55:18 *** mikee has quit IRC
16:59:14 *** mikee_afk has joined #gnucash
16:59:19 *** mikee_afk is now known as mikee
17:20:30 *** aqua___ has joined #gnucash
17:26:19 <lmat> I'm looking at gnc-file.c
17:26:30 <lmat> It's a gui for file management I guess (I haven't read much).
17:27:03 *** ErKa has quit IRC
17:27:26 <lmat> It looks like the gui is supposed to be mainly interacting with the "Engine", right?
17:27:49 <lmat> The gui should only be holding GUI state, and the engine keeps other state, no? Does the engine ever fire events?
17:30:19 *** Ard0nik has quit IRC
17:30:27 *** smw has quit IRC
17:33:54 *** lmat has quit IRC
17:55:01 <jralls> @tell lmat Well, depends what you mean by "fire events". The engine does indeed emit events when certain things happen in order to synchronize with the GUI and other bits of GnuCash. There are (naturally) several mechanisms, including QofEvents, GObjectSignals, and those hooks.
17:55:01 <gncbot> jralls: The operation succeeded.
17:56:23 *** jimvideo has joined #gnucash
17:58:54 *** aqua___ has quit IRC
18:52:42 *** ErKa has joined #gnucash
18:54:24 *** Ardonik has joined #gnucash
19:29:30 *** himaxx has joined #gnucash
19:31:45 *** himaxx has quit IRC
19:35:36 *** Ardonik has quit IRC
19:40:40 *** fell has joined #gnucash
19:40:40 *** gncbot sets mode: +o fell
20:18:34 *** StuM has joined #gnucash
20:19:28 *** jralls has quit IRC
20:20:19 *** jralls has joined #gnucash
20:20:19 *** gncbot sets mode: +o jralls
20:38:04 *** GabrieleV_ has joined #gnucash
20:38:40 *** GabrieleV has quit IRC
20:38:40 *** GabrieleV_ is now known as GabrieleV
21:03:34 *** GabrieleV_ has joined #gnucash
21:03:43 *** GabrieleV has quit IRC
21:03:44 *** GabrieleV_ is now known as GabrieleV
22:48:29 *** Thalo has joined #gnucash
22:51:24 <Thalo> Someone know how to view future transactions as other financial software?
22:57:09 *** [LasaK] has joined #gnucash
23:13:46 *** ErKa has quit IRC
23:18:57 *** mlncn has quit IRC
23:25:00 <fell> Use a crystal bowl?
23:27:56 <fell> Thalo: http://code.gnucash.org/docs/C/gnucash-help/trans-sched.html
23:30:37 <fell> Hm, better to start with http://code.gnucash.org/docs/C/gnucash-guide/txns-sxn1.html
23:33:19 *** Ardonik has joined #gnucash