[cl-gtk2-devel] Build problems

Zach elzacho at gmail.com
Tue Jun 23 17:21:54 UTC 2009


cl-gtk2 people,

I posted on Reddit a while back that I was having trouble building and I
didn't want to be the guy that complains about it not building but doesn't
help make it better.  So here I am.  Sorry to say that I gave it another go
today and still no luck.

I handle all of my Lisp libraries by hand (exactly because package managers
seem to have outdated versions).  You were right that I was behind of
several of the dependencies.  I pulled the latest sources on those.

On my Ubuntu 8.10 system, I noticed that the libgtk2.0 package is version
2.14, which doesn't meet the 2.16 version requirement.  As far as I can tell
2.16 is fairly new and has not made it's way into apt yet.  I am not going
to install outside of the package manager for this, so cl-gtk2 will have to
wait (maybe I can install via the apt package manager somehow?  I am not
very experienced with it).

If you still care, under GNU/Linux Ubuntu running SBCL 1.0.25 I get this as
the first error after (asdf:oos 'asdf:load-op :gtk)

...
; compiling (DEFINE-G-OBJECT-CLASS "GtkUIManager" ...)
; compiling (DEFINE-G-OBJECT-CLASS "GtkWindowGroup" ...)
; compiling (DEFINE-G-OBJECT-CLASS "GtkToggleAction" ...)
; compiling (DEFINE-G-OBJECT-CLASS "GtkRecentAction" ...)
; compiling (DEFINE-G-OBJECT-CLASS "GtkRadioAction" ...)

;
/home/smithzv/dld/src/lisp-pkg/user-interfaces/cl-gtk2/gtk/sbcl-1.0.25-linux-x86-64/gtk.generated-classes.fasl
written
; compilation finished in 0:00:00.613

debugger invoked on a SB-SYS:MEMORY-FAULT-ERROR in thread #<THREAD "initial
thread" RUNNING {100277E431}>:
  Unhandled memory fault at #x0.

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [TRY-RECOMPILING] Recompile gtk.generated-classes and try loading it
again
  1: [RETRY          ] Retry performing #<ASDF:LOAD-OP (:FORCE T)
{1003D10ED1}>
                       on
                       #<ASDF:CL-SOURCE-FILE "gtk.generated-classes"
{10045696B1}>.
  2: [ACCEPT         ] Continue, treating
                       #<ASDF:LOAD-OP (:FORCE T) {1003D10ED1}> on
                       #<ASDF:CL-SOURCE-FILE "gtk.generated-classes"
{10045696B1}>
                       as having been successful.
  3: [ABORT          ] Exit debugger, returning to top level.

(SB-SYS:MEMORY-FAULT-ERROR)
0] :backtrace

0: (SB-INT:SIMPLE-EVAL-IN-LEXENV BT #<NULL-LEXENV>)
1: (SB-EXT:INTERACTIVE-EVAL BT)
2: (SB-DEBUG::DEBUG-EVAL-PRINT BT)
3: (SB-DEBUG::DEBUG-LOOP-FUN)
4: (SB-DEBUG:INTERNAL-DEBUG)
5: (SB-DEBUG::%INVOKE-DEBUGGER #<SB-SYS:MEMORY-FAULT-ERROR {1003A948E1}>)
6: ((LAMBDA ()))
7: (SB-IMPL::CALL-WITH-SANE-IO-SYNTAX #<CLOSURE (LAMBDA #) {1003A94ED9}>)
8: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA #) {1003A94E99}>)
9: (INVOKE-DEBUGGER #<SB-SYS:MEMORY-FAULT-ERROR {1003A948E1}>)
10: (ERROR SB-SYS:MEMORY-FAULT-ERROR)[:EXTERNAL]
11: (SB-SYS:MEMORY-FAULT-ERROR)
12: ("foreign function: #x41F732")
13: ("foreign function: #x41F810")
14: ("foreign function: #x0")
15: ((LAMBDA
         (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-INT:&MORE
          SB-PCL::.DFUN-MORE-CONTEXT. SB-PCL::.DFUN-MORE-COUNT.))
     #<unused argument>
     #<unused argument>
     #<GOBJECT::GOBJECT-CLASS ORIENTABLE>
     17574443330577
     16)
16: ((SB-PCL::FAST-METHOD MAKE-INSTANCE (CLASS))
     #<unavailable argument>
     #<unavailable argument>
     #<STANDARD-CLASS GOBJECT::GOBJECT-CLASS>)[:EXTERNAL]
17: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]509))
19: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK
     #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FDEF39D6469}>
     #S(SB-THREAD:MUTEX
        :NAME "World Lock"
        :%OWNER #<SB-THREAD:THREAD "initial thread" RUNNING {100277E431}>
        :STATE 1))
