In article < XXXX@XXXXX.COM >, Edi Weitz < XXXX@XXXXX.COM > Common Lisp is not a language, it is a family of languages. From http://www.**--****.com/ : "Common Lisp was designed as a description of a family of languages." rg
In article < XXXX@XXXXX.COM >, Edi Weitz < XXXX@XXXXX.COM > Common Lisp is not a language, it is a family of languages. From http://www.**--****.com/ : "Common Lisp was designed as a description of a family of languages." rg
In article < XXXX@XXXXX.COM >, What about ANSI Common Lisp? -- http://www.**--****.com/
The scary thing is that if you offset each character of "esearch" by two you get "google". kt -- http://www.**--****.com/ "Algebra is the metaphysics of arithmetic." - John Ray
In article < XXXX@XXXXX.COM >, I think that is quite significant, and I'm apparently not the only one who thinks so. I draw your attention to: http://www.**--****.com/ and in particular the following exchange between myself and Pascal Costanza: PC: You're certainly aware of the fact that Common Lisp is not a programming language, but a family of languages. RG: I knew that Lisp was a family. I was unaware that Common Lisp was considered a family, and not a single language. PC: [Long excerpt from CTLT2 elided] And, more to the point, from the HyperSpec (Section 1.1.2): "Common Lisp was designed as a description of a family of languages." RG: I stand corrected. PC: That's a good start, because EVERYTHING ELSE FOLLOWS FROM THERE. [Emphasis added.] rg
You mean because sockets and FFI were not standardized, and in a few places in those 1000 pages things get left up to implementations? Aggravation does not rise to the level of "hey, those are two different languages!" though I certainly felt as if that might be the case porting from Symantec C to CodeWarrior C. Was the author writing under the cloak of infallibility, channeling the word of G*d, and is our Talmudic interpretation of those awkward words precise? The legislative history shows that CL got designed to address concerns of The Big Customer over language fragmentation, so it is hard to imagine an intent other than to define one language. The next step was a pretty tight ANSI standard language specification. Too easy? (I know, it is mroe fun being contrarian.) kt -- http://www.**--****.com/ "Algebra is the metaphysics of arithmetic." - John Ray "As long as algebra is taught in school, there will be prayer in school." - Cokie Roberts "Stand firm in your refusal to remain conscious during algebra." - Fran Lebowitz "I'm an algebra liar. I figure two good lies make a positive." - Tim Allen
Ron Garret < XXXX@XXXXX.COM > writes: In addition, one can implement a subset of Common Lisp and all it rightly and legaly a "subset of Common Lisp", therefore Common Lisp an indeed be desribed as a family of languages, the union of all its subsets. -- __Pascal Bourguignon__ http://www.**--****.com/ "Specifications are for the weak and timid!"
XXXX@XXXXX.COM (Rob Warnock) writes: An alternative might be to start from ISLISP and work up. ISLISP is not specifically ANSI CL compatible, mind you, but I like to think of it as "culturally compatible" with ANSI CL... Certainly moreso than, say, Scheme. It's quite small, and lacking a lot of the power of CL, but what it has got is in a style that's similar to CL. Whether it would suit any given purpose is hard to know, which is why you'd have to look for yourself.
+--------------- | XXXX@XXXXX.COM (Rob Warnock) writes: | > Note: From time to time I have noodled around with the notion of | > defining a subset of CL which meets the constraints of CLHS 1.7 | > and is still sufficiently rich to be interesting and/or useful | > [e.g., for "scripting" or CGI or the like]. It's not as easy as | > it might at first appear. Little fiddly bits in one corner of | > the language interact in subtle ways with fiddly bits in other | > corners of the language. | | An alternative might be to start from ISLISP and work up. +--------------- I *have* actually considered that. But after several cursory readings of the ISLISP spec, I have come to the provisional conclusion that ISLISP, while quite interesting *in its own right*, isn't really a suitable candidate for "a subset of Common Lisp as specified by ANSI X3.226" under the constraints of CLHS "1.7 Language Subsets". For one thing [and this is a big one!], as far as I can tell, getting a non-trivial ISLISP program to load into a CL implementation would require at least *some* sort of "compatibility package" to have been pre-loaded into the CL implementation, something that is expressly excluded from the definition of a CL subset by CLHS 1.7. That is, to me at least, whether there even *can* be one or more useful "subsets of CL" in the strict CLHS 1.7 sense is separate and very different question from that of what "a good small Lisp" could/would/sholud look like... and whether Scheme or ISLISP or XYZ [name your favorite] is a good starting point for that. Both questions are interesting, but the one I was addressing in the above-quoted "Note" was the former, not the latter. By the way, in the interest of exposing a little of my motivation for looking into the "subset" question, let me say that I am perfectly happy these days to use a "full" Common Lisp for almost all of my Lisp-family needs [e.g., I haven't written any new Scheme code for several years now!], but there are a *few* situations where my usual CL environment (CMUCL) cannot run [or at least not conveniently enough for it to be feasible] and it would be very nice to have an implementation of a small subset of CL which *could* run. Being a "subset" in the CLHS 1.7 sense would mean that most of the code could be developed & tested in the "full" environment. It would also make it more likely to be portable to some other "full" environment than the one I currently favor. Plus, I have yet to hear of anyone who has managed to come up with a non-trivial yet useful "subset of ANSI CL" in the strict CLHS 1.7 sense. It's a bit of an intellectual challenge. +--------------- | ISLISP is not specifically ANSI CL compatible, mind you, but I like | to think of it as "culturally compatible" with ANSI CL... Certainly | moreso than, say, Scheme. It's quite small, and lacking a lot of the | power of CL, but what it has got is in a style that's similar to CL. +--------------- Based on my somewhat-limited reading of the spec, I quite agree on all of these points. +--------------- | Whether it would suit any given purpose is hard to know, which | is why you'd have to look for yourself. +--------------- (See the above...) -Rob ----- Rob Warnock < XXXX@XXXXX.COM > 627 26th Avenue <URL: http://www.**--****.com/ ; San Mateo, CA 94403 (650)572-2607
XXXX@XXXXX.COM (Rob Warnock) writes: Oh, it definitely is not a subset. I was just suggesting it if you wanted a small Lisp dialect that was similar to CL for an independent scripting purpose. Ah. Indeed, if you want to move your programs back and forth, it gets a bit trickier. Paul Robertson did work on this at one point and did the best job of outlining such a subset. It was part of his review comments on the standard. I have that data somewhere offline, and keep meaning to put it online...
Kent M Pitman < XXXX@XXXXX.COM > writes: Oh, that comment by Paul Robertson is _already_ online... I guess I had dredged it up previously and had forgotten. http://www.**--****.com/ It's the best stab at a theory of subsets I've seen anyone do.
That's a great window on the do-or-die mood driving the development of CL. Here's my favorite line: Disaster? Ha! Lisp! It's mine! It's all mine!!!!! MWUAHAHAHAHAHAAAA!!!! (And we prefer "smug Lisp weenies".) kenny -- http://www.**--****.com/ "Algebra is the metaphysics of arithmetic." - John Ray "As long as algebra is taught in school, there will be prayer in school." - Cokie Roberts "Stand firm in your refusal to remain conscious during algebra." - Fran Lebowitz "I'm an algebra liar. I figure two good lies make a positive." - Tim Allen
1.Inline and Notinline (Was: Core foundation of Common Lisp (not pure Lisp))
Duane Rettig < XXXX@XXXXX.COM > writes: > Rahul Jain < XXXX@XXXXX.COM > writes: > >> "Steven M. Haflich" < XXXX@XXXXX.COM > writes: >> >> > It is more relevant to underatand why the following definition would >> > not have resulted in a working CL implementation: >> > >> > (defun not (x) >> > (declare (notinline not)) >> > (not x)) > > Heh; I wasn't sure why Steve made this statement - it seemed > obvious. Now I understand why... > >> Are you sure? "Special-forming" of CL operators is not covered under >> inlining, is it? > > Special-forms has nothing to do with this example. Not is not a > special operator. That's why I quoted it. It's treated as a special form in that it is compiled in a primitive way, the same way that macros are allowed to be implemented as special-forms but must provide a macro-function. >> I think the undefined behavior of redefining CL >> operators leaves the door open to the compiler implementing NOT as a >> direct assembly operation instead of a full function call. The NOTINLINE >> declaration would not hurt such an implementation. > > The redefinition of CL operators is undefined, but the requirement > to obey the notinline declaration is not. It is not even clear > that the form given was placed in a package that uses the CL package. > What is clear, is that the example _must_ result in an infinite > loop/recursion in a conforming lisp. Yikes, looking at the spec I see that quite explicitly. What is interesting is the requirement that the declaration be obeyed for _local_ function calls, too. I'm not sure what exactly this is trying to achieve, because it could be argued that the local function is bound lexically to the name, and so a redefinition of the surrounding function would simply create a new function bound lexically to that name. The binding in the previous function would be unaffected. -- Rahul Jain XXXX@XXXXX.COM Professional Software Developer, Amateur Quantum Mechanicist
2.Why Common Lisp is not a Lisp, continued
3.Core foundation of Common Lisp (not pure Lisp)
Last night I had a difficult time falling asleep (getting myself back on schedule from the late nights surrounding the holidays) and was thinking. In most Forth systems, very little of the actual language is written in assembly. Most of it is written in Forth. This, of course, is true for Lisp as well. My curiosity is in how much of a (typical, ie commercial) Lisp system is actually written in Lisp. Now, let me be more specific. I do not mean the compiler or IDE - these are of course written in Lisp. I mean to say just the ANSI spec. How much of the spec (%) is just macros around what might be the "core" of CL? Also, for optimization, how much *could* be written in CL and isn't? In Forth, for example, there is actually very little that needs optimized, because the optimizations build on each other. Taking a specific look at a function, DOTIMES is nothing more than a declared fixnum LET with a TAGBODY, IF and GO. I guess, in the end, I'm hoping to define what is the minimum set of functions that need to be available for the rest of the ANSI CL spec to be built on top of it? Just with DECLARE, TAGBODY, GO, PROGN, IF, LAMBDA, LET, and DEFMACRO, quite a bit is already possible... Outside of scoped functions, how about just type specific ones (CONS, CAR, CDR, ELT, FIND, etc)? Jeff M.
4.why Common Lisp is not a lisp
How about, when trying to decide "what is lisp" or to apply "lispp" to some _thing_, we just go very low level and somewhat retro and mostly informal? As a straw-man: a lisp is any language implementation which includes a run time system with some recognizably lispish types (cons pairs, numbers, symbols) having their familiar properties (latent typing, gc-based memory management), and implemented in a recognizably traditional way (or a brilliant new way, worthy of being added to the design space). In the language implemented, programs are expressed in s-exp syntax and there are some useful senses (for which we don't need to draw a precise line defining "useful") in which programs are manipulatable as basic data structures (e.g., expressions as lists). All the usual Common Lisp implementations are clearly lisps and it's hard to imagine someone contorting themselves enough to implement a Common Lisp that isn't a lisp (contrast with a recent "Scheme in Javascript" that appeared on c.l.s. -- if somebody said "That may be Scheme but it isn't a lisp" -- I'm not sure why anybody would bother disagreeing). We can say that there is a near-but-not-quite consensus among lisp hackers that some things are better than other things in an implementation. For example, an implementation that let's you evaluate a list as an expression is expected -- and implementations that don't provide that or provide it poorly are, at the very least, pretty extreme outliers. "Common Lisp" and "Scheme" aren't lisps at all. They are the names of standards which a lisp may or may not implement. Another near-but-not-quite consensus is that Common Lisp has the far larger commercial significance at the moment, and the greater amount of practical experience behind it -- and that it's naive to respond to Common Lisp by saying things like "But Scheme is so much _cleaner_ -- why don't you agree that Common Lisp sucks?". We can acknowledge that it has been the experience of people deeply involved with Common Lisp that, unreasonable as it may sound, they have had to put up with a lot of such responses over the years. With this rather retro mostly-operational view of "what is lisp" we can make perfect sense of statements like "Dylan is sorta-kinda-lisp but diverges in these ways ...." or "Emacs lisp started out as a really minimalist lisp and remains a kind of strange dialect -- but it works _fairly_ well for it's specific applications and it's intersting to examine why that is" or "delta(Python,lisp) keeps shrinking but it's not clear that Python really converges on lisp". And I can say "Hey, I'm interested in making a lisp that is a lisp-1 and _generally_ very Scheme-like; I'm not entirely sure I want (eq? #f '()) to be false; I'm not entirely sure I really want call/cc." And having said that, in c.l.l. no less, I might have a discussion about why I'm leaning in those directions without having the majority replies being a rightous forensices from Common Lisp bigwigs. There's a heck of a lot of verbal cleverness on this list. It seems to be a point of pride and, indeed, personally I think it's kind of neat. But it's also pretty tedious after a while. Too often it supresses, rather than enhances, actual interesting discussion. -t
5.OT: Lisp isn't chocolate (was OFF-TOPIC:: Why Lisp is not my favorite programming language
6. Are you interested in creation of separate group for common lisp comp.lang.common-lisp
7. Are you interested in creation of separate group for common lisp comp.lang.common-lisp
8. Are you interested in creation of separate group for common lisp comp.lang.common-lisp
Users browsing this forum: No registered users and 82 guest