[Bese-devel] defaction :isolate problem (followup to actions and browser refresh)

Attila Lendvai attila.lendvai at gmail.com
Fri Feb 24 00:32:14 UTC 2006


i'm back with a little more info. i've spent some time trying to debug it
myself, but no luck yet.

i've got this action:

(defaction invalidate-image :isolate ((foo foo))
  (log.debug "Invalidating image")
  (setf (validp (slot-value self 'image)) false))

it macroexpands to this:

(PROGN
 (IT.BESE.UCW::%DEFACTION INVALIDATE-IMAGE-G6947
                          ((FOO FOO))
                          (LOG.DEBUG "Invalidating image")
                          (SETF (VALIDP (SLOT-VALUE SELF 'IMAGE)) FALSE))
 (IT.BESE.UCW::%DEFACTION INVALIDATE-IMAGE
                          ((FOO FOO))
                          (IT.BESE.UCW::RUN-ISOLATED FOO

#'INVALIDATE-IMAGE-G6947
                                                     FOO)))

yet, if i press C-c-c in slime, i get a warning like this:

STYLE-WARNING: redefining INVALIDATE-IMAGE-G0 in DEFGENERIC
STYLE-WARNING: redefining INVALIDATE-IMAGE-G0 :PRIMARY (FOO) in DEFMETHOD
STYLE-WARNING: redefining INVALIDATE-IMAGE in DEFGENERIC
STYLE-WARNING: redefining INVALIDATE-IMAGE :PRIMARY (FOO) in DEFMETHOD

notice the method name, i have no idea what's going on. if i turn on call/cc
trace i can see that arnesi is trying to look up the *-G0 names:

Evaluating #'DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G0.
Got T
Evaluating DWIM-PRESENTATION-TEST::FOO.
Got #<DWIM-PRESENTATION-TEST::FOO {D0B4CE9}>
Calling function IT.BESE.UCW::RUN-ISOLATED with arguments
(#<DWIM-PRESENTATION-TEST::FOO {D0B4CE9}>
                                                           T

#<DWIM-PRESENTATION-TEST::FOO {D0B4CE9}>)

in the first line, the function lookup, silently turns into a T?!

and then i naturally get the error: "The function T is undefined."

DWIM-TEST> (apropos "invalidate-image")
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6942
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6940
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6944
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6937
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6946
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6943
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6936
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6947
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G0 (fbound)
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6939
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE-G6945
DWIM-PRESENTATION-TEST::INVALIDATE-IMAGE (fbound)
; No value

btw, is it necessary to generate a function definition at each macroexpand?
couldn't the :isolate code be wrapping the action body inside the /cc code?
but this is only a side-track that i would play with if it were working.

i hope someone with more insight can spot the bug from these... or am i
misusing something?

thanks for any help,

- attila

(alias 101 on irc &no 'its not lisp code :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/bese-devel/attachments/20060224/25fd5784/attachment.html>


More information about the bese-devel mailing list