[PATCH] silence startup with guile-1.8

Bill Nottingham notting at redhat.com
Tue May 9 21:18:44 EDT 2006


Starting up gnucash with guile-1.8 yields the following noise:

WARNING: (srfi srfi-35): `every' imported from both (oop goops util) and (srfi srfi-1)
WARNING: (srfi srfi-35): `any' imported from both (oop goops util) and (srfi srfi-1)
WARNING: (g-wrap util): imported module (srfi srfi-34) overrides core binding `raise'
WARNING: (g-wrap): imported module (srfi srfi-34) overrides core binding `raise'
WARNING: (g-wrap rti): imported module (srfi srfi-34) overrides core binding `raise'
WARNING: (g-wrap rti): `class-name' imported from both (oop goops) and (g-wrap)
WARNING: (g-wrap c-types): imported module (srfi srfi-34) overrides core binding `raise'
WARNING: (g-wrap c-types): `class-name' imported from both (oop goops) and (g-wrap)
WARNING: (g-wrap enumeration): `class-name' imported from both (oop goops) and (g-wrap)
WARNING: (g-wrap guile): `class-name' imported from both (oop goops) and (g-wrap)
WARNING: (g-wrap compat): `class-name' imported from both (oop goops) and (g-wrap)
WARNING: (g-wrap ws standard): `class-name' imported from both (oop goops) and (g-wrap)
WARNING: (g-wrap guile ws standard): `class-name' imported from both (oop goops) and (g-wrap)
WARNING: (gnucash app-utils): imported module (gnucash main) overrides core binding `string-join'
WARNING: (gnucash app-utils): imported module (ice-9 slib) overrides core binding `string-capitalize!'
WARNING: (gnucash app-utils): imported module (ice-9 slib) overrides core binding `string-capitalize'
WARNING: (gnucash app-utils): imported module (ice-9 slib) overrides core binding `string-upcase!'
... ~ 500 lines suppressed ...
WARNING: (gnucash business-gnome): imported module (gnucash main) overrides core binding `string-join'
WARNING: (gnucash price-quotes): imported module (gnucash main) overrides core binding `string-join'
gnucash: [M] "Found Finance::Quote version "1.08

Obviously, it's a few more warnings than we'd like. From the guile-1.8.0
NEWS file:

------------------------------------------------------
** The module system now checks for duplicate bindings.

The module system now can check for name conflicts among imported
bindings.

The behavior can be controlled by specifying one or more 'duplicates'
handlers.  For example, to make Guile return an error for every name
collision, write:

(define-module (foo)
  :use-module (bar)
  :use-module (baz)
  :duplicates check)

The new default behavior of the module system when a name collision
has been detected is to

 1. Give priority to bindings marked as a replacement.
 2. Issue a warning (different warning if overriding core binding).
 3. Give priority to the last encountered binding (this corresponds to
     the old behavior).

If you want the old behavior back without replacements or warnings you
can add the line:

  (default-duplicate-binding-handler 'last)

to your .guile init file.
------------------------------------------------------

... so, that's what I do in the attached patch. Arguably, some of this
could be cleaned up in the modules themselves, as some of the warnings
are from included-with-guile ice9 or srfi themselves. But the hammer
approach is simpler.

Bill
-------------- next part --------------
--- gnucash-1.9.5/src/scm/main.scm.foo	2006-05-09 21:09:19.000000000 -0400
+++ gnucash-1.9.5/src/scm/main.scm	2006-05-09 21:09:55.000000000 -0400
@@ -15,6 +15,8 @@
 ;; 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
 ;; Boston, MA  02110-1301,  USA       gnu at gnu.org
 
+(default-duplicate-binding-handler 'last)
+
 (define-module (gnucash main))
 
 (use-modules (ice-9 slib))


More information about the gnucash-devel mailing list