[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