This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: Trouble understanding define (!)
Mikael Djurfeldt <mdj@mdj.nada.kth.se> writes:
> Suggested new solution:
>
> GFs in different modules are distinct objects, but GFs whose names
> "meet" through the module system share methods."
>
> More precisely:
>
> 1. Every module has it's own GF object.
>
> 2. Each GF refers to a "pool" of methods.
>
> 3. Many GFs can refer to the same pool of methods.
>
> 4. If a method is added to one GF, it is visible for all other GFs
> using the same pool.
>
> 5. Each GF created by `define-generic' initially has a private pool.
>
> 6. Exporting GF1 bound to NAME in module A to module B means binding
> GF0 to name NAME in module B and letting GF0 and GF1 refer to the
> same pool.
>
> 7. Exporting GF1, GF2, ..., GFn bound to NAME in modules A1, A2, ...
> to module B means binding GF0 to name NAME in module B and letting
> GF0, GF1, ..., GFn refer to the same pool.
Two questions now:
* Is this semantics too complex and obscure?
* How do we combine this with separate compilation of modules?
(This is an interesting question also with regard to the current
GOOPS.)