From emarsden at common-lisp.net Fri Mar 5 18:17:14 2004 From: emarsden at common-lisp.net (Eric Marsden) Date: Fri, 05 Mar 2004 13:17:14 -0500 Subject: [lispfaq-cvs] CVS update: Module imported: lispfaq Message-ID: Update of /project/lispfaq/cvsroot/lispfaq In directory common-lisp.net:/tmp/cvs-serv8432 Log Message: initial import from cclan Status: Vendor Tag: clnet Release Tags: start N lispfaq/faq.dsl N lispfaq/__FILE__.sgml N lispfaq/abbreviations.sgml N lispfaq/apply-macros.sgml N lispfaq/array-initialize.sgml N lispfaq/books.sgml N lispfaq/continuations.sgml N lispfaq/deep-copy.sgml N lispfaq/executable.sgml N lispfaq/faq.sgml N lispfaq/flet.sgml N lispfaq/freelisp.sgml N lispfaq/hello-world.sgml N lispfaq/homework.sgml N lispfaq/implode.sgml N lispfaq/lisp-is-dead.sgml N lispfaq/lisp-is-slow.sgml N lispfaq/lisp1.sgml N lispfaq/no-data-types.sgml N lispfaq/off-topic.sgml N lispfaq/on-topic.sgml N lispfaq/online.sgml N lispfaq/prolisp.sgml N lispfaq/purpose.sgml N lispfaq/read-from-string.sgml N lispfaq/recursive-car.sgml N lispfaq/repl-inactive.sgml N lispfaq/scheme.sgml N lispfaq/script.sgml N lispfaq/stringsplit.sgml N lispfaq/struct-p.sgml N lispfaq/victimization.sgml N lispfaq/faq.css No conflicts created by this import Date: Fri Mar 5 13:17:14 2004 Author: emarsden New module lispfaq added From emarsden at common-lisp.net Fri Mar 5 18:28:18 2004 From: emarsden at common-lisp.net (Eric Marsden) Date: Fri, 05 Mar 2004 13:28:18 -0500 Subject: [lispfaq-cvs] CVS update: lispfaq/faq.sgml lispfaq/hello-world.sgml Message-ID: Update of /project/lispfaq/cvsroot/lispfaq In directory common-lisp.net:/tmp/cvs-serv9878 Modified Files: faq.sgml hello-world.sgml Log Message: update for new home Date: Fri Mar 5 13:28:18 2004 Author: emarsden Index: lispfaq/faq.sgml diff -u lispfaq/faq.sgml:1.1.1.1 lispfaq/faq.sgml:1.2 --- lispfaq/faq.sgml:1.1.1.1 Fri Mar 5 13:17:14 2004 +++ lispfaq/faq.sgml Fri Mar 5 13:28:18 2004 @@ -48,29 +48,14 @@ their putative posts. - This document's source is available from cCLan's CVS - repository, in a module named `faq'; it was derived in part from - the old comp.lang.lisp FAQ maintained by Mark Kantrowitz and - Barry Margolin, to whom the current maintainers extend their - thanks. The canonical location for the HTML version of this - document is currently http://www-jcsu.jesus.cam.ac.uk/~csr21/lispfaq.html. - - - Corrections, suggestions, and comments to, for and regarding - this document are welcome, either on cCLan mailing - lists or as a followup to the regular posting on comp.lang.lisp; while this FAQ - is under development, you may also contact the `primary' - maintainer directly at csr21 at cam.ac.uk. - - - Last modified: Wed 06 Aug 2003 11:24 BST + Barry Margolin; and from a more recent comp.lang.lisp FAQ + maintained by Christophe Rhodes, to whom the current maintainers + extend their thanks. The canonical location for the HTML version + of this document is currently http://www.common-lisp.net/project/lispfaq/. foo Index: lispfaq/hello-world.sgml diff -u lispfaq/hello-world.sgml:1.1.1.1 lispfaq/hello-world.sgml:1.2 --- lispfaq/hello-world.sgml:1.1.1.1 Fri Mar 5 13:17:14 2004 +++ lispfaq/hello-world.sgml Fri Mar 5 13:28:18 2004 @@ -1,6 +1,6 @@ - How do I write a "Hello, World!" programme in Lisp?" + How do I write a "Hello, World!" programme in Lisp? @@ -21,4 +21,4 @@ World!~%"). - \ No newline at end of file + From emarsden at common-lisp.net Mon Mar 22 18:55:29 2004 From: emarsden at common-lisp.net (Eric Marsden) Date: Mon, 22 Mar 2004 13:55:29 -0500 Subject: [lispfaq-cvs] CVS update: lispfaq/__FILE__.xml lispfaq/abbreviations.xml lispfaq/apply-macros.xml lispfaq/array-initialize.xml lispfaq/books.xml lispfaq/continuations.xml lispfaq/deep-copy.xml lispfaq/executable.xml lispfaq/faq.xml lispfaq/faq.xsl lispfaq/flet.xml lispfaq/freelisp.xml lispfaq/hello-world.xml lispfaq/homework.xml lispfaq/implode.xml lispfaq/lisp-is-dead.xml lispfaq/lisp-is-slow.xml lispfaq/lisp1.xml lispfaq/no-data-types.xml lispfaq/off-topic.xml lispfaq/on-topic.xml lispfaq/online.xml lispfaq/prolisp.xml lispfaq/purpose.xml lispfaq/read-from-string.xml lispfaq/recursive-car.xml lispfaq/repl-inactive.xml lispfaq/scheme.xml lispfaq/script.xml lispfaq/stringsplit.xml lispfaq/struct-p.xml lispfaq/victimization.xml lispfaq/__FILE__.sgml lispfaq/abbreviations.sgml lispfaq/apply-macros.sgml lispfaq/array-initialize.sgml lispfaq/books.sgml lispfaq/continuations.sgml lispfaq/deep-copy.sgml lispfaq/executable.sgml lispfaq/flet.sgml lispfaq/freelisp.sgml lispfaq/hello-world.sgml lispfaq/homework.sgml lispfaq/implode.sgml lispfaq/lisp-is-dead.sgml lispfaq/lisp-is-slow.sgml lispfaq/no-data-types.sgml lispfaq/off-topic.sgml lispfaq/on-topic.sgml lispfaq/online.sgml lispfaq/prolisp.sgml lispfaq/purpose.sgml lispfaq/read-from-string.sgml lispfaq/recursive-car.sgml lispfaq/repl-inactive.sgml lispfaq/scheme.sgml lispfaq/script.sgml lispfaq/stringsplit.sgml lispfaq/struct-p.sgml lispfaq/victimization.sgml Message-ID: Update of /project/lispfaq/cvsroot/lispfaq In directory common-lisp.net:/tmp/cvs-serv24481 Added Files: __FILE__.xml abbreviations.xml apply-macros.xml array-initialize.xml books.xml continuations.xml deep-copy.xml executable.xml faq.xml faq.xsl flet.xml freelisp.xml hello-world.xml homework.xml implode.xml lisp-is-dead.xml lisp-is-slow.xml lisp1.xml no-data-types.xml off-topic.xml on-topic.xml online.xml prolisp.xml purpose.xml read-from-string.xml recursive-car.xml repl-inactive.xml scheme.xml script.xml stringsplit.xml struct-p.xml victimization.xml Removed Files: __FILE__.sgml abbreviations.sgml apply-macros.sgml array-initialize.sgml books.sgml continuations.sgml deep-copy.sgml executable.sgml flet.sgml freelisp.sgml hello-world.sgml homework.sgml implode.sgml lisp-is-dead.sgml lisp-is-slow.sgml no-data-types.sgml off-topic.sgml on-topic.sgml online.sgml prolisp.sgml purpose.sgml read-from-string.sgml recursive-car.sgml repl-inactive.sgml scheme.sgml script.sgml stringsplit.sgml struct-p.sgml victimization.sgml Log Message: - huge jump in technology from the SGML version of Docbook using the DSSSL stylesheets, to the new and improved XML version with XSL stylesheets. Ahem. Date: Mon Mar 22 13:55:25 2004 Author: emarsden From emarsden at common-lisp.net Mon Mar 22 20:07:42 2004 From: emarsden at common-lisp.net (Eric Marsden) Date: Mon, 22 Mar 2004 15:07:42 -0500 Subject: [lispfaq-cvs] CVS update: lispfaq/__FILE__.xml lispfaq/apply-macros.xml lispfaq/array-initialize.xml lispfaq/books.xml lispfaq/continuations.xml lispfaq/faq.xsl lispfaq/flet.xml lispfaq/freelisp.xml lispfaq/on-topic.xml lispfaq/online.xml Message-ID: Update of /project/lispfaq/cvsroot/lispfaq In directory common-lisp.net:/tmp/cvs-serv16736 Modified Files: __FILE__.xml apply-macros.xml array-initialize.xml books.xml continuations.xml faq.xsl flet.xml freelisp.xml on-topic.xml online.xml Log Message: - minor formatting changes Date: Mon Mar 22 15:07:42 2004 Author: emarsden Index: lispfaq/__FILE__.xml diff -u lispfaq/__FILE__.xml:1.1 lispfaq/__FILE__.xml:1.2 --- lispfaq/__FILE__.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/__FILE__.xml Mon Mar 22 15:07:41 2004 @@ -1,31 +1,32 @@ - What is the Lisp equivalent of the __FILE__ and __LINE__ ANSI C - preprocessor macros? How do I find out where an error occurred? + What is the Lisp equivalent of the __FILE__ and + __LINE__ ANSI C preprocessor + macros? How do I find out where an error occurred? - There is no direct equivalent of __FILE__ and __LINE__ in ANSI - Common Lisp; this is perhaps most simply explained by the fact - that CL is not particularly a file-oriented and definitely not - a line-oriented language. That said, your particular - implementation may carry around some information about where - functions were compiled, and COMPILE-FILE binds the special - variables *COMPILE-FILE-TRUENAME* and *COMPILE-FILE-PATHNAME*. + There is no direct equivalent of __FILE__ and + __LINE__ in ANSI Common Lisp; this is perhaps + most simply explained by the fact that CL is not particularly a + file-oriented and definitely not a line-oriented language. That + said, your particular implementation may carry around some + information about where functions were compiled, and + COMPILE-FILE binds the special variables + *COMPILE-FILE-TRUENAME* and + *COMPILE-FILE-PATHNAME*. - + (defun foo () (break "Stopped inside ~S" (the-function-i-am-in))) - - + (setf (symbol-function 'bar) (symbol-function 'foo)) - - + (bar) - + Are you in a breakpoint in FOO or in BAR? Index: lispfaq/apply-macros.xml diff -u lispfaq/apply-macros.xml:1.1 lispfaq/apply-macros.xml:1.2 --- lispfaq/apply-macros.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/apply-macros.xml Mon Mar 22 15:07:41 2004 @@ -13,48 +13,43 @@ - OK, so what's the real reason? The - reason that AND and - OR are macros rather than functions - is because they implement control structure in addition to - computing a boolean value. They evaluate their subforms - sequentially from left/top to right/bottom, and stop - evaluating subforms as soon as the result can be - determined (in the case of AND, as + OK, so what's the real reason? The reason + that AND and OR are + macros rather than functions is because they implement control + structure in addition to computing a boolean value. They + evaluate their subforms sequentially from left/top to + right/bottom, and stop evaluating subforms as soon as the result + can be determined (in the case of AND, as soon as a subform returns NIL; in the case of - OR, as soon as one returns non-NIL); - this is referred to as "short circuiting" in computer - language parlance. APPLY and - FUNCALL, however, are ordinary - functions; therefore, their arguments are evaluated - automatically, before they are called. Thus, were - APPLY able to be used with - #'AND, the short-circuiting would be - defeated. + OR, as soon as one returns non-NIL); this + is referred to as "short circuiting" in computer language + parlance. APPLY and + FUNCALL, however, are ordinary functions; + therefore, their arguments are evaluated automatically, before + they are called. Thus, were APPLY able to + be used with #'AND, the short-circuiting + would be defeated. - Perhaps you don't really care about the - short-circuiting, and simply want the functional, boolean - interpretation. While this may be a reasonable - interpretation of trying to apply AND or OR, it doesn't - generalize to other macros well, so there's no obvious way - to have the Lisp system "do the right thing" when trying - to apply macros. The only function associated with a + Perhaps you don't really care about the short-circuiting, and + simply want the functional, boolean interpretation. While this + may be a reasonable interpretation of trying to apply AND or OR, + it doesn't generalize to other macros well, so there's no + obvious way to have the Lisp system "do the right thing" when + trying to apply macros. The only function associated with a macro is its expander function; this function accepts and - returns and form, so it cannot be used to compute the - value. + returns and form, so it cannot be used to compute the value. The Common Lisp functions EVERY and - SOME can be used to get the - functionality you intend when trying to apply - #'AND and #'OR. - For instance, the erroneous form: - (apply #'and *list*) - can be translated to the correct form: - (every #'identity *list*). + SOME can be used to get the functionality + you intend when trying to apply #'AND and + #'OR. For instance, the erroneous form: + (apply #'and *list*) can be translated to + the correct form: (every #'identity + *list*). Index: lispfaq/array-initialize.xml diff -u lispfaq/array-initialize.xml:1.1 lispfaq/array-initialize.xml:1.2 --- lispfaq/array-initialize.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/array-initialize.xml Mon Mar 22 15:07:41 2004 @@ -1,15 +1,24 @@ - I want an array of foos, but (make-array 10 :initial-element - (make-foo)) causes strange bugs. Why? + I want an array of foos, but + + + (make-array 10 :initial-element (make-foo)) + + + causes strange bugs. Why? Well, the array created above contains 10 pointers to the same foo, which will indeed cause strange bugs. The correct way to - initialize your array is probably (map-into (make-array 10) #'make-foo) + initialize your array is probably + + + (map-into (make-array 10) #'make-foo) + Index: lispfaq/books.xml diff -u lispfaq/books.xml:1.1 lispfaq/books.xml:1.2 --- lispfaq/books.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/books.xml Mon Mar 22 15:07:41 2004 @@ -1,6 +1,5 @@ - What books should I read to learn more about - lisp? + What books should I read to learn more about lisp? Index: lispfaq/continuations.xml diff -u lispfaq/continuations.xml:1.1 lispfaq/continuations.xml:1.2 --- lispfaq/continuations.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/continuations.xml Mon Mar 22 15:07:41 2004 @@ -1,26 +1,26 @@ - - Why doesn't Common Lisp have continuations? - - - - Continuations are a great theoretical tool; if a language has - first-class, multiply invocable continuations then one can build - threads, exceptions, coroutines, and the kitchen sink on top. - - - However, there is an implementation burden with continuations; - supporting first-class, multiply invocable continuations - complicates things tremendously for the Lisp implementor. The - ANSI standardizing committee J13, mindful of this, took the view - that it would be better to specify the user-level control - structure (CATCH, UNWIND-PROTECT, and so on) and let - implementors choose whether to build those on top of - continuations or not. - - - If you need to play with continuations, you should use a Scheme - implementation. - - + + Why doesn't Common Lisp have continuations? + + + + Continuations are a great theoretical tool; if a language has + first-class, multiply invocable continuations then one can build + threads, exceptions, coroutines, and the kitchen sink on top. + + + However, there is an implementation burden with continuations; + supporting first-class, multiply invocable continuations + complicates things tremendously for the Lisp implementor. The + ANSI standardizing committee J13, mindful of this, took the view + that it would be better to specify the user-level control + structure (CATCH, UNWIND-PROTECT, and so on) and let + implementors choose whether to build those on top of + continuations or not. + + + If you need to play with continuations, you should use a Scheme + implementation. + + Index: lispfaq/faq.xsl diff -u lispfaq/faq.xsl:1.1 lispfaq/faq.xsl:1.2 --- lispfaq/faq.xsl:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/faq.xsl Mon Mar 22 15:07:41 2004 @@ -13,5 +13,11 @@ + + + + + generated HTML; do not edit + Index: lispfaq/flet.xml diff -u lispfaq/flet.xml:1.1 lispfaq/flet.xml:1.2 --- lispfaq/flet.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/flet.xml Mon Mar 22 15:07:41 2004 @@ -1,13 +1,14 @@ - Does anyone actually use flet? + Does anyone actually use FLET? - This question is usually motivated by the existence of labels, - which is a similar form for binding functions, but also allows - mutual recursion between the functions being bound. Given - this, it is perhaps natural to question the utility of flet. + This question is usually motivated by the existence of + LABELS, which is a similar form for binding + functions, but also allows mutual recursion between the + functions being bound. Given this, it is perhaps natural to + question the utility of FLET. However, there are two reasons for using flet: one idiomatic @@ -23,8 +24,10 @@ the behaviour of functions, for instance (a contrived example due to Kent Pitman): - (defun square (x) (* x x)) - (flet ((square (x) (make-instance 'square :area (square - x)))) ...) + + (defun square (x) (* x x)) + + (flet ((square (x) (make-instance 'square :area (squarex)))) ...) + Index: lispfaq/freelisp.xml diff -u lispfaq/freelisp.xml:1.1 lispfaq/freelisp.xml:1.2 --- lispfaq/freelisp.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/freelisp.xml Mon Mar 22 15:07:41 2004 @@ -4,8 +4,8 @@ - There are a number of free (in both the `gratis' and the - `libre' senses) lisp environments: + There are a number of free (in both the `gratis' and the `libre' + senses) lisp environments: Index: lispfaq/on-topic.xml diff -u lispfaq/on-topic.xml:1.1 lispfaq/on-topic.xml:1.2 --- lispfaq/on-topic.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/on-topic.xml Mon Mar 22 15:07:41 2004 @@ -15,7 +15,7 @@ the history and evolution of Lisp tends also to be welcomed, or at least tolerated; discussion of non-standard lisps (though generally not Scheme or Emacs Lisp) is also accepted. Though - CLOS (the Common Lisp Object System) has CLOS (the Common Lisp Object System) has its own newsgroup it is also part of ANSI CL, and so is a valid topic for discussion. Index: lispfaq/online.xml diff -u lispfaq/online.xml:1.1 lispfaq/online.xml:1.2 --- lispfaq/online.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/online.xml Mon Mar 22 15:07:41 2004 @@ -21,7 +21,7 @@ - CLiki + CLiki An on-line Wiki-equivalent with emphasis on Free software written in Common Lisp. From emarsden at common-lisp.net Tue Mar 23 10:11:48 2004 From: emarsden at common-lisp.net (Eric Marsden) Date: Tue, 23 Mar 2004 05:11:48 -0500 Subject: [lispfaq-cvs] CVS update: lispfaq/faq.css lispfaq/faq.xsl lispfaq/freelisp.xml lispfaq/hello-world.xml lispfaq/no-data-types.xml lispfaq/on-topic.xml lispfaq/online.xml lispfaq/prolisp.xml lispfaq/scheme.xml Message-ID: Update of /project/lispfaq/cvsroot/lispfaq In directory common-lisp.net:/tmp/cvs-serv24224 Modified Files: faq.css faq.xsl freelisp.xml hello-world.xml no-data-types.xml on-topic.xml online.xml prolisp.xml scheme.xml Log Message: - formatting changes: updated style-sheet, first section now on separate chunk - fixed links to old HyperSpec location Date: Tue Mar 23 05:11:47 2004 Author: emarsden Index: lispfaq/faq.css diff -u lispfaq/faq.css:1.1.1.1 lispfaq/faq.css:1.2 --- lispfaq/faq.css:1.1.1.1 Fri Mar 5 13:17:14 2004 +++ lispfaq/faq.css Tue Mar 23 05:11:47 2004 @@ -1,121 +1,85 @@ -SPAN.EMPHASIS, SPAN.ULINK1, SPAN.TITLE1, SPAN.ARTICLE { - font-family: Times New Roman; - font-weight: 500; - font-style: italic; - font-size: 10pt; - color: #000000; -} -SPAN.ULINK2, SPAN.TITLE3 { - font-family: Times New Roman; - font-weight: 700; - font-style: normal; - font-size: 24.883pt; - color: #000000; -} -SPAN.FUNCTION, SPAN.COMPUTEROUTPUT { - font-family: Courier New; - font-weight: 500; - font-style: normal; - font-size: 9pt; - color: #000000; -} -SPAN.USERINPUT { - font-family: Courier New; - font-weight: 700; - font-style: normal; - font-size: 10pt; - color: #000000; -} -SPAN.LITERALLAYOUT, SPAN.TERM2, SPAN.LISTITEM2, SPAN.ANSWER2, SPAN.QUESTION3, SPAN.ULINK3, SPAN.PARA2 { - font-family: Times New Roman; - font-weight: 500; - font-style: normal; - font-size: 10pt; - color: #000000; -} -SPAN.COMMAND, SPAN.QUESTION2, SPAN.TITLE5 { - font-family: Times New Roman; - font-weight: 700; - font-style: normal; - font-size: 10pt; - color: #000000; -} -DIV { margin-top: 0pt; margin-bottom: 0pt; margin-left: 0pt; margin-right: 0pt } -DIV.TITLE7 { - margin-top: 2.5pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.LISTITEM3 { - margin-left: 20pt; - margin-top: 5pt; - text-align: left; - line-height: 13pt; - text-indent: -20pt; -} -DIV.LITERALLAYOUT, DIV.TERM3 { - margin-top: 10pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.LISTITEM1 { - margin-left: 44pt; - margin-top: 5pt; - text-align: left; - line-height: 13pt; - text-indent: -20pt; -} -DIV.PARA5, DIV.TERM1, DIV.QUESTION1 { - margin-left: 24pt; - margin-top: 10pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.TITLE4, DIV.PARA3 { - margin-top: 5pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.QUESTION6, DIV.ANSWER1 { - margin-left: 24pt; - margin-top: 2.5pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.ANSWER4, DIV.QUESTION4 { - margin-left: 24pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.ANSWER3, DIV.QUESTION5, DIV.PARA4 { - margin-left: 24pt; - margin-top: 5pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.TITLE6 { - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.PARA1 { - margin-left: 18.803pt; - margin-right: 18.803pt; - margin-top: 5pt; - text-align: left; - line-height: 13pt; - text-indent: 0pt; -} -DIV.TITLE2 { - margin-top: 18.662pt; - text-align: center; - line-height: 32.348pt; - text-indent: 0pt; +html { + color: black; + background-color: white; + margin-left: 4%; + margin-right: 2%; +} + +h1 { + text-align: center; + font-family: Helvetica, Arial, sans-serif +} + +h2 { + color: #515e4b; + font-family: Helvetica, Arial, sans-serif +} + +h3 { + font-family: Helvetica, Arial, sans-serif; +} + +.lisp { + background: #aaaaaa; + border:solid #aaaaaa 0.1px; + white-space:pre; + font-family: sans-serif; +} + +.example { + background: #cccccc; + border:solid #cccccc 0.1px; + white-space:pre; +} + +.code { + background: #faf0e6; + border:solid #faf0e6 1px; + white-space:pre; +} + +.technical { + background: #dddddd; + border: solid black 1px; + padding-left: 1em; + padding-right: 1em; + padding-top: 1ex; + padding-bottom: 1ex; + font-size: smaller; + font-stretch: semi-condensed; + margin-left: 10%; +} + +.credits { + background: #eeeeee; + font-stretch: condensed; + font-size: 0.8em; + font-family: Helvetica, Arial, sans-serif; + text-align: right; +} + +.function-name { + color: rgb(25%,0%,0%); +} + +.variable { + color: rgb(0%,25%,0%); +} + + +A:link +{ + text-decoration: none +} +A:active +{ + text-decoration: none +} +A:visited +{ + text-decoration: none +} +A:hover +{ + text-decoration: underline } Index: lispfaq/faq.xsl diff -u lispfaq/faq.xsl:1.2 lispfaq/faq.xsl:1.3 --- lispfaq/faq.xsl:1.2 Mon Mar 22 15:07:41 2004 +++ lispfaq/faq.xsl Tue Mar 23 05:11:47 2004 @@ -6,7 +6,7 @@ - + @@ -14,6 +14,7 @@ + Index: lispfaq/freelisp.xml diff -u lispfaq/freelisp.xml:1.2 lispfaq/freelisp.xml:1.3 --- lispfaq/freelisp.xml:1.2 Mon Mar 22 15:07:41 2004 +++ lispfaq/freelisp.xml Tue Mar 23 05:11:47 2004 @@ -52,15 +52,15 @@ ECLS + url="http://ecls.sourceforge.net/">ECL - Standing for `Embeddable Common Lisp', ECL is an - implementation of Common Lisp running on at least x86, - Sparc and PPC architectures, under Linux, FreeBSD, - Solaris, MacOSX and Windows (Using the CYGWIN - environment). As well as a bytecode compiler, ECL can - compile to C. ECL is licensed under the GNU LGPL. + Standing for Embeddable Common + Lisp, ECL is an implementation of Common + Lisp running on at least x86, Sparc and PPC architectures, + under Linux, FreeBSD, Solaris, MacOSX and Windows (using + the cygwin environment). As well as a bytecode compiler, + ECL can compile to C. ECL is licensed under the GNU LGPL. @@ -69,12 +69,13 @@ url="http://savannah.gnu.org/projects/gcl/">GCL - Gnu Common Lisp has languished in the past as a non-ANSI - compliant Common Lisp; recent times have let it see more - developments towards supporting the ANSI Common Lisp - standard. It cannot (yet) be recommended as a Common Lisp, - but it is still useful for running software written for it - (primarily Maxima). GCL is licensed under the GNU LGPL. + GNU Common Lisp has languished + in the past as a non-ANSI compliant Common Lisp; recent + times have let it see more developments towards supporting + the ANSI Common Lisp standard. It cannot (yet) be + recommended as a Common Lisp, but it is still useful for + running software written for it (primarily Maxima). GCL is + licensed under the GNU LGPL. @@ -83,10 +84,11 @@ url="http://openmcl.clozure.com/">OpenMCL - OpenMCL is an `opensourced' version of a port of a subset - of MCL 4.2, and runs on powerpc/Linux. Not quite all - functionality is yet present, but it is improving - rapidly. OpenMCL is licensed under the GNU LGPL + OpenMCL is an opensourced Common Lisp implementation + derived from MCL 4.2, and runs on MacOS X and + Linux/PowerPC. It includes a bridge to the Cocoa framework + that allows convenient manipulation of Objective C objects + in CLOS. OpenMCL is licensed under the GNU LGPL. @@ -95,7 +97,11 @@ url="http://www.poplog.org/">Poplog - Poplog is licensed under an XFree86-style license. + Poplog is an incrementally-compiled runtime that includes + a Common Lisp implementation, an ML implementation and a + Prolog implementation, all cohabiting in the same image. + It is licensed under an XFree86-style license. Poplog CL is + not actively maintained. @@ -106,9 +112,10 @@ SBCL is a fork from CMUCL aimed at improving the maintainability by removing the bootstrapping issues - involved in recompiling. Currently it runs on x86/Linux - and alpha/Linux. SBCL is licensed in a similar fashion to - CMUCL. + involved in recompiling. Currently it runs on x86/Linux, + x86/FreeBSD, PowerPC/Linux, MacOS X, MIPS/Linux, + HPPA/Linux and Alpha/Linux. SBCL is licensed in a similar + fashion to CMUCL. Index: lispfaq/hello-world.xml diff -u lispfaq/hello-world.xml:1.1 lispfaq/hello-world.xml:1.2 --- lispfaq/hello-world.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/hello-world.xml Tue Mar 23 05:11:47 2004 @@ -17,8 +17,10 @@ Something which is closer to the canonical "Hello, World!" - attempt is (format t "~&Hello, - World!~%"). + attempt is + + (write-line "Hello, World!") + Index: lispfaq/no-data-types.xml diff -u lispfaq/no-data-types.xml:1.1 lispfaq/no-data-types.xml:1.2 --- lispfaq/no-data-types.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/no-data-types.xml Tue Mar 23 05:11:47 2004 @@ -5,13 +5,13 @@ If arrays and structures don't exist, then obviously MAKE-ARRAY + url="http://www.lispworks.com/reference/HyperSpec/Body/f_mk_ar.htm">MAKE-ARRAY and DEFSTRUCT + url="http://www.lispworks.com/reference/HyperSpec/Body/m_defstr.htm">DEFSTRUCT must be figments of the imagination. Similarly, since Lisp only uses association lists to organize "database-like" information, MAKE-HASH-TABLE + url="http://www.lispworks.com/reference/HyperSpec/Body/f_mk_has.htm">MAKE-HASH-TABLE must also be a figment of the imagination. Index: lispfaq/on-topic.xml diff -u lispfaq/on-topic.xml:1.2 lispfaq/on-topic.xml:1.3 --- lispfaq/on-topic.xml:1.2 Mon Mar 22 15:07:41 2004 +++ lispfaq/on-topic.xml Tue Mar 23 05:11:47 2004 @@ -4,7 +4,7 @@ - Disscussion of the language defined by the ANSI Common Lisp + Discussion of the language defined by the ANSI Common Lisp standard is definitely on-topic on comp.lang.lisp. Unlike comp.lang.c, we do not restrict our discussions to the standard, but also actively discuss the differences between Index: lispfaq/online.xml diff -u lispfaq/online.xml:1.2 lispfaq/online.xml:1.3 --- lispfaq/online.xml:1.2 Mon Mar 22 15:07:41 2004 +++ lispfaq/online.xml Tue Mar 23 05:11:47 2004 @@ -5,7 +5,7 @@ - The Common Lisp Hyperspec + The Common Lisp Hyperspec A non-normative transferral of the official ANSI standard for Common Lisp to the hypertext medium, by @@ -25,6 +25,19 @@ An on-line Wiki-equivalent with emphasis on Free software written in Common Lisp. + + + + Planet.Lisp + + Aggregator for the weblogs and diaries of various + Common Lisp hackers. + + + + Common-Lisp.net + + Home to a number of Common Lisp development projects. Index: lispfaq/prolisp.xml diff -u lispfaq/prolisp.xml:1.1 lispfaq/prolisp.xml:1.2 --- lispfaq/prolisp.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/prolisp.xml Tue Mar 23 05:11:47 2004 @@ -1,6 +1,6 @@ - Where can I buy a professional lisp system? + Where can I buy a commercial lisp system? There are a fair few commercial vendors of Lisp systems; the @@ -11,13 +11,13 @@ Franz Inc's Allegro Common Lisp is a fine lisp development environment. See their website for more - details + details. LCL LCL (formerly Liquid Common Lisp) is an offering from - Xanalys + Xanalys. Another offering from Xanalys, LispWorks has a different set of extensions above the ANSI specification - from LCL + from LCL. Scheme is a member of the greater family of Lisp languages, assuming that is considered to include others like Dylan and - Emacs Lisp. The design of Scheme predates the ANSI Common Lisp - standard, and some CL features such as lexical scoping may be - considered to have been derived from Scheme. + Emacs Lisp. The design of Scheme predates + the ANSI Common Lisp standard, and some CL features such as + lexical scoping may be considered to have been derived from + Scheme. More detailed comparative discussions don't generally prove very From crhodes at common-lisp.net Tue Mar 23 12:08:05 2004 From: crhodes at common-lisp.net (Christophe Rhodes) Date: Tue, 23 Mar 2004 07:08:05 -0500 Subject: [lispfaq-cvs] CVS update: lispfaq/freelisp.xml Message-ID: Update of /project/lispfaq/cvsroot/lispfaq In directory common-lisp.net:/tmp/cvs-serv15776 Modified Files: freelisp.xml Log Message: clisp's clos is more-or-less complete link to Maxima and Axiom from gcl sbcl runs on many unix and unix-like systems Date: Tue Mar 23 07:08:04 2004 Author: crhodes Index: lispfaq/freelisp.xml diff -u lispfaq/freelisp.xml:1.3 lispfaq/freelisp.xml:1.4 --- lispfaq/freelisp.xml:1.3 Tue Mar 23 05:11:47 2004 +++ lispfaq/freelisp.xml Tue Mar 23 07:08:04 2004 @@ -14,11 +14,8 @@ A lightweight common lisp interpreter and compiler, which compiles to bytecode, and runs on Windows, AmigaOS, - Acorns, OS/2 and most flavours of Unix. CLISP's - implementation of CLOS is currently not - quite complete. CLISP is licensed under the GNU - GPL. + Acorns, OS/2 and most flavours of Unix. CLISP is licensed + under the GNU GPL. @@ -74,8 +71,11 @@ times have let it see more developments towards supporting the ANSI Common Lisp standard. It cannot (yet) be recommended as a Common Lisp, but it is still useful for - running software written for it (primarily Maxima). GCL is - licensed under the GNU LGPL. + running software written for it (primarily Maxima and + Axiom). + GCL is licensed under the GNU LGPL. @@ -112,10 +112,10 @@ SBCL is a fork from CMUCL aimed at improving the maintainability by removing the bootstrapping issues - involved in recompiling. Currently it runs on x86/Linux, - x86/FreeBSD, PowerPC/Linux, MacOS X, MIPS/Linux, - HPPA/Linux and Alpha/Linux. SBCL is licensed in a similar - fashion to CMUCL. + involved in recompiling. It runs on many Unix and + Unix-like systems (including Mac OS X). SBCL is licensed + in a similar fashion to CMUCL: mostly in the Public Domain, + with some BSD-like and MIT-like portions. From emarsden at common-lisp.net Tue Mar 23 13:43:37 2004 From: emarsden at common-lisp.net (Eric Marsden) Date: Tue, 23 Mar 2004 08:43:37 -0500 Subject: [lispfaq-cvs] CVS update: lispfaq/executable.xml lispfaq/faq.xml Message-ID: Update of /project/lispfaq/cvsroot/lispfaq In directory common-lisp.net:/tmp/cvs-serv22921 Modified Files: executable.xml faq.xml Log Message: - add provisional answer for "standalone executable" - add id to the first sect1 Date: Tue Mar 23 08:43:37 2004 Author: emarsden Index: lispfaq/executable.xml diff -u lispfaq/executable.xml:1.1 lispfaq/executable.xml:1.2 --- lispfaq/executable.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/executable.xml Tue Mar 23 08:43:36 2004 @@ -2,4 +2,75 @@ How do I make an executable from my programme? + + + + This depends on your implementation; you will need to consult + your vendor's documentation. + + + + With ECL and GCL, the standard compilation process will + produce a native executable. + + + With LispWorks, see the + Delivery User's Guide section of the + documentation. + + + With Allegro Common Lisp, see the + Delivery section of the manual. + + + + + However, the classical way of interacting with Common Lisp + programs does not involve standalone executables. Let's consider + this during two phases of the development process: programming + and delivery. + + + + Programming phase: Common Lisp + development has more of an incremental feel than is common in + batch-oriented languages, where an edit-compile-link cycle is + common. A CL developer will run simple tests and transient + interactions with the environment at the REPL + (or Read-Eval-Print-Loop, also known as the + listener). Source code is saved in files, + and the build/load dependencies between source files are + recorded in a system-description facility such as ASDF (which + plays a similar role to make in + edit-compile-link systems). The system-description facility + provides commands for building a system (and only recompiling + files whose dependencies have changed since the last build), and + for loading a system into memory. + + + Most Common Lisp implementations also provide a "save-world" + mechanism that makes it possible to save a snapshot of the + current lisp image, in a form which can later be restarted. A + Common Lisp environment generally consists of a relatively small + executable runtime, and a larger image file that contains the + state of the lisp world. A common use of this facility is to + dump a customized image containing all the build tools and + libraries that are used on a given project, in order to reduce + startup time. For instance, this facility is available under the + name EXT:SAVE-LISP in CMUCL, + SB-EXT:SAVE-LISP-AND-DIE in SBCL, + EXT:SAVEINITMEM in CLISP, and + CCL:SAVE-APPLICATION in OpenMCL. The + + + Application delivery: rather + than generating a single executable file for an application, + Lisp developers generally save an image containing their + application, and deliver it to clients together with the runtime + and possibly a shell-script wrapper that invokes the runtime + with the application image. On Windows platforms this can be + hidden from the user by using a click-o-matic + InstallShield type tool. + + Index: lispfaq/faq.xml diff -u lispfaq/faq.xml:1.1 lispfaq/faq.xml:1.2 --- lispfaq/faq.xml:1.1 Mon Mar 22 13:55:25 2004 +++ lispfaq/faq.xml Tue Mar 23 08:43:37 2004 @@ -59,7 +59,7 @@ url="http://www.common-lisp.net/project/lispfaq/">http://www.common-lisp.net/project/lispfaq/. - This newsgroup + This newsgroup &purpose; &on-topic;