On Gnucash, G2, and Architecture

Derek Atkins warlord at MIT.EDU
Thu Jun 9 10:07:34 EDT 2005

Chris Shoemaker <c.shoemaker at cox.net> writes:

> On Wed, Jun 08, 2005 at 08:34:10AM -0400, Derek Atkins wrote:
>> Chris Shoemaker <c.shoemaker at cox.net> writes:
>> > BTW, my mini-projects at the moment are 1) looking at what's needed to
>> > remove GnomeCanvas from the register.  2) looking at what's needed to
>> > move the execution entry-point from guile to a C main.  But more 1)
>> > than 2).
>> I think the simplest way to achieve #2 is to build our own
>> "/usr/bin/guile" interpreter.  We could even build the various runtime
>> paths into the binary.  As our binary would use the same libguile as
>> the rest of the code, it would separate us from the issue of
>> /usr/bin/guile changing out from under us..  It would also be a start
>> at fixing the problem as a whole, but it would be an easy first step.
>> Granted, if we don't expect a guile 1.7 or 1.8 anytime soon then it
>> might not be an issue.
> I really don't understand the whole issue well enough to respond
> meaningfully at this time, but if I look into #2, I'll come back
> and reread this.

Find about 30 minutes where we can sit on IRC and I'll happily give
you all the gorey details.  The short answer is that guile-1.3.4,
guile-1.4, and guile-1.6 all have different libguile sonames, and they
are incompatible.  However there is only one /usr/bin/guile.  The
Gnucash "modules" are compiled against some particular version of
guile and link against that version of libguile.  If /usr/bin/guile is
NOT that particular version of guile (you may have multiple libguile's
installed) then Boom!

>> I'm concerned that your #1 mini-project would cause a lot of code
>> churn and introduce a lot of potential bugs in the short term.  But
>> please come up with a design document before you start and we'll see
>> what you plan to do.  It might be worthwhile to _just fix this_ if the
>> risk is low and the timeframe is short.  Otherwise I'd prefer to wait
>> until after the 1.10 release.
> You're right.  Converting the register is not something you'd want to
> do right before releasing g2.  Right now, I'm still investigating the
> feasibility of using GncTreeView and GtkTreeModel to make a register.
> Initially, there are several things that make this very attractive, but
> there are also 3 or 4 issues that may be show-stoppers.  If I convince
> myself that it is indeed feasible, I'll whip up a prototype demo.  In
> any case, there's no way that this investigation should impede g2
> progress.

Cool.  I'm definitely keen in seeing the register code cleaned up.  It
would be nice if the amount of code required to build a _particular_
register was fairly small.

However I'd still rather see you spend your energies helping us get g2
out the door ;)

> -chris


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list