[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FLAVORS -> CLOS
- To: Stephen Nicoud <snicoud@atc.boeing.com>
- Subject: Re: FLAVORS -> CLOS
- From: David N Gray <Gray@dsg.csc.ti.com>
- Date: Tue, 17 Oct 89 11:45:14 CDT
- Cc: CommonLoops.pa@Xerox.COM
- In-reply-to: Msg of Mon, 16 Oct 89 17:47 PDT from Stephen Nicoud <snicoud@atc.boeing.com>
- Redistributed: commonloops.pa
- Sender: GRAY@kelvin.csc.ti.com
> My question is, what advice can you give us about moving code from
> FLAVORS (on Symbolics, Explorer, and Sun/Lucid) to CLOS? What are the
> "gotchas" we need to look out for? What are the neat tricks to
> converting? What's the appropriate implemenation "style" to maintain?
There is a utility shipped with Explorer release 6.0 that can help with
conversion by converting DEFFLAVOR, DEFMETHOD, SEND, etc. into their CLOS
equivalents. See file "SYS:PUBLIC.Z-TO-C-TRANSLATOR;-READ-ME-.TEXT" for
information.
Some of the problems I have encountered that require manual recoding after
the mechanical translation are:
* Use of special variable SELF outside a method.
* Methods with argument lists that CLOS does not consider congruent.
With Flavors, it is common for before or after methods to use &REST
IGNORE to disregard irrelevant arguments, but CLOS requires enumerating
the arguments the same on every method.
* Use of the same message name with different arguments lists for
different flavors.
* Use of operations :WHICH-OPERATIONS, :OPERATION-HANDLED-P, and
:SEND-IF-HANDLES, which don't have a direct correspondence in CLOS.
These require some redesign of the program, typically by defining a
default method to do whatever you want to do if the operation isn't
handled.