[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
[In reply to Griss's set of questions for members to answer:]
We have a range of interests represented by people on this mailing
list, and I'd like to ask a few questions to get things rolling again.
1. What LISP or LISPs do you currently use?
[My favorite among those I've used is MacLISP at MIT-MC, but since Stanford
no longer provides 1200-baud dialup access into the Arpanet I'm back at
300 baud to MIT-MC and I haven't used it much lately. I'm actively using
and developing PSL at IMSSS (Tenex) and PASC (VM/CMS). Long ago I used
Stanford LISP 1.6 and UCI-LISP, but gave them up long ago.]
2. Are you primarily a user or an implementor?
[Both. LISP is my language of choice for any task it can handle if I'm
on a machine that has it, although I occasionally have to write some
utility program in SAIL if LISP is too inefficient (the SCAN function
in SAIL is handy and very fast, I wish PSL had something like it) or if
I just happen to know how to write a one-shot task quickly in SAIL but
would have to do a lot of figuring to get it written in LISP. But for any
largescale program I always write in LISP, so I'm a major LISP user.
I write application software and general support utilities, but lately
at IMSSS for pay I'm getting into implementation of the kernel.]
3. For those of you who are currently using non-common LISP's, such as
InterLISP, FranzLISP, PSL, etc, what is your plan for Common LISP?
[Wait until CL is available on a machine I have access to, then give it
a try to see if it can do what I want at similar speed. If it takes twice
as long to run a program in CL as in PSL, I'll stay with PSL, otherwise
I'll probably try switching to CL. If I can get my hands on a translator
that works, I'll use it, else I'll manually do it with EMACS macros and
backwards-compatibility functions. (I already have such functions for
supporting various MacLISP, Standard-LISP, and personal functions in
terms of PSL primitives, such as ML-LET which is like LET in MacLISP
with destructuring which I use all over the place. I wish CL had
destructuring available. In any case I will keep programming in some
form of LISP until something better comes along, which is unlikely.]
5. If your plan includes the identification of a subset CL
(perhaps because you only need or can only afford to implement
a subset on your machine, in your compatibility module, or
your translator),
could you summarize what criteria you are using to define your subset?
[The mimimal subset should run on an Altair 8800a (8080 cpu) with 28k bytes
of RAM. A little more reasonable subset should run on an IBM PC with the
minimum memory configuration that starting computer users might already
have bought. A really decent subset should run on a PDP-10 under Tenex.]
6. Some of the previous messages indicated that subsets were important for:
For what reasons might you consider a subset?
[For running on small machines, and to simplify bootstrapping on a new machine.]
7. Do you see a single subset as sufficient, or do you envision a family
of subsets, appropriate for different reasons?
[Mostly I see a heirarchy of subsets, from bare-minimum to whole ball of
wax and can of worms, with possible branches like bare-minimum with
floating point but not packages, or packages but not floating point, etc.]
8. Do you have a subset proposal ready to present to this group, or are
you working on one?
[I have no formal proposal at this time, but a while back I went through a
LISP manual identifying those functions which were absolutely essential to
get any LISP running at all, versus those which had their uses but weren't
essential in every program. I think fewer than a hundred functions were
in the former category. If somebody is interested I can fish out my notes
and send my DRASTIC-TEENSY-TINY-LISP subset proposal as a starting point
for very-minimal subset discussions.]