[cells-gtk-devel] cells-gtk3 without libcellsgtk / threads

Peter Hildebrandt peter.hildebrandt at gmail.com
Mon May 19 10:59:33 UTC 2008


Ingo,

thanks again for the patch.  I it is now in CVS.

> 1. If libcellsgtk is not used (gtk-init...) never seems to be called.

Yep, stupid typo of mine.  Sorry about that.

> 2. Also if used in a single threading environment (like clisp)
>   (g-thread-init...) and (gdk-threads-init) do get called which
>   results in an error.

Hmm, I never changed that, I think.  They were always called in
cells-gtk if IIRC.  However, if it does no harm to leave them out,
then that seems the right thing to do.

Are you on windows or linux?  I'm just guessing, but it might be the
case that it is a GTK issue and not a cells-gtk issue whether to call
them:  On linux GTK supports threads, so it might be necessary to call
those (even if you don't use threads yourself).  On windows it
doesn't, so maybe you can't call them.  In this case, we should
condition on :unix vs. :windows.  But again, I'm just guessing.  If
you're on linux, then forget everything I said.


As to the call-next-method thing, the background is this:  Cells uses
progn method combination for observers, which is not available on
clisp (or at least, used to not be available on clisp).

Therefore cells needed to imitate it by using standard method
combination and (call-next-method) in every method.  You see a lot of
these calls in cells-gtk:

fritz at babyfoot:~/cells-gtk3/cells-gtk$ grep clisp *.lisp
actions.lisp:  #+clisp (call-next-method))
buttons.lisp:  #+clisp (call-next-method))
buttons.lisp:  #+clisp (call-next-method))
...

However, I see that cells3 only uses this imitation on corman lisp now:

fritz at babyfoot:~/lisp/cells3.cvs$ grep progn cells.lisp
  (:method-combination progn))
(defmethod slot-value-observe #-(or cormanlisp) progn

So maybe this means that clisp now supports progn method combination,
which the error message suggests:

#<STANDARD-GENERIC-FUNCTION SLOT-VALUE-OBSERVE>: CALL-NEXT-METHOD is
invalid within PROGN methods

Than it would be time to remove all those calls to call-next-method
from cells-gtk.  I'd suggest you just go ahead and deactivate all
those calls (e.g by conditioning on :no-progn-combination instead of
:clisp), which should remove those warnings.

Cheers,
Peter



More information about the cells-gtk-devel mailing list