michaelm@bcsaic.UUCP (michael b maxwell) (10/25/85)
Some time ago, Daniel.Zigmond@SPICE.CS.CMU.EDU posted a message that Cambridge LISP had (according to someone from Metacompco) a Frantz front end. Now we see messages about it having a "de" function instead of "defun" (and presumably no "defmacro" etc.). One would assume that the Frantz front end was some sort of a macro pre-processor (in a library?) that changes the defun's into "de something-or-other". Does anyone know anything definitive about this? Are you listening, Dan? -- Mike Maxwell Boeing Artificial Intelligence Center ...uw-beaver!uw-june!bcsaic!michaelm
djz@spice.cs.cmu.edu (10/27/85)
From: Daniel.Zigmond@SPICE.CS.CMU.EDU Yes, I am listening. An overload of work has kept me from actively contributing to this group yet so I have not been able to post any sort of full Cambridge Lisp review. I will try to answer some basic questions. Cambridge Lisp is based on Standard Lisp. It is not compatible with Franz Lisp or Common Lisp. I see this as a serious flaw. I called Metacompco to find out whether they ever planned to release a Common Lisp compatible implementation and was told that they did. I spoke with a Mr. Hamilton who seemed quite knowledgeable about both Cambridge Lisp and MCC Pascal. He told me that a Franz Lisp front end existed and that a Common Lisp one would be "available" soon. I put available in quotes because he was unable to tell me how I could get either the existing front end or the future one. He also provided no details on exactly what he meant by either "front end" or "compatible" so I really know very little about it. Translating code from other Lisps to Cambridge Lisp is not trivial. I work mainly with Common Lisp and the lack of DO, LET, &optional, &rest (and other &xxx symbols), CASE, strutures, packages, TYPE-OF, and many other useful features makes translation very difficult, if not nearly impossible. Without having used Franz Lisp very much, I would guess that many of these problems apply to it as well. However, Cambridge Lisp is a powerful product. It provides a very rich set of primitives and allows for a great degree of customization. I think that if I spent the time to learn all of its quirks, I could do a lot with it. It has some features that are rare among personal computer Lisps like rational numbers, infinite-precision integers, a compiler, strings, vectors, character functions, stream- and buffer-based I/O, non-local exits, macros, error trapping, and more. It can deal with lists as normal lists, sets, association lists, dotted pairs, property lists, and circular structures. The math functions are diverse and include arithmetic functions (integer and real), trigonometric functions, binary shifts, logical operators, and various predicates. In short, Cambridge Lisp is a useful language and the issue of compatibility is only crucial to people who already have Lisp code or plan to port whatever they write on the Amiga to something else. I would really like to know what sort of support Metacompco is going to provide for Cambridge Lisp. Are they going to release useful libraries of functions like the Franz Lisp front end? Will they rewrite the documentation? Will they provide upgrades when new products like the Common Lisp-compatible Cambridge Lisp are completed? When will they add graphics and sound functions? Will they ever bother to explain the very complicated process through which graphics and sound can be used in the current version? I don't know the answer to any of these questions and have not yet had time to ask Metacompco about them. If anybody gets real answers, PLEASE post them. I know this description is incomplete but, again, I am pressed for time right now. If anyone has any specific questions (like what exactly is the difference between de and defun) I will do my best to answer them. Dan