On Mon, 29 Sep 2003, Mark A. Biggar wrote:

> Dan Sugalski wrote:
>
> > Okay, here's an issue for everyone. I'm writing the MMD subsystem, at
> > least the parts needed for operator overloading, and I'm coming across the
> > need to defer adding functions. For example, the Float class has functions
> > for the Integer class, and vice versa, and we can't guarantee that both
> > classes are loaded in when the functions are going to be installed. I
> > don't want to discard the functions, though, since they should be in force
> > when both classes are available.
> >
> > So, I've two options:
> >
> > 1) When one or both of the classes a MMD function is installed for don't
> > exist, we give them both class numbers (but don't load them) so when the
> > classes *are* later loaded they already have numbers
> >
> > 2) We put the functions in a 'pending' list and install them when (if) the
> > missing classes are later loaded
> >
> > I can see it going either way, and I'm not sure which would be better.
> > (It's important to note that this is strictly an internal issue, since
> > bytecode'll never know one way or the other) Opinions?
>
> Isn't there also the option to force load the missing class(es)
> recursively?

We could, but I don't want to do that here. Just because a PMC class
presents functions for other PMC classes doesn't mean we necessarily want
to load those classes--just to have the functions available if those
classes are ultimately loaded. I'd prefer to leave class loading to
explicit "load this class" code, rather than have it implicit. Besides,
it's distinctly possible that many of the functions will be for classes
that aren't even available.

                                        Dan

Reply via email to