<br><div><span class="gmail_quote">On 3/14/06, <b class="gmail_sendername">Attila Lendvai</b> <<a href="mailto:attila.lendvai@gmail.com">attila.lendvai@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="direction: ltr;"><span class="q"><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">nice idea. i've commited something similar (to ucw_public for now,
<br>i'll move it over to ucw_dev if it works for you).
<br></blockquote></div><br></span></div><div style="direction: ltr;">thanks! i had to add a "(when new-value..." to guard setf'ing nil. but there's still some trouble: this code breaks in the debugger with sbcl in the early stage of serving the page (please note the break call/condition):
<br><br>(defmethod (setf mopp:slot-value-using-class) ((new-value standard-component)<br> (class standard-component-class)<br> (instance standard-component)
<br> (slot-def standard-component-effective-slot))<br> ;; let the next method perform the acutal setf'ing<br> (call-next-method)<br> (unless (or (null new-value)<br> (typep new-value 'standard-component))
<br> (break))<br> (when new-value<br> (setf (component.place new-value)<br> (make-place (mopp:slot-value-using-class class instance slot-def))))<br> new-value)<br></div></blockquote></div><br>i've hacked it together... it turned out not to be as simple as it seemed.
<br><br>i've used the boundp'ness of the component-slot.component slot to mark effective slot definitions on which this functionality should be enabled. without this wierd things were happening with backtracking and friends...
<br><br>i don't fully understand everything around backtracking, so please take a deeper look at it, but it works fine for me.<br><br>it's applied to the public repo.<br><br>- attila<br><br>(alias 101 on irc &no 'its not lisp code :)