Bob Willan wrote:
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.
Glad to hear it worked for you now. I added a paragraph to the guide
about installing a recent sbcl.
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?
Yep, exactly. Thanks for pointing that out. I added to the guide how
to include (require 'asdf) (require 'asdf-install) in your .sbclrc.
I also created a section warning potential users that it might be
difficult ;-)
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!)
A great testimony to open source :) Maybe you should check out qemu.
It is a little harder to set up than VMWare, but does a pretty good job
these days. Rumour has it you can even run OSX 10.5 Tiger in there.
Cheers,
Peter
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)
[EMAIL PROTECTED]:~/.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.
[EMAIL PROTECTED]:~/.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?
[EMAIL PROTECTED]:~/.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
_______________________________________________
cells-gtk-devel site list
cells-gtk-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/cells-gtk-devel