From: Conrad
Subject: Lisp package system?
Date: 
Message-ID: <1174010961.887411.283600@l77g2000hsb.googlegroups.com>
Hi, does Lisp have a package system for searching, downloading, and
installing Lisp packages?  If so, what implementations of Lisp does it
support?

Thanks,

-Conrad

From: Pillsy
Subject: Re: Lisp package system?
Date: 
Message-ID: <1174012837.137425.193650@e65g2000hsc.googlegroups.com>
On Mar 15, 10:09 pm, "Conrad" <········@gmail.com> wrote:
> Hi, does Lisp have a package system for searching, downloading, and
> installing Lisp packages?

Yup. It's called ASDF-Install.

> If so, what implementations of Lisp does it support?

OpenMCL, SBCL and Allegro all come with it. I think it works with most
others, too.

Cheers,
Pillsy
From: Peter Seibel
Subject: Re: Lisp package system?
Date: 
Message-ID: <87lkhxamcg.fsf@gigamonkeys.com>
"Pillsy" <·········@gmail.com> writes:

> On Mar 15, 10:09 pm, "Conrad" <········@gmail.com> wrote:
>> Hi, does Lisp have a package system for searching, downloading, and
>> installing Lisp packages?
>
> Yup. It's called ASDF-Install.

Though be warned that in Common Lisp the term "package" is already
used for something else entirely. Technically ASDF-Install should
probably be called a "system system" but that won't make any sense who
doesn't already understand why it should be called that.[1]

-Peter

[1] ASDF is Another System Definition Facility. In Common Lisp a
"system" is a collection of code (functions, macros, variables,
classes, methods, and--yes--packages) that come together to provide a
chunk of functionality. ASDF is a system (in the colloquial sense of
the term) for defining such collections of code. Thus it is a "system
system'. And ASDF-Install is an extension that handles downloading,
verifying digital signatures of, and installing ASDF systems.
From: Richard M Kreuter
Subject: Re: Lisp package system?
Date: 
Message-ID: <87bqit9n36.fsf@progn.net>
Peter Seibel <·····@gigamonkeys.com> writes:

> [1] ASDF is Another System Definition Facility. In Common Lisp a
> "system" is a collection of code (functions, macros, variables,
> classes, methods, and--yes--packages) that come together to provide
> a chunk of functionality. ASDF is a system (in the colloquial sense
> of the term) for defining such collections of code. Thus it is a
> "system system'.

Just to be persnickety: for the purposes of most system systems, the
term "system" has a more concrete meaning, namely, "a collection of
files".

Most systems consist only of Lisp sources, and often the only thing
you do with them is compile and load the files, so are effectively
collections of Lisp code.  But asdf at least is extensible to support
additional operations that don't treat files as code, but just as
files, such as producing tar or ZIP archives of systems, or sending
system files to a printer.

Additionally, some systems include data files, code in other
languages, or even documentation, and so some CL system facilities
support routines that operate on system components in ways that do
treat files as code in some sense, but not as Lisp code: compiling C
sources, installing files in places where operating system facilities
can find them (e.g., putting something into a directory in some search
path), processing data or documentation into alternative formats, etc.

(FWIW, I think this is slightly more than a mere quibble: in helping a
couple people get started with CL, I've found that defining "system"
as "collection of files" and "system facility" as "library of
operations on systems" seemed to make the concepts more accessible,
since these don't depend on any specifically Lispy ideas.  But it's
still a minor point.)

--
RmK