[cells-gtk-devel] "First steps" how to compile problem - fixed

Bob Willan bwillan at matrix-systems-inc.com
Fri Feb 1 21:53:13 UTC 2008


Peter and Friedrich,

Thanks to both of you for your help.  It was the older version of SBCL 
that was the problem.  I've got a working demo now, too cool.

Peter, you might mention on your Getting Started page that (require :asdf) 
might be needed before anything else.  The Debian pkg was setup so I 
didn't need to do that, but the sbcl 1.0.12 compiled tar I downloaded 
did - I received a "Don't know how to REQUIRE CELLS." error without it 
when I typed (require 'cells).  I suppose maybe I should add that to a 
sbclrc initialization file so its always there?

Maybe I'll think about moving up to Debian Unstable (except the kernel, 
because my VMWare Workstation won't work correctly with the latest 
kernels - my only commercial license and its the only software I have 
problems with that I can't get around or fix!)

Thanks, again,
  Bob

===================================
On Friday 01 February 2008, Peter Hildebrandt wrote:
> 
> Hi Bob,
> 
> Bob Willan wrote:
> > I've been thinking about getting into Lisp and Cells for a while, and 
your 
> > how-to prompted me to give it a try now.  Not to mention all the work 
> > you've been doing, making cells-gtk look like more of a going concern 
> > now.  Thanks for that.
> 
> Thanks for the positive feed back.  Though I see that I might have 
> opened a can of worms here ;)
> 
> > I followed all your instructions, and when I had a compile problem, I 
> > removed everything, downloaded again/updated from cvs, and tried again 
> > from scratch, with the same results.  I'm new at lisp and must say the 
> > compile errors and debugger aren't exactly intuitive to me, though I'd 
> > guess it involves the cffi function call :(
> 
> Ok, I since you included all the relevant logs, I will try to shed some 
> light on it.
> 
> > My compile stops in tree-view.lisp, as the lines below show.  I am 
using 
> > straight Debian Etch (32bit 2.6.18-5-k7 kernel), gcc that came with it 
> > v4.1.2 20061115 (prerelease)(Debian 4.1.1-21), SBCL 0.9.16, cffi 
0.9.2, 
> > and the cells/cells-gtk from cvs using the commands on your site.
> 
> As Friedrich pointed out, try using a newer sbcl.  You can download 
> binary realeases at sbcl.org.  I have not tested anything with a pre 
> 1.0.x version of SBCL.
> 
> > ;; I've listed my links (without the permissions/owner/etc to better
> > ;; read the lines, but permissions were wide open)
> > 
> > bob at work1:~/.sbcl/site$ ls -la
> > total 20
> > drwxr-xr-x 5 bob bob 4096 2008-01-30 09:32 .
> > drwxr-xr-x 4 bob bob 4096 2008-01-28 23:53 ..
> > drwxr-xr-x 6 bob bob 4096 2008-01-30 23:07 cells
> > drwxr-xr-x 8 bob bob 4096 2008-01-30 23:07 cells-gtk
> > drwxr-xr-x 8 bob bob 4096 2008-01-30 09:33 cffi_0.9.2
> 
> ok, that looks nice and clean.
> 
> > bob at work1:~/.sbcl/site$ ls -la ../systems/
> > total 8
> >  cells.asd            -> ../site/cells/cells.asd
> >  cells-gtk.asd        -> ../site/cells-gtk/cells-gtk/cells-gtk.asd
> >  cffi.asd             -> ../site/cffi_0.9.2/cffi.asd
> >  cffi-uffi-compat.asd -> ../site/cffi_0.9.2/cffi-uffi-compat.asd
> >  gtk-ffi.asd          -> ../site/cells-gtk/gtk-ffi/gtk-ffi.asd
> >  ph-maths.asd         -> ../site/cells-gtk/ph-maths/ph-maths.asd
> >  pod-utils.asd        -> ../site/cells-gtk/pod-utils/pod-utils.asd
> >  
test-gtk.asd         -> ../site/cells-gtk/cells-gtk/test-gtk/test-gtk.asd
> >  utils-kt.asd         -> ../site/cells/utils-kt/utils-kt.asd
> 
> That's perfect, too.  BTW, without the correct permissions, you could 
> not have gotten that far.  See below.
> 
> 
> ;;----------------------------------------------------------------------------
> > ;; I wasn't sure if these warnings when compiling gtk-ffi are
> > ;; okay/expected or not?
> > 
> > bob at work1:~/.sbcl/site/cells-gtk/gtk-ffi$ make
> > gcc -fPIC -c gtk-adds.c `pkg-config --cflags --libs gtk+-2.0`
> > gtk-adds.c: In function 'gtk_adds_color_new':
> > gtk-adds.c:77: warning: incompatible implicit declaration of built-in 
> > function 'malloc'
> > gcc: -lgtk-x11-2.0: linker input file unused because linking not done
> > gcc: -lgdk-x11-2.0: linker input file unused because linking not done
> > gcc: -latk-1.0: linker input file unused because linking not done
> > gcc: -lgdk_pixbuf-2.0: linker input file unused because linking not 
done
> > gcc: -lm: linker input file unused because linking not done
> > gcc: -lpangocairo-1.0: linker input file unused because linking not 
done
> > gcc: -lfontconfig: linker input file unused because linking not done
> > gcc: -lXext: linker input file unused because linking not done
> > gcc: -lXrender: linker input file unused because linking not done
> > gcc: -lXinerama: linker input file unused because linking not done
> > gcc: -lXi: linker input file unused because linking not done
> > gcc: -lXrandr: linker input file unused because linking not done
> > gcc: -lXcursor: linker input file unused because linking not done
> > gcc: -lXfixes: linker input file unused because linking not done
> > gcc: -lpango-1.0: linker input file unused because linking not done
> > gcc: -lcairo: linker input file unused because linking not done
> > gcc: -lX11: linker input file unused because linking not done
> > gcc: -lgobject-2.0: linker input file unused because linking not done
> > gcc: -lgmodule-2.0: linker input file unused because linking not done
> > gcc: -ldl: linker input file unused because linking not done
> > gcc: -lglib-2.0: linker input file unused because linking not done
> > gcc -shared -o libcellsgtk.so gtk-adds.o `pkg-config --cflags --libs 
> > gtk+-2.0`
> 
> Yep, perfectly fine.  Same thing for me.
> 
> > ;;----------------------------------------------------
> > ;; Compile log starting at tree-view.lisp
> 
> ... which means you have successfully compiled cells, cffi, and gtk-ffi 
> (which are the major systems r3equired by the actual cells-gtk system). 
>   So the issue should be pretty local to that file.
> 
> If you check cells-gtk/cells-gtk.asd you will notice that tree-view is 
> one of the last files mentioned, so the major part of cells-gtk got 
> compiled, too.
> 
> > ; compiling 
file "/home/bob/.sbcl/site/cells-gtk/cells-gtk/tree-view.lisp" 
> > (written 27 JAN 2008 03:01:05 PM):
> > ; compiling (IN-PACKAGE :CGTK)
> > ; compiling (DEF-OBJECT LIST-STORE ...)
> > ; compiling (DEF-OBJECT TREE-STORE ...)
> > ; compiling (DEFUN FAIL ...)
> > ; compiling (DEF-WIDGET TREE-VIEW ...)
> > ; compiling (DEF-CLEAN-UP (SELF TREE-VIEW) ...)
> > ; compiling (DEF-C-OUTPUT TREE-MODEL ...)
> > ; compiling (DEF-C-OUTPUT EXPAND-ALL ...)
> > ; compiling (CFFI:DEFCALLBACK TREE-VIEW-ITEMS-SELECTOR ...)
> > ; compiling (DEFMETHOD GET-SELECTION ...)
> > ; compiling (DEF-C-OUTPUT SELECTION-MODE ...)
> > ; compiling (CFFI:DEFCALLBACK TREE-VIEW-SELECT-HANDLER ...)
> > ; compiling (DEF-C-OUTPUT ON-SELECT ...)
> > ; compiling (DEFMODEL LISTBOX ...)
> > ; compiling (DEFMETHOD ITEMS ...)
> > ; compiling (DEFMETHOD (SETF ITEMS) ...)
> > ; compiling (DEFUN MK-LISTBOX ...)
> > ; compiling (DEF-C-OUTPUT SELECT-IF ...)
> > ; compiling (DEF-C-OUTPUT ROOTS ...)
> > ; compiling (DEFMODEL TREEBOX ...)
> > ; compiling (DEFUN MK-TREEBOX ...)
> > ; compiling (DEF-C-OUTPUT SELECT-IF ...)
> > ; compiling (DEF-C-OUTPUT ROOTS ...)
> > ; compiling (DEFUN GTK-TREE-STORE-SET-KIDS ...)
> > ; compiling (CFFI:DEFCALLBACK TREE-VIEW-RENDER-CELL-CALLBACK ...)
> > ; compiling (DEFUN ITEM-FROM-PATH ...)
> > ; compiling (DECLAIM (OPTIMIZE #))
> > ; compiling (DEFUN GTK-TREE-VIEW-RENDER-CELL ...)
> > ; compiling (DEFSTRUCT RENDERER ...)
> > ; compiling (LET (#) ...)
> 
> Ok, if you wish to look into this in more detail, open tree-view.lisp 
> and scroll to line 302.  The offending instruction is:
> 
> 
> (let ((renderers (make-hash-table)))
>    (defun register-renderer-data (renderer data)
>      (setf (gethash (cffi-sys:pointer-address renderer) renderers) 
data))
>    (defun recover-renderer-data (renderer)
>      (gethash (cffi-sys:pointer-address renderer) renderers)))
> 
> Nothing spectacular here.  The pointer-address function can't be too 
> complex.
> 
> > debugger invoked on a TYPE-ERROR in thread #<THREAD "initial thread" 
> > {A7BD4C1}>:
> >   The value NIL is not of type SB-C::PHYSENV.
> 
> The error is in a SB-xxx package.  THat is often a sign that there is 
> nothing wrong with your code, but the problem is at a deeper level. 
> Common solutions are (as Friedrich already pointed out):
> 
> . update SBCL to something more current.  If in doubt, remove the debian 
> package first to make sure the current sbcl is called
> 
> . remove stale fasl files.  These are something like C's object files: 
> compiled code used instead of the source file.  Just do rm *.fasl 
> **/*.fasl to remove all compiled files in the current directory and all 
> subdirs.  Then restart sbcl.  Everything will be compiled freshly from 
> scratch
> 
> . you have some leftovers in your current working image.  Restart sbcl 
> to start clean
> 
> > 1: (SB-C::LET-CONVERT
> 
> It works on the let with some internal function
> 
> ...
> 
> > 10: (SB-C::COMPILE-TOPLEVEL
> >      (#<SB-C::CLAMBDA
> >         :%SOURCE-NAME SB-C::.ANONYMOUS.
> >         :%DEBUG-NAME (SB-C::TOP-LEVEL-FORM
> >                       (LET #
> >                         #
> >                         #))
> >         :KIND :TOPLEVEL
> >         :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)>
> >         :WHERE-FROM :DEFINED
> >         :VARS NIL {B6E2001}>)
> >      NIL)
> 
> This is the part where the compiler (SBcl-Compiler) compiles the let 
form.
> 
> So in other words, the SBCL compiler chokes at this rather simple let 
> clause.  And you say this error persists, even if you recompile 
> everything from scratch.
> 
> Therefore my guess really is that the problem is with SBCL.  Try the 
> newest SBCL.  If the problem persists, we should try to isolate it and 
> post on the SBCL list.
> 
> Peter
> 
> 





More information about the cells-gtk-devel mailing list