Commit 6c37702d authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Merge branch 'master' of http://common-lisp.net/project/asdf/asdf

parents 566a4234 fd15a570
Loading
Loading
Loading
Loading
+52 −10
Original line number Diff line number Diff line
@@ -668,7 +668,7 @@ usually be saved as @file{hello-lisp.asd}:

(defsystem "hello-lisp"
  :description "hello-lisp: a sample Lisp system."
  :version "0.2"
  :version "0.2.1"
  :author "Joe User <joe@@example.com>"
  :licence "Public Domain"
  :components ((:file "packages")
@@ -724,6 +724,19 @@ It is possible, though almost never necessary, to override this behaviour.}.
This is a good thing because the user can move the system sources
without having to edit the system definition.

@c FIXME: Should have cross-reference to "Version specifiers" in the
@c defsystem grammar, but the cross-referencing is so broken by
@c insufficient node breakdown that I have not put one in.
@item
Make sure you know how the @code{:version} numbers will be parsed!  They
are parsed as period-separated lists of integers.  I.e., in the example,
@code{0.2.1} is to be interpreted, roughly speaking, as @code{(0 2 1)}.
In particular, version @code{0.2.1} is interpreted the same as
@code{0.0002.1} and is strictly version-less-than version @code{0.20.1},
even though the two are the same when interpreted as decimal fractions.
@cindex version specifiers
@cindex :version

@end itemize

@node  A more involved example, The defsystem grammar, The defsystem form, Defining systems with defsystem
@@ -735,7 +748,7 @@ slightly convoluted example:

@lisp
(defsystem "foo"
  :version "1.0"
  :version "1.0.0"
  :components ((:module "mod"
                            :components ((:file "bar")
                                                  (:file"baz")
@@ -853,7 +866,6 @@ component-dep-fail-option := :fail | :try-next | :ignore
@end example



@subsection Component names

Component names (@code{simple-component-name})
@@ -954,6 +966,22 @@ fulfills whatever constraints are required from that component type
on the other hand, you can circumvent the file type that would otherwise
be forced upon you if you were specifying a string.

@subsection Version specifiers
@cindex version specifiers
@cindex :version

Version specifiers are parsed as period-separated lists of integers.  I.e., in the example,
@code{0.2.1} is to be interpreted, roughly speaking, as @code{(0 2 1)}.
In particular, version @code{0.2.1} is interpreted the same as
@code{0.0002.1} and is strictly version-less-than version @code{0.20.1},
even though the two are the same when interpreted as decimal fractions.

System definers are encouraged to use version identifiers of the form
@var{x}.@var{y}.@var{z} for major version, minor version (compatible
API) and patch level.

@xref{Common attributes of components}.


@subsection Warning about logical pathnames
@cindex logical pathnames
@@ -1392,17 +1420,23 @@ to a Unix-style syntax.
@xref{The defsystem grammar,,Pathname specifiers}.

@subsubsection Version identifier
@findex version-satisfies
@cindex :version

This optional attribute is used by the @code{test-system-version} operation.
@xref{Predefined operations of ASDF}.
For the default method of @code{test-system-version},
This optional attribute is used by the generic function
@code{version-satisfies}, which tests to see if @code{:version}
dependencies are satisfied.
the version should be a string of integers separated by dots,
for example @samp{1.0.11}.
For more information on the semantics of version specifiers, see @ref{The defsystem grammar}.

@c This optional attribute is intended to be used by the @code{test-system-version} operation.
@c @xref{Predefined operations of ASDF}.
@c @emph{Nota Bene}:
@c This operation, planned for ASDF 1,
@c is still not implemented yet as of ASDF 2.
@c Don't hold your breath.

@emph{Nota Bene}:
This operation, planned for ASDF 1,
is still not implement yet as of ASDF 2.
Don't hold your breath.


@subsubsection Required features
@@ -1509,6 +1543,14 @@ If you have the time for some CLISP hacking,
I'm sure they'd welcome your fixes.
@c Doesn't CLISP now support LIST method combination?

See the discussion of the semantics of @code{:version} in the defsystem
grammar.

@c FIXME: Should have cross-reference to "Version specifiers" in the
@c defsystem grammar, but the cross-referencing is so broken by
@c insufficient node breakdown that I have not put one in.


@subsubsection pathname

This attribute is optional and if absent (which is the usual case),