gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] RE: [Maxima] Make or defsystem


From: Richard Fateman
Subject: Re: [Gcl-devel] RE: [Maxima] Make or defsystem
Date: Sun, 01 Feb 2004 18:20:48 -0800
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

There is a survey paper on this topic by Erik Sandewall that appeared
in ACM Computing Surveys, a long time ago. The residential lisp
system typical of Lisp machines, Xerox, BBN (Inter-lisp) contrasted
with the development environment where you edited/compiled files, loaded
them into some executable form, and then tested.

Maclisp, and the original Macsyma environment was not "residential" quite,
but had closely coupled editing/running facilities. There was also a system
definition/compilation program, somewhat like Make, but historically
earlier. "Making" Maxima on Allegro CL does not require using Make
at all but some defsystem stuff; however that system doesn't include loading
C programs for plotting etc.

Some arguments against Make:
1. It is not available everywhere, necessarily.
2. It has a different syntax, and different semantics too (hence the need for configure).
  It requires a programmer to know yet another language.
3. Makefiles are not visible to the running lisp, so it violates the principle
that programs should be data.

Some arguments in favor of Make:
1. So many of the lisp systems have pieces written in C (or C++ or Tcl or Perl ...)
that an "agnostic" Make is better than running everything from Lisp.
2. The lisps Maxima is using are more non-standard in some respects than even Make. 3. People unfamiliar with lisp may be familiar with Make, and hence instructions
that say "run make" will be comforting.
4. There are worse things than Make. Microsoft Visual XXX .NET for example.
5. Make can be used for stuff like typesetting manuals with TeX, and why not use it if someone has perfected a script.
RJF









reply via email to

[Prev in Thread] Current Thread [Next in Thread]