Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!ucsd!ucbvax!ATC.BOEING.COM!snicoud From: snicoud@ATC.BOEING.COM (Stephen Nicoud) Newsgroups: comp.sys.ti.explorer Subject: Re: FLAVORS -> CLOS Message-ID: <19891017203741.4.SLN@SKAGIT.atc.boeing.com> Date: 17 Oct 89 20:37:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: inet Organization: The Internet Lines: 38 ------- Forwarded Message Sender: GRAY@Kelvin.csc.ti.com.ARPANET Date: Tue, 17 Oct 89 09:45 PDT From: David N Gray To: Stephen Nicoud cc: CommonLoops.pa@Xerox.COM.ARPANET Subject: Re: FLAVORS -> CLOS In-Reply-To: Msg of Mon, 16 Oct 89 17:47 PDT from Stephen Nicoud > 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. ------- End of Forwarded Message