Subject: Re: ASDF-INSTALL for CMUCL, CLISP, AllegroCL, and LispWorks - plus tutorial
From: rpw3@rpw3.org (Rob Warnock)
Date: Sat, 17 Jan 2004 04:22:30 -0600
Newsgroups: comp.lang.lisp
Message-ID: <eIqdnS5PQpF7kZTdRVn-ig@speakeasy.net>
Don Geddis  <don@geddis.org> wrote:
+---------------
| But what does "depreciated" mean for you, then?
+---------------

[That the value recognized for tax or net-worth purposes has declined???
I think you meant "deprecated".]

The dictionary says that "deprecate" means "play down" or "make little of" 
or "express disapproval of", but since this is in the context of Common Lisp,
why not look directly to the standard:

	<URL:http://www.lispworks.com/reference/HyperSpec/Body/01_h.htm>

	1.8 Deprecated Language Features

	Deprecated language features are not expected to appear in future
	Common Lisp standards, but are required to be implemented for
	conformance with this standard; see Section 1.5.1.1 (Required
	Language Features).

	Conforming programs can use deprecated features; however, it is
	considered good programming style to avoid them. It is permissible
	for the compiler to produce style warnings about the use of such
	features at compile time, but there should be no such warnings at
	program execution time.

I read this as saying that deprecated features are *at most* an issue of
style [about which there are arguments forever]. It is certainly *not* an
issue of conformance, since conforming implementations are *required* to
implement them and conforming programs are explicitly permitted to use them.

For myself, I tend to use REQUIRE/PROVIDE for single-file "library"
features, whether local or imported, that various random *other*
programs might want to access -- much like using "#include <foo.h>"
and "-lfoo" in C -- particularly if the using program is small or
lightweight, such as a Unix shell script or a CGI script. E.g., most
of my CGI scripts tend to start with:

	;;; CGI SCRIPTS W/ SQL -- Standard prologue
	(eval-when (:compile-toplevel :load-toplevel :execute)
	  (require :utils)	; Misc. local hacks I like to have around.
	  (require :htout)	; Tim Bradshaw's HTML macros.
	  (require :uri)	; More local hacks (CGI support stuff).
	  (require :pg))	; Eric Marsden's PostgreSQL binding

Conversely, I tend to use ASDF for anything that smells more like a
"system" (such as a whole Lisp application server), and in that case
subsystems like HTOUT or PG get loaded via ASDF instead of REQUIRE.

Your chosen style(s) may well differ from mine.


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607