[Openmcl-devel] CLOS Question

Gary Byers gb at clozure.com
Sat Mar 31 23:34:03 PDT 2007


Erann Gat (aka Ron Garret) wrote a very good tutorial which explains
what packages in CL are (and what they aren't); it's available at:

<http://www.flownet.com/gat/packages.pdf>

The summary chapter of that paper says:

"The most important thing to understand about packages is that they are
fundamentally a part of the Lisp reader and not the evaluator."

If you read that tutorial and find yourself asking "Hmm.  What
mechanisms do CL and CLOS offer to provide object encapsulation ?",
you might conclude that the correct answer is "Good Clean Living";
anything else might violate the "you should have enough rope to hang
yourself with" philosophy.

[One of the alternatives to CLOS that had been proposed as a standard
CL object system in the mid-1980's was called "Common Objects", and
one of the more notable differences between Common Objects and CLOS
was that the former addressed issues of object encapsulation and
visibility in ways that CLOS doesn't.  I believe that Alan Snyder
(the principle developer and advocate of Common Objects) made some
attempts to integrate some of Common Objects' encapsulation mechanisms
into CLOS in some way; I don't know if that code's still available
anywhere.]


On Sat, 31 Mar 2007, Brent Fulgham wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> This is probably glaringly obvious, but I'm not sure:
>
> Given that I have a CLOS object "FOO" in package "BAR" with an
> "INITIALIZE-INSTANCE" method.
>
> If I wish to subclass "FOO" in package "BAZ", must I export the
> "INITIALIZE-INSTANCE" method in "BAR" so that the class in "BAZ" can
> call it?  Or does the CLOS system ensure that any exported objects
> from FOO carry along the necessary object accessors, constructors,
> and so forth?
>
> Thanks,
>
> - -Brent
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (Darwin)
>
> iD8DBQFGD0awzGDdrzfvUpURAh4NAJ97S+8PRkE7P2Y9b1F/mr379jj1swCeIboY
> DL4VTfOQN710tMQwUQ1Ul8I=
> =rXPF
> -----END PGP SIGNATURE-----
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>



More information about the Openmcl-devel mailing list