On Sat, Dec 17, 2005 at 06:42:55PM -0500, Erik Enge wrote:
> On 12/17/05, Tolstoy <[EMAIL PROTECTED]> wrote:
> > What I'd like to see is some sort of Lisp Standard Library (lsl?)
> > containing a full suite of packages most of us use in most of our
> > jobs (whether writing in common lisp or not).
>
> I've been thinking alot about this over the last few years, I think
> it's a good idea.
AOL!
> > What do you all think?
>
> Instead of releasing, versioning and otherwise maintaining any
> actual code I think it would be great if the "standard library"
> (unfortunate name, perhaps) could be a set of (specific versions of)
> libraries which are known to work together. If there are any
> problems, patches should migrate upstream so there's no real code
> maintenance of the libraries. This set could be expressed as an
> ASDF system which depended on all the libraries; the net result of
> which would be that asdf-install and (require 'standard-lib) would
> all work just they way you would expect them but still we are not
> maintaining any actual code.
>
> Using the abovementioned approach does however mean that all these
> systems' code would be loaded into your image whether you used them
> or not.
<snip>
> I personally would be happy to simply download the "standard
> library" and have my code depend on individual packages (ie no
> secondary mechanism would be necessary) but others might not agree.
Well, I agree. Perl and Python both get along quite nicely on this
model (and Lisp used to (does?) too; cf. REQUIRE).
I've thought for a while that I'd like a "personal Common Lisp", which
had all the libraries I could ever want (but not necessarily all at
once :), and where I could do some of the things that you can't do in
the COMMON-LISP package, like redefine COND or DO if I wanted to.
I know, of course, that I can in fact do that, by creating my own
package, but I think the Gardeners should consider this approach.
Someone else mentioned "Community Lisp" as a good name for such a
beast.
I envision something along the lines of
(defpackage #:community-lisp
(:use)
...)
(in-package #:community-lisp
; portably solve the problem of "How can you find the text of a
; function?"
(redefine-keyword defun (name args &body body)
`(progn
(setf (gethash ',name *function-definitions*) ,body)
(cl:defun ,args @,body)))
; Portably solve the problem of serializable closures
(redefine-keyword function (args &body body)
`(progn
(let ((closure (cl:function ,args @,body)))
(record-closure closure args body)
closure)))
#|
Do readtable magic here to make #' use COMMUNITY-LISP:FUNCTION
instead of CL:FUNCTION
|#
That sort of thing.
-- Larry
_______________________________________________
Gardeners mailing list
[email protected]
http://www.lispniks.com/mailman/listinfo/gardeners