diff --git a/doc/asdf.texinfo b/doc/asdf.texinfo index f90deeab5c7417454c9681c789d217f372d41865..721eea238e21c3b22d2cbb57d7a7e0796b59326d 100644 --- a/doc/asdf.texinfo +++ b/doc/asdf.texinfo @@ -36,11 +36,11 @@ for Common Lisp programs and libraries. You can find the latest version of this manual at @url{http://common-lisp.net/project/asdf/asdf.html}. -ASDF Copyright @copyright{} 2001-2014 Daniel Barlow and contributors. +ASDF Copyright @copyright{} 2001-2015 Daniel Barlow and contributors. -This manual Copyright @copyright{} 2001-2014 Daniel Barlow and contributors. +This manual Copyright @copyright{} 2001-2015 Daniel Barlow and contributors. -This manual revised @copyright{} 2009-2014 Robert P. Goldman and Francois-Rene Rideau. +This manual revised @copyright{} 2009-2015 Robert P. Goldman and Francois-Rene Rideau. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -395,8 +395,7 @@ to make sure it's all working properly. @xref{Using ASDF}. @node Loading a pre-installed ASDF, Checking whether ASDF is loaded, Loading ASDF, Loading ASDF @section Loading a pre-installed ASDF -Most recent Lisp implementations include a copy of ASDF 3, -or at least ASDF 2. +All actively maintained Lisp implementations now include a copy of ASDF 3. You can usually load this copy using Common Lisp's @code{require} function.@footnote{ NB: all implementations except GNU CLISP also accept @code{(require "ASDF")}, @code{(require 'asdf)} and @code{(require :asdf)}. @@ -409,7 +408,7 @@ For portability's sake, you should use @code{(require "asdf")}. As of the writing of this manual, the following implementations provide ASDF 3 this way: -ABCL, Allegro CL, Clozure CL, CMUCL, ECL, GNU CLISP, LispWorks, MKCL, SBCL. +ABCL, Allegro CL, CLASP, Clozure CL, CMUCL, ECL, GNU CLISP, LispWorks, MKCL, SBCL. The following implementations only provide ASDF 2: mocl, XCL. The following implementations don't provide ASDF: @@ -417,11 +416,11 @@ Corman CL, GCL, Genera, MCL, SCL. The latter implementations are not actively maintained (except maybe GCL); if some of them are ever released again, they probably will include ASDF 3. -If the implementation you are using doesn't provide ASDF 2 or ASDF 3, +If the implementation you are using doesn't provide a recent ASDF 3, see @pxref{Loading ASDF,,Loading ASDF from source} below. If that implementation is still actively maintained, you may also send a bug report to your Lisp vendor and complain -about their failing to provide ASDF. +about their failing to provide an up-to-date ASDF. @node Checking whether ASDF is loaded, Upgrading ASDF, Loading a pre-installed ASDF, Loading ASDF @section Checking whether ASDF is loaded @@ -494,11 +493,17 @@ amongst the regularly configured systems, before it compiles anything else. @node Upgrading your implementation's ASDF, Issues with upgrading ASDF, Upgrading ASDF, Upgrading ASDF @subsection Upgrading your implementation's ASDF -Most implementations provide a recent ASDF 3 in their latest release. +@c Now that all implementations provide ASDF 3, most issues become trivial, +@c except on CMUCL where upgrade doesn't work. +@c Most of the upgrading section might be moved to an advanced chapter +@c rather than being in an early section that will trouble the novice. + +All maintained implementations now provide ASDF 3 in their latest release. If yours doesn't, we recommend upgrading your implementation. -If the latest version of your implementation still doesn't provide ASDF, -or provides an old version, we recommend installing a recent ASDF so your implementation provides it, -as explained below. +If you want to stick to an old implementation that didn't provide ASDF or provided an old version, +we recommend installing a recent ASDF, as explained below, +into your implementation's installation directory; +thus your modified implementation will now provide ASDF 3. If all fails, we recommend you load ASDF from source @pxref{Loading ASDF,,Loading ASDF from source}. @@ -562,7 +567,7 @@ at the very beginning of whatever script you are running, before you start using ASDF to load anything else. @item -Until all implementations provide ASDF 3 or later, +Until all implementations provide ASDF 3 or later (now the case in May 2015), it is unsafe to upgrade ASDF as part of loading a system that depends on a more recent version of ASDF, since the new one might shadow the old one while the old one is running, @@ -578,7 +583,7 @@ with such code as: (error "FOO requires ASDF ~A or later." *required-asdf-version*)) @end example @item -Until all implementations provide ASDF 3 or later, +Until all implementations provide ASDF 3 or later (now the case in May 2015), it is unsafe for a system to transitively depend on ASDF and not directly depend on ASDF; if any of the system you use either depends-on asdf, @@ -586,6 +591,11 @@ system-depends-on asdf, or transitively does, you should also do as well. @end itemize +Note that bugs in CMUCL and XCL prevent upgrade of ASDF. +Happily, CMUCL comes with a recent ASDF, +and XCL is more of a working demo than something you'd use seriously anyway. + + @node Loading ASDF from source, , Upgrading ASDF, Loading ASDF @section Loading ASDF from source @@ -1265,7 +1275,7 @@ system-option := :defsystem-depends-on system-list | module-option | option -# These are only available since ASDF3 (actually its alpha release 2.27) +# These are only available since ASDF 3 (actually its alpha release 2.27) system-option := :homepage string | :bug-tracker string | :mailto string @@ -4375,9 +4385,9 @@ on implementations that support Unicode, and you can use reader-conditionalizati to protect any @code{:encoding @emph{encoding}} statement, as in @code{#+asdf-unicode :encoding #+asdf-unicode :utf-8}. We recommend that you avoid using unprotected @code{:encoding} specifications -until after ASDF 2.21 or later becomes widespread -(in April 2014, only LispWorks lags with ASDF 2.019, -and is scheduled to be updated later this year). +until after ASDF 2.21 or later becomes widespread. +As of May 2015, all maintained implementations provide ASDF 3, +so you may prudently start using this and other features without such protection. While it offers plenty of hooks for extension, and one such extension is available (see @code{asdf-encodings} below), diff --git a/header.lisp b/header.lisp index 349c64292f82959a062f596c67f7ba28c3a336b4..b7e57e6bb21e96067d5ae95839d0413798de5966 100644 --- a/header.lisp +++ b/header.lisp @@ -19,7 +19,7 @@ ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009) ;;; -;;; Copyright (c) 2001-2014 Daniel Barlow and contributors +;;; Copyright (c) 2001-2015 Daniel Barlow and contributors ;;; ;;; Permission is hereby granted, free of charge, to any person obtaining ;;; a copy of this software and associated documentation files (the diff --git a/tools/install-asdf.lisp b/tools/install-asdf.lisp index 0c94cd350a7e524781aeb7e7f0df33152c17401d..c1ba25c856a915628e63667049f9ff8724eadbf2 100755 --- a/tools/install-asdf.lisp +++ b/tools/install-asdf.lisp @@ -1,11 +1,11 @@ ":" ; exec cl-launch "$0" "$@" # -*- Lisp -*- #| Usage: make && ./tools/asdf-tools install-asdf lispworks - or make && l=lispworks ./tools/asdf-tools install-asdf - or make && cl-launch -l lispworks bin/install-asdf-as-module + or make l=lispworks install-asdf + or make && cl-launch -l lispworks tools/install-asdf.lisp or make sbcl # or otherwise start your Lisp - (load "bin/install-asdf-as-module") + (load "tools/install-asdf.lisp") This script will install the current version of ASDF as a module pre-compiled for your implementation, @@ -26,6 +26,11 @@ It notably doesn't work on: * mocl, that doesn't support ASDF 3 yet. * Corman Lisp, RMCL, Genera, that are obsolete anyway. +Note that if you're using it with LispWorks, you first have to create +a command-line executable for LispWorks this way: + + echo '(hcl:save-image "lispworks-console" :environment nil)' > si.lisp + lispworks-7-0-0-x86-linux -siteinit - -init - -build si.lisp |# #+gcl diff --git a/tools/load-asdf.lisp b/tools/load-asdf.lisp index c923492516ed527df414caabf636918042886ba2..0b40830255e976e2f3d4ce484788a256d630f52b 100644 --- a/tools/load-asdf.lisp +++ b/tools/load-asdf.lisp @@ -42,12 +42,12 @@ (ignore-errors (and (probe-file x) (load x)))) (load-and-configure-asdf () ;; First, try to require ASDF from the implementation, if not already loaded. - ;; Most implementations provide ASDF 3.0, LispWorks still lags with ASDF 2.019, - ;; and some unmaintained implementations, or obsolete implementations or versions thereof - ;; only provide ASDF 2, ASDF 1, or don't provide ASDF. + ;; All actively maintained implementations now provide ASDF 3.0; + ;; some old versions of maintained implementations, and some unmaintained + ;; or obsolete implementations only provide ASDF 2, ASDF 1, or don't provide ASDF. ;; Note that CLISP is case-sensitive, so we need to specify a lowercase string, - ;; and not the keyword :asdf or symbol 'asdf; old CLISP versions that don't provide ASDF - ;; may error at compile-time if we call (require "asdf") directly. + ;; and not the keyword :asdf or symbol 'asdf; also old CLISP versions that don't + ;; provide ASDF may error at compile-time if we call (require "asdf") directly. (ignore-errors (funcall 'require "asdf")) ;; If ASDF 2 isn't provided, load our ASDF from source. ;; ASDF 1 is not enough, because it won't heed our project's output-translations.