Subject: Re: Minimal keywords needed for constructing a full CL system
From: (Rob Warnock)
Date: Mon, 17 Jul 2006 22:29:33 -0500
Newsgroups: comp.lang.lisp
Message-ID: <>
Jack Unrue <no.spam@example.tld> wrote:
| (Rob Warnock) wrote:
| >at least. Esthetics *is* an important part of what I'm aiming for.
| >That is, one would rather that others look at the result and say,
| >"Ooh! That's cute" instead of "Yucckk! That's a total crock!".
| >So the overall "shape" of the subset has to be at least somewhat
| >"pleasing" to the eye of most experienced CL-ers.
| Yeah, I understand the aesthetics aspect. Must the experienced
| CL-ers be the target audience, though? I'm just speculating because
| I haven't actually done a survey, but I would guess many of the
| gurus wouldn't care about any subset because they know quite a bit
| about the subtle details and prefer more options over less.

I said "experienced CL-ers" for two reasons: (1) Because it's CL-ers
who will have the context to understand/judge whether any given subset
of CL is "reasonable"; and (2) because I don't see many non-CL-ers
being particularly interested in the issue -- there are many other
"small Lisps" which are a lot simpler to define/implement.

| So, what do you think about weighting the tradeoffs in favor
| of attracting new Lispers? Keeping in mind the feedback from
| established gurus, of course. Or was that your goal already
| and I just missed it?

Personally [I can't speak for the OP of the "minimal keywords"
question], I wasn't thinking about new Lispers at all, actually.
I like using the full language wherever I can, especially CMUCL,
but there are sometimes some places where I can't [e.g., embedded
systems, places where CMUCL doesn't run yet, etc.], where a very
portable, small, subset of CL would be useful -- not just a toy
interpreter, but one with adequate performance for "scripting"
and other string-bashing, say.

| I was also thinking that, aesthetics and performance aside,
| it's pretty easy to settle on one's own private subset of CL.
| This is inertia that your proposed subset would have to
| overcome from a mindshare standpoint.

Well, yes, but then [for whatever reason] I got really intrigued
with the idea of having the subset meet the criteria of CLHS 1.7,
so I could call it "a real Common Lisp subset".  ;-}  ;-}

| >We *do* have one extant example of a "small" Lisp which has
| >been found useful by many: Scheme. My question is whether
| >there is any Common Lisp subset meeting CLHS 1.7 which would
| >be similarly useful and not *too* ugly!  ;-}
| Right, but as everyone knows, Scheme has some important
| distinguishing characteristics -- whereas the CL subset
| has to be compatible with its ancestor. And after one
| implements all the SRFIs, it's not clear (to me anyway)
| how small Scheme is at that point. IMHO Scheme isn't
| comparable to this. :-)

I came to CL from Scheme[1], specifically, MzScheme versions
97-102 or thereabouts, which I had found *quite* adequate for
the things I'd want a CL subset to do: misc. "shell scripting",
web CGI scripts, misc. systems administration utilities, etc.

Aside: The performance of my current fixnum-only "QDL" for
(ACKERMANN 3 7) is about twice as slow as interpreted CLISP or
byte-compiled CMUCL, and slightly *faster* than interpreted CMUCL.
That's "good enough" for what I have in mind, but should be
able to be significantly improved with a little preprocessing
["minimal compilation"].


[1] Still owe the community a RoadToLisp article... (*sigh*)

Rob Warnock			<>
627 26th Avenue			<URL:>
San Mateo, CA 94403		(650)572-2607