The Revised Maclisp ManualThe PitmanualPage C-1
Published by HyperMeta Inc.
Prev | Index | Next
Common Lisp Conversion
CL Conversion
Trivial Changes
Easy Changes
Hard Changes
Substandard Code
Cosmetic Changes
User-Defined Functions
Non-Portable Code

Notes on converting Maclisp/Zetalisp to Common Lisp

By Kent M. Pitman, 26 Aug 1987

Conv: Introduction

[Blue Marble]
Climate Change
Biofuel is
the answer.

History of this Document

These are the notes that I took while converting Symbolics MACSYMA to Common Lisp (as described in Guy Steele's 1984 version of Common Lisp: The Language). I tried to record as many of the things I did as possible, so that other things that had to be converted could follow a similar template.

MACSYMA was, at that time, a large [on the order of 100,000 lines] symbolic algebra system written in MACLISP and heavily conditionalized for other dialects of Lisp such as Zetalisp and Franz Lisp [no, that's not the same dialect as Allegro Common Lisp]. It used some features of MACLISP heavily and some not at all, so there may be some issues in conversion that are not addressed here.

Because I thought these notes would be immensely valuable to people at the time, I arranged to have Symbolics publish them in the late 1980's as part of the rollout of Symbolics Common Lisp, to help users upgrade old code to more modern Common Lisp. (No one had tasked me to write these, I just decided it was useful data.) The text was originally accepted by the Symbolics documentation group and I was told that it would go into the notes on how to convert documents to Common Lisp. But when the documentation appeared, the notes were not there.

I later inquired about why and found that because these notes were mostly about MACLISP, someone had decided that they would be of no interest/value to Zetalisp customers, and therefore they had been omitted from our documentation. And no one had thought it important enough to tell me. So that meant I was unable to take corrective action in a timely way. Note that at that time there was no web, so there was no easy way to provide the information out-of-band in some other way.

So this ended up gathering dust for a great many years.

I'm happy, though, to finally be able to get them into the historical record in case they're useful in dusting off other old programs.

The changes are arranged in order from easy to hard, in terms of the complexity of the change. It is recommended that you attempt these changes in the order of presentation, in part because that's the order they were originally debugged for, and in part because you want as much as possible of the conversion to have been already done by the time you get to the hard parts.

  —Kent M Pitman, 26 May 2007

CL Conversion ((1) 2 3 4 5 6 7 8)

The Revised Maclisp Manual (Sunday Morning Edition)
Published Sunday, December 16, 2007 06:17am EST, and updated Sunday, July 6, 2008.
Prev | Index | Next