20: ((SB-PCL::FAST-METHOD SB-MOP:ENSURE-CLASS-USING-CLASS (NULL T))
     #<unavailable argument>
     #<unavailable argument>
     NIL
     ORIENTABLE)[:EXTERNAL]
21: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]509))
22: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK
     #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FDEF39D6769}>
     #S(SB-THREAD:MUTEX
        :NAME "World Lock"
        :%OWNER #<SB-THREAD:THREAD "initial thread" RUNNING {100277E431}>
        :STATE 1))
23: (SB-MOP:ENSURE-CLASS ORIENTABLE)[:EXTERNAL]
24: (SB-PCL::REAL-LOAD-DEFCLASS
     ORIENTABLE
     GOBJECT::GOBJECT-CLASS
     NIL
     ((:NAME ORIENTATION :READERS (ORIENTABLE-ORIENTATION) :WRITERS
       ((SETF ORIENTABLE-ORIENTATION)) :INITARGS (:ORIENTATION)
       :G-PROPERTY-NAME "orientation" :G-PROPERTY-TYPE "GtkOrientation"
...))
     (:G-TYPE-NAME "GtkOrientable" :G-INTERFACE-P T :G-TYPE-INITIALIZER
      "gtk_orientable_get_type")
     (ORIENTABLE-ORIENTATION)
     ((SETF ORIENTABLE-ORIENTATION))
     (ORIENTATION)
     #S(SB-C:DEFINITION-SOURCE-LOCATION
        :NAMESTRING
"/home/smithzv/dld/src/lisp-pkg/user-interfaces/cl-gtk2/gtk/gtk.generated-classes.lisp"
        :TOPLEVEL-FORM-NUMBER 129
        :PLIST NIL)
     T)

I also played around on OS X (which I see you do not support) also running
1.0.25 by adding the dylib style shared object files.  This reported several
SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERRORs which sounds more like an unmet
library version dependency.  Those look like this:

Attempt to call an undefined alien function.
   [Condition of type SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERROR]

Restarts:
...

Backtrace:
  0: (SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERROR)
  1: ("foreign function: call_into_lisp")
  2: ("foreign function: funcall0")
  3: ("foreign function: undefined_alien_function")
  4: (GTK::GTK-TEST-REGISTER-ALL-TYPES)
...

Also, I would like to say that there are several Lisp libraries that provide
gtk, gdk, and the like (just not very well, in my experience).  Some have
also taken the same names for there .asd files (gtk.asd, gdk.asd, glib.asd,
etc.), which means that one cannot have your library coexist with the other
in the same asdf registry since asdf doesn't know which .asd to use.  It is
just a little annoying.

I hope some of this helps.  If you have any questions or things you want me
to try, I would be happy to do so.  I know absolutely nothing about GTK, but
I would be very happy to have a gtk binding that works for me and the rest
of the CL community, so I wish you the best of luck,

Zach S
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cl-gtk2-devel/attachments/20090623/804fdbc9/attachment.html>


More information about the cl-gtk2-devel mailing list