From: Clinton Ebadi <clinton@unknownlamer.org>
Cc: guile-user@gnu.org
Subject: Re: GOOPS %modify-[instance|class]
Date: Sun, 12 Jan 2003 16:45:09 -0500 [thread overview]
Message-ID: <200301121645.09362.clinton@unknownlamer.org> (raw)
In-Reply-To: <xy7ptr5nwjx.fsf@nada.kth.se>
On Friday 10 January 2003 05:12, Mikael Djurfeldt wrote:
> Clinton Ebadi <clinton@unknownlamer.org> writes:
> > I think %modify-instance and -class should be public.
>
> Could you be more specific why? These seem pretty strange and magical
> to me, and might change as the implementation evolves...
They swap the class in place. It seems that if I don't do that then all of my
objects that point to the class being changed remain being part of that class
and then only new objects can be created with the changed class. My
understanding of the MOP is a bit fuzzy so I'm probably wrong.
> > I specialized change-class and change-object-class (to the same
> > thing, just to be safe because the manual says either one may be
> > called but not both).
>
> The manual shouldn't mention change-object-class since that is a
> private part of the implementation. BTW, change-class is a generic
> function while change-object-class is a prociedure.
See the GOOPS Manual, Mop Specification, Class Redefinition. It says "[*fixme*
Actually it sometimes calls change-class and sometimes change-object-class,
and I don't understand why.]"
>
> > I seem to have a problem: when I return the updated class, all my
> > pointers to the old class are invalidated! And then it seems that
> > GOOPS continues in an infinite loops updated the same objects over
> > and over again.
>
> Could you please explain what you want to do. You talk about
> returning an updated class. But this only happens if one is using
> change-class to change the metaclass of a class instance. The normal
> job for change-class is to change the class of an instance.
I meant an instance (sorry about that).
> Could you please give me enough information to reproduce the infinite
> loop you are talking about?
My code is at http://unknownlamer.org/files/temp/serialize.scm (it has other
problems and after I get the class redefinition to work it still won't work
but I'd just have to do one more thing). I modified it and now it says slot
'object is unbound (I marked the line this happens at in the source). I
didn't want anyone to see it because the code is a bit of a hack and
sucks...(sorry for taking so long to reply but I've had to put in really long
shifts at work the last few days)
--
http://unknownlamer.org
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
next prev parent reply other threads:[~2003-01-12 21:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-09 2:51 GOOPS %modify-[instance|class] Clinton Ebadi
2003-01-10 10:12 ` Mikael Djurfeldt
2003-01-12 21:45 ` Clinton Ebadi [this message]
2003-01-15 12:38 ` Mikael Djurfeldt
-- strict thread matches above, loose matches on Subject: below --
2003-01-20 4:01 Clinton Ebadi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200301121645.09362.clinton@unknownlamer.org \
--to=clinton@unknownlamer.org \
--cc=guile-user@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).