On Dec 31, 2011, at 1:59 AM, Geert Janssens wrote:

> Op vrijdag 30 december 2011 15:18:30 schreef John Ralls: 
>> As you can see, it's allocating a string on the heap and returning it, so
>> either the strings are already getting freed or we're already leaking them.
>> 
>> So I went ahead and built swig with the patch from the bug and gave it a
>> spin. It did indeed silence the deprecation warnings in guile-1.8.8.
>> 
> That's already good.
> 
>> Unfortunately guile-2.0 appears to have changed the way that extensions are
>> loaded, because with guile-2.0 installed make check fails with
>> 
>> ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
>> ;;;       or pass the --no-auto-compile argument to disable.
>> ;;; compiling
>> /Volumes/RAID1/Gnucash-Build/Gnucash-svn/src/gnucash-git/src/engine/test/./
>> test-create-account.scm ;;; note: source file
>> /Volumes/RAID1/Gnucash-Build/Gnucash-svn/src/gnucash-git/src/gnc-module/gnc
>> -module.scm ;;;       newer than compiled
>> /Users/john/.cache/guile/ccache/2.0-LE-4-2.0/Volumes/RAID1/Gnucash-Build/Gn
>> ucash-svn/src/gnucash-git/src/gnc-module/gnc-module.scm.go ;;; compiling
>> /Volumes/RAID1/Gnucash-Build/Gnucash-svn/src/gnucash-git/src/gnc-module/gnc
>> -module.scm ;;; WARNING: compilation of
>> /Volumes/RAID1/Gnucash-Build/Gnucash-svn/src/gnucash-git/src/gnc-module/gnc
>> -module.scm failed: ;;; ERROR: no code for module (sw_gnc_module)
>> ./test-create-account: line 2: 80147 Bus error               guile -l
>> $SRCDIR/test-create-account.scm -c "(exit (run-test))"
>> 
>> I poked at it briefly, but it couldn't get it to work.
> 
> Have you tried with environment variable GUILE_AUTO_COMPILE=0 set ? You may 
> need to remove the already autocompiled modules from /Users/john/.cache/guile 
> also.
> 
> I read somewhere [1] that guile 2 can either precompile modules for 
> performance or use the old interpreted mechanism. I never found explicit 
> documentation on how to select one or the other, but as I understand it you 
> have to disable auto compilation to get the interpreter.

Yes. It only reduces the spew, it doesn't fix the segfault at the end.

The key is in "ERROR: no code for module (sw_gnc_module)", and after debugging 
into it with the Guile interpreter I've established that Guile 2.0 changes the 
way that it loads C libraries. I could only get (dynamic-link) to find a 
library in /usr/lib. It ignores LD_LIBRARY_PATH and DYLD_LIBRARY_PATH and won't 
load even with an absolute path (though the documentation implies that it 
should).

I'm going to have to go code-diving in the Guile-2 sources to figure this out, 
but not right now.

Regards,
John Ralls



_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to