Skip to content
Snippets Groups Projects
asdf.texinfo 250 KiB
Newer Older
This not-so-frequently asked question is primarily for ASDF developers,
but those who encounter an unexpected error in some test may be
interested, too.

Here's the procedure for experimenting with tests in a REPL:
@example
;; BEWARE! Some tests expect you to be in the .../asdf/test directory
;; If your REPL is not there yet, change your current directory:
;; under SLIME, you may: ,change-directory ~/common-lisp/asdf/test/
;; otherwise you may evaluate something like:
(require "asdf") (asdf:upgrade-asdf) ;load UIOP & update asdf.lisp
(uiop:chdir (asdf:system-relative-pathname :asdf "test/"))
(setf *default-pathname-defaults* (uiop:getcwd))

;; Load the test script support.
(load "script-support.lisp")

;; Initialize the script support.
;; This will also change your *package* to asdf-test.
;; NB: this function is also available from package cl-user,
;; and also available with the shorter name da in both packages.
(asdf-test::debug-asdf)

;; In case you modified ASDF since you last tested it,
;; you need to update asdf.lisp itself by evaluating 'make' in a shell,
;; or (require "asdf") (asdf:load-system :asdf) in another CL REPL,
;; if not done in this REPL above.
;; *Then*, in this REPL, you need to evaluate:
;(asdf-test::compile-load-asdf)

;; Now, you may experiment with test code from a .script file.
;; See the instructions given at the end of your failing test
;; to identify which form is needed, e.g.
(frob-packages)
(asdf::with-asdf-cache () (load "test-utilities.script"))
@comment FIXME: Add a FAQ about how to use a new system class...

Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
@comment  node-name,  next,  previous,  up
@node  Ongoing Work, Bibliography, FAQ, Top
@unnumbered Ongoing Work
For an active list of things to be done,
see the @file{TODO} file in the source repository.
Also, bugs are currently tracked on launchpad:
@url{https://launchpad.net/asdf}.

@node Bibliography, Concept Index, Ongoing Work, Top
@unnumbered Bibliography
@item Francois-Rene Rideau:
  ``ASDF 3, or Why Lisp is Now an Acceptable Scripting Language'', 2014.
  This article describes the innovations in ASDF 3 and 3.1,
  as well as historical information on previous versions.
  @url{https://github.com/fare/asdf3-2013}
@item Alastair Bridgewater:
  ``Quick-build'' (private communication), 2012.
  @code{quick-build} is a simple and robust one file, one package build system,
  similar to @code{faslpath}, in 182 lines of code
  (117 of which are not blank, not comments, not docstrings).
  Unhappily, it remains unpublished and its IP status is unclear as of April 2014.
  @code{asdf/package-system} is mostly compatible with it,
  modulo a different setup for toplevel hierarchies.
@item Zach Beane:
  ``Quicklisp'', 2011.
  The Quicklisp blog and Xach's livejournal contain information on Quicklisp.
  @url{http://blog.quicklisp.org/}
  @url{http://xach.livejournal.com/}
@item Francois-Rene Rideau and Robert Goldman:
  ``Evolving ASDF: More Cooperation, Less Coordination'', 2010.
  This article describes the main issues solved by ASDF 2.
  @url{https://common-lisp.net/project/asdf/doc/ilc2010draft.pdf}
  @url{https://gitlab.common-lisp.org/asdf/ilc2010}
@item Francois-Rene Rideau and Spencer Brody:
  ``XCVB: an eXtensible Component Verifier and Builder for Common Lisp'', 2009.
  This article describes XCVB, a proposed competitor for ASDF;
  many of its ideas have been incorporated into ASDF 2 and 3,
  though many other ideas still haven't.
  @url{https://common-lisp.net/project/xcvb/}
@item Peter von Etter:
  ``faslpath'', 2009.
  @code{faslpath} is similar to the latter @code{quick-build}
  and our yet latter @code{asdf/package-system} extension,
  except that it uses dot @code{.} rather than slash @code{/} as a separator.
  @url{https://code.google.com/p/faslpath/}
@item Drew McDermott:
  ``A Framework for Maintaining the Coherence of a Running Lisp,''
  International Lisp Conference, 2005, available in pre-print form at
  @url{http://www.cs.yale.edu/homes/dvm/papers/lisp05.pdf}
@item Dan Barlow: ``ASDF Manual'', 2004.
  Older versions of this document from the days of ASDF 1;
  they include ideas laid down by Dan Barlow,
  and comparisons with older defsystems (@code{mk-defsystem})
  and defsystem (@code{defsystem-4}, kmp's Memo 801).
@item Marco Antoniotti and Peter Van Eynde:
 ``@code{DEFSYSTEM}: A @code{make} for Common Lisp, A Thoughtful Re-Implementation of an Old Idea'', 2002.
  The @file{defsystem-4} proposal available in the CLOCC repository.
@item Mark Kantrovitz: ``Defsystem: A Portable Make Facility for Common Lisp'', 1990.
  The classic @file{mk-defsystem}, later variants of which
  are available in the CLOCC repository as @code{defsystem-3.x}.
@item Richard Elliot Robbins:
  ``BUILD: A Tool for Maintaining Consistency in Modular Systems'', MIT AI TR 874, 1985.
  @url{ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-874.pdf}
@item Kent M. Pitman (kmp): ``The Description of Large Systems'', MIT AI Memo 801, 1984.
  Available in updated-for-CL form on the web at
  @url{http://nhplace.com/kent/Papers/Large-Systems.html}
@item Dan Weinreb and David Moon:
  ``Lisp Machine Manual'', MIT, 1981.
  The famous CHINE NUAL describes one of the earliest variants of DEFSYSTEM.
  @url{https://bitsavers.trailing-edge.com/pdf/mit/cadr/chinual_4thEd_Jul81.pdf}
@node Concept Index, Function and Class Index, Bibliography, Top
@unnumbered Concept Index
@printindex cp

@node Function and Class Index, Variable Index, Concept Index, Top
@unnumbered Function and Class Index
@printindex fn

@node Variable Index,  , Function and Class Index, Top
@unnumbered Variable Index

@c  LocalWords:  clbuild tarballs defsystem Quicklisp initarg uiop fasl
@c  LocalWords:  namestring initargs fasls