Commit 424a8ee9 authored by Gary King's avatar Gary King
Browse files

website and manual updates

parent 1636ad8f
Loading
Loading
Loading
Loading
+87 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ before the component in question has been compiled."}
                    | :operation-done-p method-form
                    | :depends-on ( {dependency-def}* ) 
                    | :serial [ t | nil ]
                    | :weakly-depends-on ( {dependency-def}* ) 
                    | :in-order-to ( {dependency}+ )
    
    component-list := ( {component-def}* )
@@ -200,6 +201,34 @@ is equivalent to
                 (:file "b" :depends-on ("a"))
                 (:file "c" :depends-on ("a" "b")))

{anchor section-weakly-depends-on}

#### Weakly-depends-on

The `weakly-depends-on` argument says of the component
depended on "if this component can be found, then impose a
dependency, otherwise ignore it." At the top level, this can
be useful for allowing a system to take advantage of another
system, if it is present. For example, a system might
generate on-line documentation if a documentation generation
system (like [TINAA][tinaa-project],
[Albert][albert-project], etc.) was present. A system that
does text matching might do only simple matching but weakly
depend on a regular expression system and, if that system is
installed, would be able to also do regular expression
matching.

##### Notes:

* It's not entirely clear that this option is very
  helpful at a level below the top-level. Since it uses
  find-component, the behavior differs between top level and
  lower level; perhaps that needs to be explained.

* Presumably this will be most useful when complemented by
  some conditional loading construct in the system that has
  the dependency. What is that construct?

####  Source location

The `:pathname` option is optional in all cases for systems
@@ -258,6 +287,64 @@ Lisp in .asd files:
    can easily control the disposition of output from ASDF
    operations.

## System dependencies

**Warning**: As of July 20, 2009, this aspect of ASDF is in flux.
We suggest not relying too heavily on the current syntax.

There are several ways in which one system can depend on
another:

* simple dependency (the default)
* `weak` dependency (using [`:weakly-depends-on`][weakly-depends-on])
* `contingent` dependency (not currently implemented)

 [weakly-depends-on]: #section-weakly-depends-on 
 
The following tables illustrate how these dependencies work:

#### Simple

<table caption="Simple">
<tr><th><th colspan="2">component status</th><th rowspan="2" valign="top">effect</th></tr>
<tr><th>expression</th><th>component a</th><th>component/feature b</th></tr>

<tr><td>a (:depends-on (:b))</td><td style="text-align:center">present</td><td style="text-align:center">present</td><td>(operate b), (operate a)</td>
<tr><td>a (:depends-on (:b))</td><td style="text-align:center">present</td><td style="text-align:center">absent</td><td>error</td>
<tr><td>a (:depends-on (:b))</td><td style="text-align:center">absent</td><td style="text-align:center">present</td><td>  error</td>
<tr><td>a (:depends-on (:b))</td><td style="text-align:center">absent</td><td style="text-align:center">absent</td><td>   error</td></tr>
</table>
</p>


#### `:weakly-depends-on`

<table>
<tr><th><th colspan="2">component status</th><th rowspan="2" valign="top">effect</th></tr>
<tr><th>expression</th><th>component a</th><th>component/feature b</th></tr>

<tr><td>a (:weakly-depends-on (:b))</td><td style="text-align:center">present</td><td style="text-align:center">present</td><td>  (operate b), (operate a)</td>
<tr><td>a (:weakly-depends-on (:b))</td><td style="text-align:center">present</td><td style="text-align:center">absent</td><td>   (operate a)</td>
<tr><td>a (:weakly-depends-on (:b))</td><td style="text-align:center">absent</td><td style="text-align:center">present</td><td>  error</td>
<tr><td>a (:weakly-depends-on (:b))</td><td style="text-align:center">absent</td><td style="text-align:center">absent</td><td>   error</td></tr>
</table>
</p>

#### Contingent

