[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: MCELROY@AppleLink.Apple.COM
- Subject: Compiler Excised
- From: firstname.lastname@example.org (Bob Hall)
- Date: Tue, 27 Sep 94 13:07:28 EDT
- Cc: email@example.com
- In-reply-to: Peformigence Corp, H McElroy,APD's message of 27 Sep 94 15:39 GMT <780680786.6150400@AppleLink.Apple.COM>
Date: 27 Sep 94 15:39 GMT
From: MCELROY@AppleLink.Apple.COM (Peformigence Corp, H McElroy,APD)
Subject: Compiler Excised
We have an application that takes full advantage of the dynamic nature of
Lisp. It allows a non-programmer user to interact with the app and add
intelligence to a knowledge base. In order to do this the app has to do
defclasses on the fly. Unfortunately, to do this most efficiently, the app
should be created without the compiler excised contrary to the licensing
literature included with MCL[...]
I too have run into this problem in both MCL and ACL 2.0 (formerly ACL/PC).
It appears that Lisp providers have drawn the line at allowing you
to give away (or sell) their compiler and (in some cases) the whole evaluator,
macroexpander etc. This is not, IMHO, an altogether unreasonable stand,
since you could pretty much just resell (cheaply) their product if you could
deploy the full compiler/etc.
I have thought of five possible workarounds:
(If anyone can think of other approaches, please let me know!)
(1) write your own compiler in MCL and provide it along with your app.
(2) figure out an efficient interpretive way to do the language-processing
you actually want in your app. I'd bet there are much more efficient
ways to do most things than calling EVAL.
(1+2) compile to an intermediate form that you can then interpret rapidly
(using precompiled Lisp functions that you write).
(3) Convince Apple's lawyers you really won't be putting out a competitive
product if they just let you use compile for your set of special cases.
(4) Have your users buy a full MCL license.
When (3) and (4) are impractical, I believe (1+2) is
probably the right answer (unless most of your users have MCL already, of
course). That way you don't have to learn assembly language (to say nothing of
the compilation expertise known to the MCL people), but the precompilation
phase can eliminate the obvious inefficiencies such as syntax checking and
(some) error checking as well as do all the bookkeeping operations
you may want. Remember that your input language need not be all of
Common Lisp. Many times you can get by with a much simpler (and much easier
to implement) language.
- Compiler Excised
- From: MCELROY@AppleLink.Apple.COM (Peformigence Corp, H McElroy,APD)