[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
T/Nisp flavor package
There now exists a flavor package for T and Nisp. The two versions are
similar, but incompatible. As you might expect, the T version is elegant,
and the Nisp version is portable; i.e., the ZetaNisp version (which
doesn't exist yet) will be implemented using actual Zeta flavors.
-- Flavors and messages look like T objects and operations. The
message is a function (that is, an operation) and the object is the
argument, rather than the other way around as in Zeta.
-- In the T implementation, they don't just look like operations; they
*are* operations. E.g., defining a PRINT method for a flavor will
cause all its instances to print like that. A feeble imitation of this
is available in the Franz implementation.
-- The thing is reasonably efficient. It uses hash tables and such.
-- When a flavor or method is redefined, instances are updated
-- The only ugliness is that instance variables do not look like
variables. This could be corrected, but it may not be worth it.
For more documentation, see
~sys/homes/riesbeck/doc/flavors.doc ; for the T version
~sys/homes/mcdermott/t/hacks/NISPFLAVORS.DOC ; for the Nisp version
These will point you toward the actual code and deeper documentation.
Chris's documentation is clearer than mine, so you might want to start
with it. He has also improved my code considerably, to the point where
responsibility for errors rests with no one in particular.