<table>
<tr><th><th colspan="2">component status</th><th rowspan="2" valign="top">effect</th></tr>
<tr><th>expression</th><th>component a</th><th>component/feature b</th></tr>

<tr><td>a (:contingent-on (:b))</td><td style="text-align:center">present</td><td style="text-align:center">present</td><td>  (operate b), (operate a)</td>
<tr><td>a (:contingent-on (:b))</td><td style="text-align:center">present</td><td style="text-align:center">absent</td>
<tr><td>a (:contingent-on (:b))</td><td style="text-align:center">absent</td><td style="text-align:center">present</td><td>  error</td>
<tr><td>a (:contingent-on (:b))</td><td style="text-align:center">absent</td><td style="text-align:center">absent</td><td>   error</td></tr>
</table>
</p>
<hr />


##  The object model of ASDF

ASDF is entirely object-oriented. Both a system's
+5 −1
Original line number Diff line number Diff line
@@ -28,3 +28,7 @@
 
 [hs-require]: http://www.lispworks.com/documentation/HyperSpec/Body/f_provid.htm#require
 [hs-standard-output]: http://www.lispworks.com/documentation/HyperSpec/Body/v_debug_.htm#STstandard-outputST
 
 
 [tinaa-project]: http://common-lisp.net/project/tinaa/
 [albert-project]: http://www.cliki.net/Albert/
 No newline at end of file
+30 −14
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
	<key>currentDocument</key>
	<string>source/index.mmd</string>
	<string>source/manual.mmd</string>
	<key>documents</key>
	<array>
		<dict>
@@ -16,15 +16,15 @@
			<key>filename</key>
			<string>source/index.mmd</string>
			<key>lastUsed</key>
			<date>2009-06-21T20:13:19Z</date>
			<key>selected</key>
			<true/>
			<date>2009-07-18T14:05:17Z</date>
		</dict>
		<dict>
			<key>filename</key>
			<string>source/manual.mmd</string>
			<key>lastUsed</key>
			<date>2009-06-21T19:56:37Z</date>
			<date>2009-07-20T22:30:40Z</date>
			<key>selected</key>
			<true/>
		</dict>
		<dict>
			<key>filename</key>
@@ -152,28 +152,44 @@
			<key>caret</key>
			<dict>
				<key>column</key>
				<integer>24</integer>
				<integer>51</integer>
				<key>line</key>
				<integer>7</integer>
				<integer>39</integer>
			</dict>
			<key>columnSelection</key>
			<false/>
			<key>firstVisibleColumn</key>
			<integer>0</integer>
			<key>firstVisibleLine</key>
			<integer>0</integer>
			<integer>28</integer>
			<key>selectFrom</key>
			<dict>
				<key>column</key>
				<integer>63</integer>
				<key>line</key>
				<integer>39</integer>
			</dict>
			<key>selectTo</key>
			<dict>
				<key>column</key>
				<integer>51</integer>
				<key>line</key>
				<integer>39</integer>
			</dict>
		</dict>
		<key>source/manual.mmd</key>
		<dict>
			<key>caret</key>
			<dict>
				<key>column</key>
				<integer>55</integer>
				<integer>0</integer>
				<key>line</key>
				<integer>948</integer>
				<integer>348</integer>
			</dict>
			<key>firstVisibleColumn</key>
			<integer>0</integer>
			<key>firstVisibleLine</key>
			<integer>978</integer>
			<integer>322</integer>
		</dict>
		<key>source/resources/footer.md</key>
		<dict>
@@ -222,14 +238,14 @@
			<key>caret</key>
			<dict>
				<key>column</key>
				<integer>8</integer>
				<integer>47</integer>
				<key>line</key>
				<integer>16</integer>
				<integer>33</integer>
			</dict>
			<key>firstVisibleColumn</key>
			<integer>0</integer>
			<key>firstVisibleLine</key>
			<integer>0</integer>
			<integer>5</integer>
		</dict>
		<key>source/resources/ug-footer.md</key>
		<dict>