On Sep 4, 2009, at 12:55 AM, Andreas Rottmann wrote:
It's part of the GLib product at GNOME's bugzilla[0], select the
"introspection" component in that form.
As you're to my knowledge the first person to try spells' FFI
abstraction on OS X,
And the first person to try Ikarus, GTK, gobject-introspection, etc.,
on Snow Leopard, so, problems can be anywhere and everywhere.
you'll have to tweak
"systems/spells/foreign/config.sls.in" to account for the new platform
(in the `c-type-alignof' function):
When running sbank's testsuite (or spells', for that matter), you
should
encounter an error by c-type-alignof: "unknown target", with your
platform's target as single irritant. I think just adding the reported
target to the first `cond' branch should work for OS X (from what I
can
tell from the links at [1]):
I'm building everything in 32-bit, so, I added ("darwin10.0.0" "i686")
to the second clause, not the first. I double checked with [1] re the
32-bit ABI to get:
--- a/spells/foreign/config.sls.in
+++ b/spells/foreign/config.sls.in
@@ -49,7 +49,8 @@
(cond
((member target '(("linux-gnu" "x86_64")))
c-type-sizeof)
- ((member target '(("linux-gnu" "i686")))
+ ((member target '(("linux-gnu" "i686")
+ ("darwin10.0.0" "i686")))
(lambda (type)
(let ((size (c-type-sizeof type)))
(if (= size 8)
Now sbank hardcodes the foreign library names and extensions, so I had
to get around that too. This was my temporary fix:
--- a/support/shlibs.sls
+++ b/support/shlibs.sls
@@ -33,10 +33,10 @@
(or (dlopen name)
(error 'checked-dlopen "unable to open shared library" name
(dlerror))))
- (define libgir (checked-dlopen "libgirepository-1.0.so.0"))
- (define libgobject (checked-dlopen "libgobject-2.0.so.0"))
- (define libglib (checked-dlopen "libglib-2.0.so.0"))
- (define libgthread (checked-dlopen "libgthread-2.0.so.0"))
+ (define libgir (checked-dlopen "libgirepository-1.0.0.dylib"))
+ (define libgobject (checked-dlopen "libgobject-2.0.0.dylib"))
+ (define libglib (checked-dlopen "libglib-2.0.0.dylib"))
+ (define libgthread (checked-dlopen "libgthread-2.0.0.dylib"))
[basically "libfoo-n-n"+".so.0" => "libfoo-n.n"+".0-dylib" but that's
still too fragile.]
Now the fun part! These 4 tests in sbank crash the system:
(test-equal (list #t #f)
(list (test-strv-in '#("1" "2" "3"))
(test-strv-in '#("0" "1" "2"))))
(test-equal '#("thanks" "for" "all" "the" "fish")
(test-strv-out))
(test-equal '#("1" "2" "3")
(test-strv-outarg))
(test-equal '("1" "2" "3")
(test-glist-nothing-return))
Any idea as to what they may be doing in common that causes the crash?
What does (test-glist-nothing-return) do?
Thanks in advance.
Aziz,,,