GnuCash 1.8.1-4 and RedHat 9: Error in main.scm

Francis K Shim belfrancis2001 at yahoo.ca
Fri Apr 11 16:23:22 CDT 2003


Derek Atkins wrote:
> Francis K Shim <belfrancis2001 at yahoo.ca> writes:
>>Ah, I see... so the default should either have been handled before the
>>actual gnucash binary was loaded? (ie: either LANG should have been
>>set or a mandatory "setlocale" done before the scheme libraries were
>>loaded?)
> 
> No.. That's already done by gnucash.  This is a guile-1.6 problem.  I
> sent out another message with the associated patch (which has been in
> CVS for a couple weeks).

Okay, so the patch is actually to a guile scheme module.  Seems like a 
good test case for Guile and it answers my question about which RPM 
package to look forward to for the real fix.

> The problem with guile (or any interpretted language) is that you
> don't know you have problems with the code until you actually try to
> execute that particular line of code.  It's not like C where you can
> get compile-time warnings of syntax errors.  So it makes it very
> difficult to find simple syntax errors like this one (well, it's a
> syntax error in guile-1.6, not in earlier guiles).

Can you correct me if I am wrong... but I am trying to understand the 
architecture here (it is all new to me).  Scheme, an interpreted 
language, is really a Lisp derivative and hence would be using a 
probably well established Scheme interpreter which I gather is the 
umb-scheme package.

The umb-scheme package provides the interpreter as well as standard 
modules (possibly ISO or ANSII or whatever) which are hopefully well 
established and defined.  I saw a reference to SLIB so I will take a 
closer look at that as well.

Guile is a package of Scheme modules that essentially uses the standard 
modules from the umb-scheme module set to provide GUI tools and API for 
applications such as GnuCash.

Okay... so GnuCash, as I am learning, is a conglomerate of compiled and 
interpretive parts.  The compiled "parts" require a longer time to 
release changes, but the interpretive parts are like scripts and more 
flexible to configure on the fly... provided one knows the language and 
what procedures are in the library modules.

The kind of simple syntax error you are refering to should still be 
something that can be deduced by a Scheme-compiler, not interpreter, 
that keeps track of type-safety, argument count even namespace checks. 
I think that this ups the argument for a Scheme-compiler that could at 
least be used for checking; of course, if we go through all that trouble 
we might as well release the compiled Scheme libraries produced by the 
compiler.

I can see the conundrum :-(

Regards,
Frank



More information about the gnucash-user mailing list